5563d2:	8b 93 c8 01 00 00    	mov    0x1c8(%ebx),%edx
5563d8:	0f b7 52 06          	movzwl 0x6(%edx),%edx
5563dc:	0f af 94 24 e0 00 00 	imul   0xe0(%esp),%edx
5563e3:	00
5563e4:	c1 ea 03             	shr    $0x3,%edx
5563e7:	89 94 24 e0 00 00 00 	mov    %edx,0xe0(%esp)
5563ee:	8b 8b c8 01 00 00    	mov    0x1c8(%ebx),%ecx
5563f4:	0f b7 51 06          	movzwl 0x6(%ecx),%edx
5563f8:	0f af 94 24 dc 00 00 	imul   0xdc(%esp),%edx
5563ff:	00
556400:	c1 ea 03             	shr    $0x3,%edx
556403:	89 94 24 dc 00 00 00 	mov    %edx,0xdc(%esp)
55640a:	8b 8c 24 dc 00 00 00 	mov    0xdc(%esp),%ecx
556411:	81 f9 c0 ff 3f 00    	cmp    $0x3fffc0,%ecx
556417:	76 07                	jbe    0x556420
556419:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
55641e:	eb 13                	jmp    0x556433
556420:	8b bc 24 dc 00 00 00 	mov    0xdc(%esp),%edi
556427:	c1 e7 0a             	shl    $0xa,%edi
55642a:	8b 94 24 e0 00 00 00 	mov    0xe0(%esp),%edx
556431:	03 fa                	add    %edx,%edi
556433:	8b 4c 24 10          	mov    0x10(%esp),%ecx
556437:	3b f9                	cmp    %ecx,%edi
556439:	73 0e                	jae    0x556449
55643b:	89 7c 24 10          	mov    %edi,0x10(%esp)
55643f:	8b 93 b8 00 00 00    	mov    0xb8(%ebx),%edx
556445:	89 54 24 08          	mov    %edx,0x8(%esp)
556449:	8a 4c 24 14          	mov    0x14(%esp),%cl
55644d:	80 f9 80             	cmp    $0x80,%cl
556450:	0f 85 d7 01 00 00    	jne    0x55662d
556456:	33 d2                	xor    %edx,%edx
556458:	89 94 24 f8 00 00 00 	mov    %edx,0xf8(%esp)
55645f:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
556463:	41                   	inc    %ecx
556464:	89 8c 24 e4 00 00 00 	mov    %ecx,0xe4(%esp)
55646b:	8b 93 bc 00 00 00    	mov    0xbc(%ebx),%edx
556471:	42                   	inc    %edx
556472:	89 94 24 e8 00 00 00 	mov    %edx,0xe8(%esp)
556479:	8b 4c 24 04          	mov    0x4(%esp),%ecx
55647d:	41                   	inc    %ecx
55647e:	89 8c 24 ec 00 00 00 	mov    %ecx,0xec(%esp)
556485:	8b 94 24 f8 00 00 00 	mov    0xf8(%esp),%edx
55648c:	3b c2                	cmp    %edx,%eax
55648e:	76 47                	jbe    0x5564d7
556490:	8b 8c 24 e4 00 00 00 	mov    0xe4(%esp),%ecx
556497:	8a 11                	mov    (%ecx),%dl
556499:	8b 8c 24 ec 00 00 00 	mov    0xec(%esp),%ecx
5564a0:	8a 09                	mov    (%ecx),%cl
5564a2:	2a d1                	sub    %cl,%dl
5564a4:	8b 8c 24 e8 00 00 00 	mov    0xe8(%esp),%ecx
5564ab:	80 e2 ff             	and    $0xff,%dl
5564ae:	88 11                	mov    %dl,(%ecx)
5564b0:	ff 84 24 ec 00 00 00 	incl   0xec(%esp)
5564b7:	ff 84 24 e4 00 00 00 	incl   0xe4(%esp)
5564be:	ff 84 24 e8 00 00 00 	incl   0xe8(%esp)
5564c5:	ff 84 24 f8 00 00 00 	incl   0xf8(%esp)
5564cc:	8b 94 24 f8 00 00 00 	mov    0xf8(%esp),%edx
5564d3:	3b c2                	cmp    %edx,%eax
5564d5:	77 b9                	ja     0x556490
5564d7:	8b 44 24 0c          	mov    0xc(%esp),%eax
5564db:	40                   	inc    %eax
5564dc:	89 84 24 f4 00 00 00 	mov    %eax,0xf4(%esp)
5564e3:	8b 44 24 04          	mov    0x4(%esp),%eax
5564e7:	40                   	inc    %eax
5564e8:	89 84 24 f0 00 00 00 	mov    %eax,0xf0(%esp)
5564ef:	8b 94 24 f8 00 00 00 	mov    0xf8(%esp),%edx
5564f6:	3b ea                	cmp    %edx,%ebp
5564f8:	0f 86 20 01 00 00    	jbe    0x55661e
5564fe:	8b 8c 24 ec 00 00 00 	mov    0xec(%esp),%ecx
556505:	33 c0                	xor    %eax,%eax
556507:	8a 01                	mov    (%ecx),%al
556509:	89 84 24 00 01 00 00 	mov    %eax,0x100(%esp)
556510:	ff 84 24 ec 00 00 00 	incl   0xec(%esp)
556517:	8b 94 24 f0 00 00 00 	mov    0xf0(%esp),%edx
55651e:	33 c9                	xor    %ecx,%ecx
556520:	8a 0a                	mov    (%edx),%cl
556522:	89 8c 24 04 01 00 00 	mov    %ecx,0x104(%esp)
556529:	ff 84 24 f0 00 00 00 	incl   0xf0(%esp)
556530:	8b 84 24 f4 00 00 00 	mov    0xf4(%esp),%eax
556537:	33 d2                	xor    %edx,%edx
556539:	8a 10                	mov    (%eax),%dl
55653b:	89 94 24 fc 00 00 00 	mov    %edx,0xfc(%esp)
556542:	ff 84 24 f4 00 00 00 	incl   0xf4(%esp)
556549:	8b 84 24 00 01 00 00 	mov    0x100(%esp),%eax
556550:	8b 94 24 04 01 00 00 	mov    0x104(%esp),%edx
556557:	2b c2                	sub    %edx,%eax
556559:	8b 94 24 fc 00 00 00 	mov    0xfc(%esp),%edx
556560:	8b 8c 24 04 01 00 00 	mov    0x104(%esp),%ecx
556567:	2b d1                	sub    %ecx,%edx
556569:	85 c0                	test   %eax,%eax
55656b:	7d 06                	jge    0x556573
55656d:	8b c8                	mov    %eax,%ecx
55656f:	f7 d9                	neg    %ecx
556571:	eb 02                	jmp    0x556575
556573:	8b c8                	mov    %eax,%ecx
556575:	89 8c 24 08 01 00 00 	mov    %ecx,0x108(%esp)
55657c:	85 d2                	test   %edx,%edx
55657e:	7d 06                	jge    0x556586
556580:	8b ca                	mov    %edx,%ecx
556582:	f7 d9                	neg    %ecx
556584:	eb 02                	jmp    0x556588
556586:	8b ca                	mov    %edx,%ecx
556588:	89 8c 24 0c 01 00 00 	mov    %ecx,0x10c(%esp)
55658f:	8d 0c 02             	lea    (%edx,%eax,1),%ecx
556592:	85 c9                	test   %ecx,%ecx
556594:	7d 07                	jge    0x55659d
556596:	8d 0c 02             	lea    (%edx,%eax,1),%ecx
556599:	f7 d9                	neg    %ecx
55659b:	eb 03                	jmp    0x5565a0
55659d:	8d 0c 02             	lea    (%edx,%eax,1),%ecx
5565a0:	8b d1                	mov    %ecx,%edx
5565a2:	8b 84 24 08 01 00 00 	mov    0x108(%esp),%eax
5565a9:	8b 8c 24 0c 01 00 00 	mov    0x10c(%esp),%ecx
5565b0:	3b c1                	cmp    %ecx,%eax
5565b2:	7f 14                	jg     0x5565c8
5565b4:	8b 84 24 08 01 00 00 	mov    0x108(%esp),%eax
5565bb:	3b d0                	cmp    %eax,%edx
5565bd:	7c 09                	jl     0x5565c8
5565bf:	8b 84 24 fc 00 00 00 	mov    0xfc(%esp),%eax
5565c6:	eb 1b                	jmp    0x5565e3
5565c8:	8b 8c 24 0c 01 00 00 	mov    0x10c(%esp),%ecx
5565cf:	3b d1                	cmp    %ecx,%edx
5565d1:	7c 09                	jl     0x5565dc
5565d3:	8b 84 24 00 01 00 00 	mov    0x100(%esp),%eax
5565da:	eb 07                	jmp    0x5565e3
5565dc:	8b 84 24 04 01 00 00 	mov    0x104(%esp),%eax
5565e3:	8b 94 24 e4 00 00 00 	mov    0xe4(%esp),%edx
5565ea:	8a 0a                	mov    (%edx),%cl
5565ec:	2a c8                	sub    %al,%cl
5565ee:	8b 84 24 e8 00 00 00 	mov    0xe8(%esp),%eax
5565f5:	80 e1 ff             	and    $0xff,%cl
5565f8:	88 08                	mov    %cl,(%eax)
5565fa:	ff 84 24 e4 00 00 00 	incl   0xe4(%esp)
556601:	ff 84 24 e8 00 00 00 	incl   0xe8(%esp)
556608:	ff 84 24 f8 00 00 00 	incl   0xf8(%esp)
55660f:	8b 94 24 f8 00 00 00 	mov    0xf8(%esp),%edx
556616:	3b ea                	cmp    %edx,%ebp
556618:	0f 87 e0 fe ff ff    	ja     0x5564fe
55661e:	8b 8b bc 00 00 00    	mov    0xbc(%ebx),%ecx
556624:	89 4c 24 08          	mov    %ecx,0x8(%esp)
556628:	e9 41 04 00 00       	jmp    0x556a6e
55662d:	f6 44 24 14 80       	testb  $0x80,0x14(%esp)
556632:	0f 84 36 04 00 00    	je     0x556a6e
556638:	33 d2                	xor    %edx,%edx
55663a:	89 94 24 24 01 00 00 	mov    %edx,0x124(%esp)
556641:	8b 4c 24 10          	mov    0x10(%esp),%ecx
556645:	89 8c 24 28 01 00 00 	mov    %ecx,0x128(%esp)
55664c:	8a 93 b8 01 00 00    	mov    0x1b8(%ebx),%dl
556652:	80 fa 02             	cmp    $0x2,%dl
556655:	0f 85 ea 00 00 00    	jne    0x556745
55665b:	8b 8c 24 28 01 00 00 	mov    0x128(%esp),%ecx
556662:	81 e1 ff ff 00 00    	and    $0xffff,%ecx
556668:	89 8c 24 34 01 00 00 	mov    %ecx,0x134(%esp)
55666f:	8b 94 24 28 01 00 00 	mov    0x128(%esp),%edx
556676:	c1 ea 0a             	shr    $0xa,%edx
556679:	81 e2 c0 ff 3f 00    	and    $0x3fffc0,%edx
55667f:	89 94 24 30 01 00 00 	mov    %edx,0x130(%esp)
556686:	33 d2                	xor    %edx,%edx
556688:	3b f2                	cmp    %edx,%esi
55668a:	7e 4b                	jle    0x5566d7
55668c:	8b 8b bc 01 00 00    	mov    0x1bc(%ebx),%ecx
556692:	8a 0c 11             	mov    (%ecx,%edx,1),%cl
556695:	80 f9 04             	cmp    $0x4,%cl
556698:	75 38                	jne    0x5566d2
55669a:	8b 8b c4 01 00 00    	mov    0x1c4(%ebx),%ecx
5566a0:	0f b7 0c 51          	movzwl (%ecx,%edx,2),%ecx
5566a4:	0f af 8c 24 34 01 00 	imul   0x134(%esp),%ecx
5566ab:	00
5566ac:	c1 e9 08             	shr    $0x8,%ecx
5566af:	89 8c 24 34 01 00 00 	mov    %ecx,0x134(%esp)
5566b6:	8b 8b c4 01 00 00    	mov    0x1c4(%ebx),%ecx
5566bc:	0f b7 0c 51          	movzwl (%ecx,%edx,2),%ecx
5566c0:	0f af 8c 24 30 01 00 	imul   0x130(%esp),%ecx
5566c7:	00
5566c8:	c1 e9 08             	shr    $0x8,%ecx
5566cb:	89 8c 24 30 01 00 00 	mov    %ecx,0x130(%esp)
5566d2:	42                   	inc    %edx
5566d3:	3b f2                	cmp    %edx,%esi
5566d5:	7f b5                	jg     0x55668c
5566d7:	8b 93 cc 01 00 00    	mov    0x1cc(%ebx),%edx
5566dd:	0f b7 52 08          	movzwl 0x8(%edx),%edx
5566e1:	0f af 94 24 34 01 00 	imul   0x134(%esp),%edx
5566e8:	00
5566e9:	c1 ea 03             	shr    $0x3,%edx
5566ec:	89 94 24 34 01 00 00 	mov    %edx,0x134(%esp)
5566f3:	8b 8b cc 01 00 00    	mov    0x1cc(%ebx),%ecx
5566f9:	0f b7 51 08          	movzwl 0x8(%ecx),%edx
5566fd:	0f af 94 24 30 01 00 	imul   0x130(%esp),%edx
556704:	00
556705:	c1 ea 03             	shr    $0x3,%edx
556708:	89 94 24 30 01 00 00 	mov    %edx,0x130(%esp)
55670f:	8b 8c 24 30 01 00 00 	mov    0x130(%esp),%ecx
556716:	81 f9 c0 ff 3f 00    	cmp    $0x3fffc0,%ecx
55671c:	76 0d                	jbe    0x55672b
55671e:	c7 84 24 28 01 00 00 	movl   $0x7fffffff,0x128(%esp)
556725:	ff ff ff 7f
556729:	eb 1a                	jmp    0x556745
55672b:	8b 94 24 30 01 00 00 	mov    0x130(%esp),%edx
556732:	c1 e2 0a             	shl    $0xa,%edx
556735:	8b 8c 24 34 01 00 00 	mov    0x134(%esp),%ecx
55673c:	03 d1                	add    %ecx,%edx
55673e:	89 94 24 28 01 00 00 	mov    %edx,0x128(%esp)
556745:	33 d2                	xor    %edx,%edx
556747:	89 94 24 2c 01 00 00 	mov    %edx,0x12c(%esp)
55674e:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
556752:	41                   	inc    %ecx
556753:	89 8c 24 10 01 00 00 	mov    %ecx,0x110(%esp)
55675a:	8b 93 bc 00 00 00    	mov    0xbc(%ebx),%edx
556760:	42                   	inc    %edx
556761:	89 94 24 14 01 00 00 	mov    %edx,0x114(%esp)
556768:	8b 4c 24 04          	mov    0x4(%esp),%ecx
55676c:	41                   	inc    %ecx
55676d:	89 8c 24 18 01 00 00 	mov    %ecx,0x118(%esp)
556774:	8b 94 24 2c 01 00 00 	mov    0x12c(%esp),%edx
55677b:	3b c2                	cmp    %edx,%eax
55677d:	76 67                	jbe    0x5567e6
55677f:	8b 8c 24 10 01 00 00 	mov    0x110(%esp),%ecx
556786:	8a 11                	mov    (%ecx),%dl
556788:	8b 8c 24 18 01 00 00 	mov    0x118(%esp),%ecx
55678f:	8a 09                	mov    (%ecx),%cl
556791:	2a d1                	sub    %cl,%dl
556793:	8b 8c 24 14 01 00 00 	mov    0x114(%esp),%ecx
55679a:	80 e2 ff             	and    $0xff,%dl
55679d:	88 11                	mov    %dl,(%ecx)
55679f:	81 e2 ff 00 00 00    	and    $0xff,%edx
5567a5:	ff 84 24 18 01 00 00 	incl   0x118(%esp)
5567ac:	ff 84 24 10 01 00 00 	incl   0x110(%esp)
5567b3:	ff 84 24 14 01 00 00 	incl   0x114(%esp)
5567ba:	81 fa 80 00 00 00    	cmp    $0x80,%edx
5567c0:	7d 04                	jge    0x5567c6
5567c2:	8b ca                	mov    %edx,%ecx
5567c4:	eb 07                	jmp    0x5567cd
5567c6:	b9 00 01 00 00       	mov    $0x100,%ecx
5567cb:	2b ca                	sub    %edx,%ecx
5567cd:	01 8c 24 24 01 00 00 	add    %ecx,0x124(%esp)
5567d4:	ff 84 24 2c 01 00 00 	incl   0x12c(%esp)
5567db:	8b 94 24 2c 01 00 00 	mov    0x12c(%esp),%edx
5567e2:	3b c2                	cmp    %edx,%eax
5567e4:	77 99                	ja     0x55677f
5567e6:	8b 44 24 0c          	mov    0xc(%esp),%eax
5567ea:	40                   	inc    %eax
5567eb:	89 84 24 20 01 00 00 	mov    %eax,0x120(%esp)
5567f2:	8b 44 24 04          	mov    0x4(%esp),%eax
5567f6:	40                   	inc    %eax
5567f7:	89 84 24 1c 01 00 00 	mov    %eax,0x11c(%esp)
5567fe:	8b 94 24 2c 01 00 00 	mov    0x12c(%esp),%edx
556805:	3b ea                	cmp    %edx,%ebp
556807:	0f 86 52 01 00 00    	jbe    0x55695f
55680d:	8b 8c 24 18 01 00 00 	mov    0x118(%esp),%ecx
556814:	33 c0                	xor    %eax,%eax
556816:	8a 01                	mov    (%ecx),%al
556818:	89 84 24 3c 01 00 00 	mov    %eax,0x13c(%esp)
55681f:	ff 84 24 18 01 00 00 	incl   0x118(%esp)
556826:	8b 94 24 1c 01 00 00 	mov    0x11c(%esp),%edx
55682d:	33 c9                	xor    %ecx,%ecx
55682f:	8a 0a                	mov    (%edx),%cl
556831:	89 8c 24 40 01 00 00 	mov    %ecx,0x140(%esp)
556838:	ff 84 24 1c 01 00 00 	incl   0x11c(%esp)
55683f:	8b 84 24 20 01 00 00 	mov    0x120(%esp),%eax
556846:	33 d2                	xor    %edx,%edx
556848:	8a 10                	mov    (%eax),%dl
55684a:	89 94 24 38 01 00 00 	mov    %edx,0x138(%esp)
556851:	ff 84 24 20 01 00 00 	incl   0x120(%esp)
556858:	8b bc 24 3c 01 00 00 	mov    0x13c(%esp),%edi
55685f:	8b 84 24 40 01 00 00 	mov    0x140(%esp),%eax
556866:	2b f8                	sub    %eax,%edi
556868:	8b 84 24 38 01 00 00 	mov    0x138(%esp),%eax
55686f:	8b 94 24 40 01 00 00 	mov    0x140(%esp),%edx
556876:	2b c2                	sub    %edx,%eax
556878:	85 ff                	test   %edi,%edi
55687a:	7d 06                	jge    0x556882
55687c:	8b cf                	mov    %edi,%ecx
55687e:	f7 d9                	neg    %ecx
556880:	eb 02                	jmp    0x556884
556882:	8b cf                	mov    %edi,%ecx
556884:	89 8c 24 44 01 00 00 	mov    %ecx,0x144(%esp)
55688b:	85 c0                	test   %eax,%eax
55688d:	7d 06                	jge    0x556895
55688f:	8b d0                	mov    %eax,%edx
556891:	f7 da                	neg    %edx
556893:	eb 02                	jmp    0x556897
556895:	8b d0                	mov    %eax,%edx
556897:	89 94 24 48 01 00 00 	mov    %edx,0x148(%esp)
55689e:	8d 0c 38             	lea    (%eax,%edi,1),%ecx
5568a1:	85 c9                	test   %ecx,%ecx
5568a3:	7d 07                	jge    0x5568ac
5568a5:	8d 14 38             	lea    (%eax,%edi,1),%edx
5568a8:	f7 da                	neg    %edx
5568aa:	eb 03                	jmp    0x5568af
5568ac:	8d 14 38             	lea    (%eax,%edi,1),%edx
5568af:	8b c2                	mov    %edx,%eax
5568b1:	8b 8c 24 44 01 00 00 	mov    0x144(%esp),%ecx
5568b8:	8b 94 24 48 01 00 00 	mov    0x148(%esp),%edx
5568bf:	3b ca                	cmp    %edx,%ecx
5568c1:	7f 14                	jg     0x5568d7
5568c3:	8b 8c 24 44 01 00 00 	mov    0x144(%esp),%ecx
5568ca:	3b c1                	cmp    %ecx,%eax
5568cc:	7c 09                	jl     0x5568d7
5568ce:	8b bc 24 38 01 00 00 	mov    0x138(%esp),%edi
5568d5:	eb 1b                	jmp    0x5568f2
5568d7:	8b 94 24 48 01 00 00 	mov    0x148(%esp),%edx
5568de:	3b c2                	cmp    %edx,%eax
5568e0:	7c 09                	jl     0x5568eb
5568e2:	8b bc 24 3c 01 00 00 	mov    0x13c(%esp),%edi
5568e9:	eb 07                	jmp    0x5568f2
5568eb:	8b bc 24 40 01 00 00 	mov    0x140(%esp),%edi
5568f2:	8b 94 24 10 01 00 00 	mov    0x110(%esp),%edx
5568f9:	8b c7                	mov    %edi,%eax
5568fb:	8a 0a                	mov    (%edx),%cl
5568fd:	33 d2                	xor    %edx,%edx
5568ff:	2a c8                	sub    %al,%cl
556901:	8b 84 24 14 01 00 00 	mov    0x114(%esp),%eax
556908:	80 e1 ff             	and    $0xff,%cl
55690b:	88 08                	mov    %cl,(%eax)
55690d:	8a d1                	mov    %cl,%dl
55690f:	ff 84 24 10 01 00 00 	incl   0x110(%esp)
556916:	ff 84 24 14 01 00 00 	incl   0x114(%esp)
55691d:	81 fa 80 00 00 00    	cmp    $0x80,%edx
556923:	7d 04                	jge    0x556929
556925:	8b c2                	mov    %edx,%eax
556927:	eb 07                	jmp    0x556930
556929:	b8 00 01 00 00       	mov    $0x100,%eax
55692e:	2b c2                	sub    %edx,%eax
556930:	01 84 24 24 01 00 00 	add    %eax,0x124(%esp)
556937:	8b 94 24 24 01 00 00 	mov    0x124(%esp),%edx
55693e:	8b 8c 24 28 01 00 00 	mov    0x128(%esp),%ecx
556945:	3b d1                	cmp    %ecx,%edx
556947:	77 16                	ja     0x55695f
556949:	ff 84 24 2c 01 00 00 	incl   0x12c(%esp)
556950:	8b 84 24 2c 01 00 00 	mov    0x12c(%esp),%eax
556957:	3b e8                	cmp    %eax,%ebp
556959:	0f 87 ae fe ff ff    	ja     0x55680d
55695f:	8a 93 b8 01 00 00    	mov    0x1b8(%ebx),%dl
556965:	80 fa 02             	cmp    $0x2,%dl
556968:	0f 85 e7 00 00 00    	jne    0x556a55
55696e:	8b 8c 24 24 01 00 00 	mov    0x124(%esp),%ecx
556975:	81 e1 ff ff 00 00    	and    $0xffff,%ecx
55697b:	89 8c 24 50 01 00 00 	mov    %ecx,0x150(%esp)
556982:	8b 84 24 24 01 00 00 	mov    0x124(%esp),%eax
556989:	c1 e8 0a             	shr    $0xa,%eax
55698c:	25 c0 ff 3f 00       	and    $0x3fffc0,%eax
556991:	89 84 24 4c 01 00 00 	mov    %eax,0x14c(%esp)
556998:	33 c0                	xor    %eax,%eax
55699a:	3b f0                	cmp    %eax,%esi
55699c:	7e 4b                	jle    0x5569e9
55699e:	8b 93 bc 01 00 00    	mov    0x1bc(%ebx),%edx
5569a4:	8a 0c 02             	mov    (%edx,%eax,1),%cl
5569a7:	80 f9 04             	cmp    $0x4,%cl
5569aa:	75 38                	jne    0x5569e4
5569ac:	8b 93 c0 01 00 00    	mov    0x1c0(%ebx),%edx