544523:	3b b5 54 fe ff ff    	cmp    -0x1ac(%ebp),%esi
544529:	0f 82 51 ff ff ff    	jb     0x544480
54452f:	8b 85 54 fe ff ff    	mov    -0x1ac(%ebp),%eax
544535:	eb 0a                	jmp    0x544541
544537:	8b 85 54 fe ff ff    	mov    -0x1ac(%ebp),%eax
54453d:	3b f0                	cmp    %eax,%esi
54453f:	72 1b                	jb     0x54455c
544541:	3b f0                	cmp    %eax,%esi
544543:	8b 85 3c fe ff ff    	mov    -0x1c4(%ebp),%eax
544549:	77 40                	ja     0x54458b
54454b:	3b 48 50             	cmp    0x50(%eax),%ecx
54454e:	75 3b                	jne    0x54458b
544550:	8b 85 84 fe ff ff    	mov    -0x17c(%ebp),%eax
544556:	85 c0                	test   %eax,%eax
544558:	75 2b                	jne    0x544585
54455a:	eb 06                	jmp    0x544562
54455c:	8b 85 84 fe ff ff    	mov    -0x17c(%ebp),%eax
544562:	8b bd 3c fe ff ff    	mov    -0x1c4(%ebp),%edi
544568:	8b 7f 50             	mov    0x50(%edi),%edi
54456b:	89 bd 70 fe ff ff    	mov    %edi,-0x190(%ebp)
544571:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
544577:	85 c0                	test   %eax,%eax
544579:	72 23                	jb     0x54459e
54457b:	77 08                	ja     0x544585
54457d:	3b 8d 70 fe ff ff    	cmp    -0x190(%ebp),%ecx
544583:	76 19                	jbe    0x54459e
544585:	8b 85 3c fe ff ff    	mov    -0x1c4(%ebp),%eax
54458b:	8b 8d 7c fe ff ff    	mov    -0x184(%ebp),%ecx
544591:	83 39 00             	cmpl   $0x0,(%ecx)
544594:	75 34                	jne    0x5445ca
544596:	8b b5 54 fe ff ff    	mov    -0x1ac(%ebp),%esi
54459c:	33 d2                	xor    %edx,%edx
54459e:	8b 85 3c fe ff ff    	mov    -0x1c4(%ebp),%eax
5445a4:	2b b5 68 fe ff ff    	sub    -0x198(%ebp),%esi
5445aa:	66 89 50 3a          	mov    %dx,0x3a(%eax)
5445ae:	89 70 30             	mov    %esi,0x30(%eax)
5445b1:	8b f0                	mov    %eax,%esi
5445b3:	83 7e 4c 00          	cmpl   $0x0,0x4c(%esi)
5445b7:	75 68                	jne    0x544621
5445b9:	8d 85 f0 fe ff ff    	lea    -0x110(%ebp),%eax
5445bf:	50                   	push   %eax
5445c0:	e8 ab 73 00 00       	call   0x54b970
5445c5:	83 c4 04             	add    $0x4,%esp
5445c8:	eb 57                	jmp    0x544621
5445ca:	83 78 4c 00          	cmpl   $0x0,0x4c(%eax)
5445ce:	75 0f                	jne    0x5445df
5445d0:	8d 85 f0 fe ff ff    	lea    -0x110(%ebp),%eax
5445d6:	50                   	push   %eax
5445d7:	e8 94 73 00 00       	call   0x54b970
5445dc:	83 c4 04             	add    $0x4,%esp
5445df:	8b 8d 64 fe ff ff    	mov    -0x19c(%ebp),%ecx
5445e5:	8b 41 0c             	mov    0xc(%ecx),%eax
5445e8:	85 c0                	test   %eax,%eax
5445ea:	0f 8e 5e 47 00 00    	jle    0x548d4e
5445f0:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5445f6:	8d 70 ff             	lea    -0x1(%eax),%esi
5445f9:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
5445ff:	8d 34 b6             	lea    (%esi,%esi,4),%esi
544602:	8d 34 b1             	lea    (%ecx,%esi,4),%esi
544605:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54460b:	83 c6 14             	add    $0x14,%esi
54460e:	e9 a1 e2 ff ff       	jmp    0x5428b4
544613:	8b b5 3c fe ff ff    	mov    -0x1c4(%ebp),%esi
544619:	33 db                	xor    %ebx,%ebx
54461b:	89 9d 18 fe ff ff    	mov    %ebx,-0x1e8(%ebp)
544621:	0f b7 46 3a          	movzwl 0x3a(%esi),%eax
544625:	3b 85 30 fe ff ff    	cmp    -0x1d0(%ebp),%eax
54462b:	0f 8f 80 00 00 00    	jg     0x5446b1
544631:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
544637:	80 78 01 f5          	cmpb   $0xf5,0x1(%eax)
54463b:	75 36                	jne    0x544673
54463d:	68 00 08 00 00       	push   $0x800
544642:	ff 70 10             	push   0x10(%eax)
544645:	ff b5 80 fe ff ff    	push   -0x180(%ebp)
54464b:	e8 d0 76 00 00       	call   0x54bd20
544650:	83 c4 0c             	add    $0xc,%esp
544653:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
544659:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54465f:	83 c6 14             	add    $0x14,%esi
544662:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
544668:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
54466e:	e9 41 e2 ff ff       	jmp    0x5428b4
544673:	ff b5 80 fe ff ff    	push   -0x180(%ebp)
544679:	e8 d2 73 00 00       	call   0x54ba50
54467e:	83 c4 04             	add    $0x4,%esp
544681:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
544687:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54468d:	83 c6 14             	add    $0x14,%esi
544690:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
544696:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
54469c:	e9 13 e2 ff ff       	jmp    0x5428b4
5446a1:	8b 5c b3 58          	mov    0x58(%ebx,%esi,4),%ebx
5446a5:	8b b5 3c fe ff ff    	mov    -0x1c4(%ebp),%esi
5446ab:	89 9d 18 fe ff ff    	mov    %ebx,-0x1e8(%ebp)
5446b1:	8b 95 80 fe ff ff    	mov    -0x180(%ebp),%edx
5446b7:	b8 00 24 00 00       	mov    $0x2400,%eax
5446bc:	66 85 42 08          	test   %ax,0x8(%edx)
5446c0:	74 0f                	je     0x5446d1
5446c2:	52                   	push   %edx
5446c3:	e8 88 73 00 00       	call   0x54ba50
5446c8:	8b 95 80 fe ff ff    	mov    -0x180(%ebp),%edx
5446ce:	83 c4 04             	add    $0x4,%esp
5446d1:	8b bd 30 fe ff ff    	mov    -0x1d0(%ebp),%edi
5446d7:	8b 8d 7c fe ff ff    	mov    -0x184(%ebp),%ecx
5446dd:	8b 46 54             	mov    0x54(%esi),%eax
5446e0:	3b 44 b9 04          	cmp    0x4(%ecx,%edi,4),%eax
5446e4:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5446ea:	0f 82 d6 00 00 00    	jb     0x5447c6
5446f0:	8b 46 4c             	mov    0x4c(%esi),%eax
5446f3:	8b b5 30 fe ff ff    	mov    -0x1d0(%ebp),%esi
5446f9:	03 04 b1             	add    (%ecx,%esi,4),%eax
5446fc:	89 85 70 fe ff ff    	mov    %eax,-0x190(%ebp)
544702:	83 fb 0c             	cmp    $0xc,%ebx
544705:	73 25                	jae    0x54472c
544707:	52                   	push   %edx
544708:	53                   	push   %ebx
544709:	50                   	push   %eax
54470a:	e8 01 86 00 00       	call   0x54cd10
54470f:	83 c4 0c             	add    $0xc,%esp
544712:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
544718:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54471e:	83 c6 14             	add    $0x14,%esi
544721:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
544727:	e9 88 e1 ff ff       	jmp    0x5428b4
54472c:	8a 85 60 fe ff ff    	mov    -0x1a0(%ebp),%al
544732:	8d 73 f4             	lea    -0xc(%ebx),%esi
544735:	d1 ee                	shr    $1,%esi
544737:	88 42 0a             	mov    %al,0xa(%edx)
54473a:	89 72 0c             	mov    %esi,0xc(%edx)
54473d:	8d 46 02             	lea    0x2(%esi),%eax
544740:	39 42 18             	cmp    %eax,0x18(%edx)
544743:	7d 25                	jge    0x54476a
544745:	6a 00                	push   $0x0
544747:	50                   	push   %eax
544748:	b9 01 00 00 00       	mov    $0x1,%ecx
54474d:	52                   	push   %edx
54474e:	66 89 4a 08          	mov    %cx,0x8(%edx)
544752:	e8 99 6d 00 00       	call   0x54b4f0
544757:	83 c4 0c             	add    $0xc,%esp
54475a:	85 c0                	test   %eax,%eax
54475c:	0f 85 72 48 00 00    	jne    0x548fd4
544762:	8b 95 80 fe ff ff    	mov    -0x180(%ebp),%edx
544768:	eb 06                	jmp    0x544770
54476a:	8b 42 14             	mov    0x14(%edx),%eax
54476d:	89 42 10             	mov    %eax,0x10(%edx)
544770:	56                   	push   %esi
544771:	ff b5 70 fe ff ff    	push   -0x190(%ebp)
544777:	ff 72 10             	push   0x10(%edx)
54477a:	e8 81 e7 09 00       	call   0x5e2f00
54477f:	8b 8d 80 fe ff ff    	mov    -0x180(%ebp),%ecx
544785:	83 c4 0c             	add    $0xc,%esp
544788:	83 e3 01             	and    $0x1,%ebx
54478b:	8b 41 10             	mov    0x10(%ecx),%eax
54478e:	c6 04 06 00          	movb   $0x0,(%esi,%eax,1)
544792:	8b 41 10             	mov    0x10(%ecx),%eax
544795:	c6 44 30 01 00       	movb   $0x0,0x1(%eax,%esi,1)
54479a:	66 8b 04 5d dc 30 6b 	mov    0x6b30dc(,%ebx,2),%ax
5447a1:	00
5447a2:	66 89 41 08          	mov    %ax,0x8(%ecx)
5447a6:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
5447ac:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
5447b2:	83 c6 14             	add    $0x14,%esi
5447b5:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5447bb:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
5447c1:	e9 ee e0 ff ff       	jmp    0x5428b4
5447c6:	8a 85 60 fe ff ff    	mov    -0x1a0(%ebp),%al
5447cc:	88 42 0a             	mov    %al,0xa(%edx)
5447cf:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
5447d5:	0f b7 40 02          	movzwl 0x2(%eax),%eax
5447d9:	a8 c0                	test   $0xc0,%al
5447db:	74 0e                	je     0x5447eb
5447dd:	83 fb 0c             	cmp    $0xc,%ebx
5447e0:	72 05                	jb     0x5447e7
5447e2:	f6 c3 01             	test   $0x1,%bl
5447e5:	74 11                	je     0x5447f8
5447e7:	84 c0                	test   %al,%al
5447e9:	78 0d                	js     0x5447f8
5447eb:	53                   	push   %ebx
5447ec:	e8 5f 87 00 00       	call   0x54cf50
5447f1:	83 c4 04             	add    $0x4,%esp
5447f4:	85 c0                	test   %eax,%eax
5447f6:	75 2f                	jne    0x544827
5447f8:	52                   	push   %edx
5447f9:	53                   	push   %ebx
5447fa:	68 40 1b 6b 00       	push   $0x6b1b40
5447ff:	e8 0c 85 00 00       	call   0x54cd10
544804:	83 c4 0c             	add    $0xc,%esp
544807:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
54480d:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
544813:	83 c6 14             	add    $0x14,%esi
544816:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
54481c:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
544822:	e9 8d e0 ff ff       	jmp    0x5428b4
544827:	52                   	push   %edx
544828:	50                   	push   %eax
544829:	8b 85 30 fe ff ff    	mov    -0x1d0(%ebp),%eax
54482f:	ff 34 81             	push   (%ecx,%eax,4)
544832:	ff 76 28             	push   0x28(%esi)
544835:	e8 46 6c 00 00       	call   0x54b480
54483a:	83 c4 10             	add    $0x10,%esp
54483d:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
544843:	85 c0                	test   %eax,%eax
544845:	0f 85 b3 46 00 00    	jne    0x548efe
54484b:	8b b5 80 fe ff ff    	mov    -0x180(%ebp),%esi
544851:	56                   	push   %esi
544852:	53                   	push   %ebx
544853:	ff 76 10             	push   0x10(%esi)
544856:	e8 b5 84 00 00       	call   0x54cd10
54485b:	b8 ff ef 00 00       	mov    $0xefff,%eax
544860:	83 c4 0c             	add    $0xc,%esp
544863:	66 21 46 08          	and    %ax,0x8(%esi)
544867:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
54486d:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
544873:	83 c6 14             	add    $0x14,%esi
544876:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
54487c:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
544882:	e9 2d e0 ff ff       	jmp    0x5428b4
544887:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
54488d:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
544893:	8b 42 04             	mov    0x4(%edx),%eax
544896:	8b 7a 10             	mov    0x10(%edx),%edi
544899:	8d 04 80             	lea    (%eax,%eax,4),%eax
54489c:	8d 34 c1             	lea    (%ecx,%eax,8),%esi
54489f:	90                   	nop
5448a0:	ff b5 60 fe ff ff    	push   -0x1a0(%ebp)
5448a6:	0f b6 07             	movzbl (%edi),%eax
5448a9:	50                   	push   %eax
5448aa:	56                   	push   %esi
5448ab:	e8 30 f2 fa ff       	call   0x4f3ae0
5448b0:	83 c4 0c             	add    $0xc,%esp
5448b3:	80 3f 45             	cmpb   $0x45,(%edi)
5448b6:	75 4c                	jne    0x544904
5448b8:	0f b7 5e 08          	movzwl 0x8(%esi),%ebx
5448bc:	f6 c3 04             	test   $0x4,%bl
5448bf:	74 43                	je     0x544904
5448c1:	8b 56 04             	mov    0x4(%esi),%edx
5448c4:	8b 0e                	mov    (%esi),%ecx
5448c6:	81 fa ff 7f 00 00    	cmp    $0x7fff,%edx
5448cc:	7f 20                	jg     0x5448ee
5448ce:	7c 05                	jl     0x5448d5
5448d0:	83 f9 ff             	cmp    $0xffffffff,%ecx
5448d3:	77 19                	ja     0x5448ee
5448d5:	81 fa 00 80 ff ff    	cmp    $0xffff8000,%edx
5448db:	7c 11                	jl     0x5448ee
5448dd:	7f 04                	jg     0x5448e3
5448df:	85 c9                	test   %ecx,%ecx
5448e1:	72 0b                	jb     0x5448ee
5448e3:	81 e3 fb ff 00 00    	and    $0xfffb,%ebx
5448e9:	83 cb 20             	or     $0x20,%ebx
5448ec:	eb 12                	jmp    0x544900
5448ee:	e8 ad cf 09 00       	call   0x5e18a0
5448f3:	81 e3 fb ff 00 00    	and    $0xfffb,%ebx
5448f9:	f2 0f 11 06          	movsd  %xmm0,(%esi)
5448fd:	83 cb 08             	or     $0x8,%ebx
544900:	66 89 5e 08          	mov    %bx,0x8(%esi)
544904:	47                   	inc    %edi
544905:	80 3f 00             	cmpb   $0x0,(%edi)
544908:	0f 84 58 e2 ff ff    	je     0x542b66
54490e:	83 c6 28             	add    $0x28,%esi
544911:	eb 8d                	jmp    0x5448a0
544913:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
544919:	0f 57 c0             	xorps  %xmm0,%xmm0
54491c:	8b b5 8c fe ff ff    	mov    -0x174(%ebp),%esi
544922:	66 0f 13 85 58 fe ff 	movlpd %xmm0,-0x1a8(%ebp)
544929:	ff
54492a:	c7 85 68 fe ff ff 00 	movl   $0x0,-0x198(%ebp)
544931:	00 00 00
544934:	8b 42 04             	mov    0x4(%edx),%eax
544937:	8b 5a 10             	mov    0x10(%edx),%ebx
54493a:	66 0f 13 85 44 fe ff 	movlpd %xmm0,-0x1bc(%ebp)
544941:	ff
544942:	8d 04 80             	lea    (%eax,%eax,4),%eax
544945:	8d 0c c6             	lea    (%esi,%eax,8),%ecx
544948:	8b 42 08             	mov    0x8(%edx),%eax
54494b:	89 8d 88 fe ff ff    	mov    %ecx,-0x178(%ebp)
544951:	8d 04 80             	lea    (%eax,%eax,4),%eax
544954:	8d 40 fb             	lea    -0x5(%eax),%eax
544957:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
54495a:	89 85 70 fe ff ff    	mov    %eax,-0x190(%ebp)
544960:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
544966:	0f b6 80 93 00 00 00 	movzbl 0x93(%eax),%eax
54496d:	89 85 78 fe ff ff    	mov    %eax,-0x188(%ebp)
544973:	8b 42 0c             	mov    0xc(%edx),%eax
544976:	8d 04 80             	lea    (%eax,%eax,4),%eax
544979:	8d 04 c6             	lea    (%esi,%eax,8),%eax
54497c:	89 85 40 fe ff ff    	mov    %eax,-0x1c0(%ebp)
544982:	85 db                	test   %ebx,%ebx
544984:	74 40                	je     0x5449c6
544986:	8d 71 08             	lea    0x8(%ecx),%esi
544989:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
544990:	ff b5 60 fe ff ff    	push   -0x1a0(%ebp)
544996:	0f b6 03             	movzbl (%ebx),%eax
544999:	50                   	push   %eax
54499a:	8d 46 f8             	lea    -0x8(%esi),%eax
54499d:	50                   	push   %eax
54499e:	e8 3d f1 fa ff       	call   0x4f3ae0
5449a3:	83 c4 0c             	add    $0xc,%esp
5449a6:	80 3b 45             	cmpb   $0x45,(%ebx)
5449a9:	75 12                	jne    0x5449bd
5449ab:	0f b7 06             	movzwl (%esi),%eax
5449ae:	a8 04                	test   $0x4,%al
5449b0:	74 0b                	je     0x5449bd
5449b2:	25 fb ff 00 00       	and    $0xfffb,%eax
5449b7:	83 c8 20             	or     $0x20,%eax
5449ba:	66 89 06             	mov    %ax,(%esi)
5449bd:	43                   	inc    %ebx
5449be:	83 c6 28             	add    $0x28,%esi
5449c1:	80 3b 00             	cmpb   $0x0,(%ebx)
5449c4:	75 ca                	jne    0x544990
5449c6:	8b 85 48 fe ff ff    	mov    -0x1b8(%ebp),%eax
5449cc:	8b 8d 5c fe ff ff    	mov    -0x1a4(%ebp),%ecx
5449d2:	8b b5 70 fe ff ff    	mov    -0x190(%ebp),%esi
5449d8:	8b 95 58 fe ff ff    	mov    -0x1a8(%ebp),%edx
5449de:	83 c6 1c             	add    $0x1c,%esi
5449e1:	89 85 5c fe ff ff    	mov    %eax,-0x1a4(%ebp)
5449e7:	8b 85 44 fe ff ff    	mov    -0x1bc(%ebp),%eax
5449ed:	89 8d 7c fe ff ff    	mov    %ecx,-0x184(%ebp)
5449f3:	89 95 80 fe ff ff    	mov    %edx,-0x180(%ebp)
5449f9:	89 85 48 fe ff ff    	mov    %eax,-0x1b8(%ebp)
5449ff:	90                   	nop
544a00:	0f b7 5e ec          	movzwl -0x14(%esi),%ebx
544a04:	f6 c3 01             	test   $0x1,%bl
544a07:	74 1b                	je     0x544a24
544a09:	81 e3 00 40 00 00    	and    $0x4000,%ebx
544a0f:	f7 db                	neg    %ebx
544a11:	1b db                	sbb    %ebx,%ebx
544a13:	83 e3 0a             	and    $0xa,%ebx
544a16:	89 1e                	mov    %ebx,(%esi)
544a18:	8b 9d 68 fe ff ff    	mov    -0x198(%ebp),%ebx
544a1e:	43                   	inc    %ebx
544a1f:	e9 d7 02 00 00       	jmp    0x544cfb
544a24:	f6 c3 24             	test   $0x24,%bl
544a27:	0f 84 dc 01 00 00    	je     0x544c09
544a2d:	83 7e e8 00          	cmpl   $0x0,-0x18(%esi)
544a31:	8b 46 e4             	mov    -0x1c(%esi),%eax
544a34:	7f 15                	jg     0x544a4b
544a36:	7c 04                	jl     0x544a3c
544a38:	85 c0                	test   %eax,%eax
544a3a:	73 0f                	jae    0x544a4b
544a3c:	f7 d0                	not    %eax
544a3e:	89 85 84 fe ff ff    	mov    %eax,-0x17c(%ebp)
544a44:	8b 46 e8             	mov    -0x18(%esi),%eax
544a47:	f7 d0                	not    %eax
544a49:	eb 09                	jmp    0x544a54
544a4b:	89 85 84 fe ff ff    	mov    %eax,-0x17c(%ebp)
544a51:	8b 46 e8             	mov    -0x18(%esi),%eax
544a54:	ff 85 68 fe ff ff    	incl   -0x198(%ebp)
544a5a:	85 c0                	test   %eax,%eax
544a5c:	0f 87 10 01 00 00    	ja     0x544b72
544a62:	72 09                	jb     0x544a6d