Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Pygments / tests / examplefiles / tasm / example.tasm.output
Size: Mime:
';----------------------------------------------------------------------------;' Comment.Single
'\n'          Text.Whitespace

'; Does A* pathfinding for rockraiders and vehicles' Comment.Single
'\n'          Text.Whitespace

';'           Comment.Single
'\n'          Text.Whitespace

'; Copyright 2015 Ruben De Smet' Comment.Single
'\n'          Text.Whitespace

';'           Comment.Single
'\n'          Text.Whitespace

'; Redistribution and use in source and binary forms, with or without' Comment.Single
'\n'          Text.Whitespace

'; modification, are permitted provided that the following conditions are' Comment.Single
'\n'          Text.Whitespace

'; met:'      Comment.Single
'\n'          Text.Whitespace

'; '          Comment.Single
'\n'          Text.Whitespace

';     (1) Redistributions of source code must retain the above copyright' Comment.Single
'\n'          Text.Whitespace

';         notice, this list of conditions and the following disclaimer. ' Comment.Single
'\n'          Text.Whitespace

'; '          Comment.Single
'\n'          Text.Whitespace

';     (2) Redistributions in binary form must reproduce the above copyright' Comment.Single
'\n'          Text.Whitespace

';         notice, this list of conditions and the following disclaimer in' Comment.Single
'\n'          Text.Whitespace

';         the documentation and/or other materials provided with the' Comment.Single
'\n'          Text.Whitespace

';         distribution.  ' Comment.Single
'\n'          Text.Whitespace

';         '  Comment.Single
'\n'          Text.Whitespace

';     (3) The name of the author may not be used to' Comment.Single
'\n'          Text.Whitespace

';         endorse or promote products derived from this software without' Comment.Single
'\n'          Text.Whitespace

';         specific prior written permission.' Comment.Single
'\n'          Text.Whitespace

'; '          Comment.Single
'\n'          Text.Whitespace

"; THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR" Comment.Single
'\n'          Text.Whitespace

'; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED' Comment.Single
'\n'          Text.Whitespace

'; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE' Comment.Single
'\n'          Text.Whitespace

'; DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,' Comment.Single
'\n'          Text.Whitespace

'; INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES' Comment.Single
'\n'          Text.Whitespace

'; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR' Comment.Single
'\n'          Text.Whitespace

'; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)' Comment.Single
'\n'          Text.Whitespace

'; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,' Comment.Single
'\n'          Text.Whitespace

'; STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING' Comment.Single
'\n'          Text.Whitespace

'; IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE' Comment.Single
'\n'          Text.Whitespace

'; POSSIBILITY OF SUCH DAMAGE.' Comment.Single
'\n'          Text.Whitespace

';'           Comment.Single
'\n'          Text.Whitespace

';----------------------------------------------------------------------------;' Comment.Single
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'IDEAL'       Keyword
'\n'          Text.Whitespace

'P386'        Keyword
'\n'          Text.Whitespace

'MODEL'       Keyword
' '           Text.Whitespace
'FLAT'        Name.Variable
','           Punctuation
' '           Text.Whitespace
'C'           Name.Variable
'\n'          Text.Whitespace

'ASSUME'      Keyword
' '           Text.Whitespace
'cs'          Name.Builtin
':'           Punctuation
'_TEXT'       Name.Variable
','           Punctuation
'ds'          Name.Builtin
':'           Punctuation
'FLAT'        Name.Variable
','           Punctuation
'es'          Name.Builtin
':'           Punctuation
'FLAT'        Name.Variable
','           Punctuation
'fs'          Name.Builtin
':'           Punctuation
'FLAT'        Name.Variable
','           Punctuation
'gs'          Name.Builtin
':'           Punctuation
'FLAT'        Name.Variable
'\n\n'        Text.Whitespace

'INCLUDE'     Keyword
' '           Text.Whitespace
'"ASTAR.INC"' Literal.String
'\n'          Text.Whitespace

'INCLUDE'     Keyword
' '           Text.Whitespace
'"READLVL.INC"' Literal.String
'\n'          Text.Whitespace

'INCLUDE'     Keyword
' '           Text.Whitespace
'"DEBUG.INC"' Literal.String
'\n\n'        Text.Whitespace

'STRUC'       Keyword
' '           Text.Whitespace
'TPriorityField' Name.Variable
'\n'          Text.Whitespace

'    '        Text.Whitespace
'heuristic'   Name.Constant
' '           Text.Whitespace
'dd'          Keyword.Declaration
' '           Text.Whitespace
'?'           Name.Variable
'\n'          Text.Whitespace

'    '        Text.Whitespace
'distance'    Name.Constant
' '           Text.Whitespace
'dd'          Keyword.Declaration
' '           Text.Whitespace
'?'           Name.Variable
'\n'          Text.Whitespace

'    '        Text.Whitespace
'x'           Name.Constant
' '           Text.Whitespace
'db'          Keyword.Declaration
' '           Text.Whitespace
'?'           Name.Variable
'\n'          Text.Whitespace

'    '        Text.Whitespace
'y'           Name.Constant
' '           Text.Whitespace
'db'          Keyword.Declaration
' '           Text.Whitespace
'?'           Name.Variable
'\n'          Text.Whitespace

'    '        Text.Whitespace
'fromx'       Name.Constant
' '           Text.Whitespace
'db'          Keyword.Declaration
' '           Text.Whitespace
'?'           Name.Variable
'\n'          Text.Whitespace

'    '        Text.Whitespace
'fromy'       Name.Constant
' '           Text.Whitespace
'db'          Keyword.Declaration
' '           Text.Whitespace
'?'           Name.Variable
'\n'          Text.Whitespace

'ENDS'        Keyword
'\n\n'        Text.Whitespace

'STRUC'       Keyword
' '           Text.Whitespace
'TField'      Name.Variable
'\n'          Text.Whitespace

'    '        Text.Whitespace
'distance'    Name.Constant
' '           Text.Whitespace
'dd'          Keyword.Declaration
' '           Text.Whitespace
'?'           Name.Variable
'\n'          Text.Whitespace

'    '        Text.Whitespace
'x'           Name.Constant
' '           Text.Whitespace
'db'          Keyword.Declaration
' '           Text.Whitespace
'?'           Name.Variable
'\n'          Text.Whitespace

'    '        Text.Whitespace
'y'           Name.Constant
' '           Text.Whitespace
'db'          Keyword.Declaration
' '           Text.Whitespace
'?'           Name.Variable
'\n'          Text.Whitespace

'ENDS'        Keyword
'\n\n'        Text.Whitespace

'CODESEG'     Keyword
' '           Text.Whitespace
'\n\n'        Text.Whitespace

'PROC'        Keyword
' '           Text.Whitespace
'getPath'     Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'USES'        Keyword
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ARG'         Keyword
' '           Text.Whitespace
'@@tgtx'      Name.Variable
':'           Punctuation
'dword'       Keyword.Type
','           Punctuation
' '           Text.Whitespace
'\\'          Text
'\n'          Text.Whitespace

'            ' Text.Whitespace
'@@tgty'      Name.Variable
':'           Punctuation
'dword'       Keyword.Type
' '           Text.Whitespace
'\\'          Text
'\n'          Text.Whitespace

'        '    Text.Whitespace
'RETURNS'     Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
' '           Text.Whitespace
'; eax contains x, ebx contains y' Comment.Single
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'getLevelWidth' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'imul'        Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgty'      Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'add'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgtx'      Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'imul'        Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'SIZE'        Name.Variable
' '           Text.Whitespace
'TField'      Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'add'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'offset'      Name.Variable
' '           Text.Whitespace
'backtraceGraph' Name.Variable
'        '    Text.Whitespace
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'xor'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'xor'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'al'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'[('          Punctuation
'TField'      Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'ecx'         Name.Builtin
')'           Punctuation
'.x'          Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'bl'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'[('          Punctuation
'TField'      Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'ecx'         Name.Builtin
')'           Punctuation
'.y'          Name.Variable
']'           Punctuation
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'ret'         Name.Function
'\n'          Text.Whitespace

'ENDP'        Keyword
' '           Text.Whitespace
'getPath'     Name.Variable
'\n\n'        Text.Whitespace

'PROC'        Keyword
' '           Text.Whitespace
'findPath'    Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'; eax will contain a 1 when a path has been found' Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
';                    0 otherwise.' Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ARG'         Keyword
' '           Text.Whitespace
'@@srcx'      Name.Variable
':'           Punctuation
'dword'       Keyword.Type
','           Punctuation
' '           Text.Whitespace
'\\'          Text
'\n'          Text.Whitespace

'            ' Text.Whitespace
'@@srcy'      Name.Variable
':'           Punctuation
'dword'       Keyword.Type
','           Punctuation
' '           Text.Whitespace
'\\'          Text
'\n'          Text.Whitespace

'            ' Text.Whitespace
'@@tgtx'      Name.Variable
':'           Punctuation
'dword'       Keyword.Type
','           Punctuation
' '           Text.Whitespace
'\\'          Text
'\n'          Text.Whitespace

'            ' Text.Whitespace
'@@tgty'      Name.Variable
':'           Punctuation
'dword'       Keyword.Type
','           Punctuation
' '           Text.Whitespace
'\\'          Text
'\n'          Text.Whitespace

'            ' Text.Whitespace
'@@type'      Name.Variable
':'           Punctuation
'dword'       Keyword.Type
' '           Text.Whitespace
'\\'          Text
'\n'          Text.Whitespace

'            ' Text.Whitespace
'RETURNS'     Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'; Check whether the target field is "allowed" for' Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'; the selected vehicle or rock raider' Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'getField'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgtx'      Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgty'      Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'al'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'byte'        Keyword.Type
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'and'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'0FFh'        Literal.Number.Hex
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'add'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'offset'      Name.Variable
' '           Text.Whitespace
'actionTable' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'eax'         Name.Builtin
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'and'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@type'      Name.Variable
']'           Punctuation
'               ' Text.Whitespace
'; TODO: for now, rock raider is hard coded' Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'jnz'         Name.Function
' '           Text.Whitespace
'@canGoToTarget' Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ret'         Name.Function
'\n'          Text.Whitespace

'@canGoToTarget:' Name.Label
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'cleanData'   Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@type'      Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'['           Punctuation
'currentType' Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@srcx'      Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'['           Punctuation
'currentOpen.x' Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'al'          Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@srcy'      Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'['           Punctuation
'currentOpen.y' Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'al'          Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'distance'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@srcx'      Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@srcy'      Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgtx'      Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgty'      Name.Variable
']'           Punctuation
' '           Text.Whitespace
'\n'          Text.Whitespace

'        '    Text.Whitespace
'; eax <- distance' Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'addOpen'     Name.Variable
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@srcx'      Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@srcy'      Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n\n'        Text.Whitespace

'@openListNotEmpty:' Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'popOpen'     Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'cmp'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'je'          Name.Function
' '           Text.Whitespace
'@openListEmpty' Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'addToMap'    Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'addClosed'   Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgtx'      Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'cmp'         Name.Function
' '           Text.Whitespace
'['           Punctuation
'currentOpen.x' Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'al'          Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'jne'         Name.Function
' '           Text.Whitespace
'@nextOpen'   Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgty'      Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'cmp'         Name.Function
' '           Text.Whitespace
'['           Punctuation
'currentOpen.y' Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'al'          Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'jne'         Name.Function
' '           Text.Whitespace
'@nextOpen'   Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'jmp'         Name.Function
' '           Text.Whitespace
'@routeFound' Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'@nextOpen:'  Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'addNeighbours' Name.Variable
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgtx'      Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgty'      Name.Variable
']'           Punctuation
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'jmp'         Name.Function
' '           Text.Whitespace
'@openListNotEmpty' Name.Variable
'\n\n'        Text.Whitespace

'@openListEmpty:' Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ret'         Name.Function
'\n\n'        Text.Whitespace

'@routeFound:' Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'1'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ret'         Name.Function
'\n'          Text.Whitespace

'ENDP'        Keyword
' '           Text.Whitespace
'findPath'    Name.Variable
'\n\n'        Text.Whitespace

'PROC'        Keyword
' '           Text.Whitespace
'addToMap'    Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'USES'        Keyword
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'getLevelWidth' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'xor'         Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'cl'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'currentOpen.y' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'imul'        Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'cl'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'currentOpen.x' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'add'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'imul'        Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'SIZE'        Name.Variable
' '           Text.Whitespace
'TField'      Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'add'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'offset'      Name.Variable
' '           Text.Whitespace
'backtraceGraph' Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'currentOpen.distance' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'cmp'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TField'      Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
')'           Punctuation
'.distance'   Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'jbe'         Name.Function
' '           Text.Whitespace
'@dontAdd'    Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TField'      Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
')'           Punctuation
'.distance'   Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'cl'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'currentOpen.fromx' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TField'      Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
')'           Punctuation
'.x'          Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'cl'          Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'cl'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'currentOpen.fromy' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TField'      Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
')'           Punctuation
'.y'          Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'cl'          Name.Builtin
'\n\n'        Text.Whitespace

'@dontAdd:'   Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ret'         Name.Function
'\n'          Text.Whitespace

'ENDP'        Keyword
' '           Text.Whitespace
'addToMap'    Name.Variable
'\n\n'        Text.Whitespace

'; Is closed checks whether the field considered is "closed" for being added to the open list.' Comment.Single
'\n'          Text.Whitespace

'; So, it also checks whether we can go on the selected field.' Comment.Single
'\n'          Text.Whitespace

'PROC'        Keyword
' '           Text.Whitespace
'isClosed'    Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'USES'        Keyword
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'edx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ARG'         Keyword
' '           Text.Whitespace
'@@x'         Name.Variable
':'           Punctuation
'dword'       Keyword.Type
','           Punctuation
' '           Text.Whitespace
'\\'          Text
'\n'          Text.Whitespace

'            ' Text.Whitespace
'@@y'         Name.Variable
':'           Punctuation
'dword'       Keyword.Type
' '           Text.Whitespace
'RETURNS'     Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'; Check bounds first:' Comment.Single
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'getLevelWidth' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'cmp'         Name.Function
' '           Text.Whitespace
'['           Punctuation
'@@x'         Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ja'          Name.Function
' '           Text.Whitespace
'notWithinBounds' Name.Variable
' '           Text.Whitespace
'; ja considers -1 > 10' Comment.Single
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'getLevelHeight' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'cmp'         Name.Function
' '           Text.Whitespace
'['           Punctuation
'@@y'         Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ja'          Name.Function
' '           Text.Whitespace
'notWithinBounds' Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'; Check whether this field is "allowed" for' Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'; the selected vehicle or rock raider' Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'getField'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@x'         Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@y'         Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'al'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'byte'        Keyword.Type
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'and'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'0FFh'        Literal.Number.Hex
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'add'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'offset'      Name.Variable
' '           Text.Whitespace
'actionTable' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'eax'         Name.Builtin
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'and'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'currentType' Name.Variable
']'           Punctuation
'               ' Text.Whitespace
'; TODO: for now, rock raider is hard coded' Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'jnz'         Name.Function
' '           Text.Whitespace
'@canGoHere'  Name.Variable
'\n\n\n'      Text.Whitespace

'        '    Text.Whitespace
'inc'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
' '           Text.Whitespace
'; mov eax, 1' Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ret'         Name.Function
'\n\n'        Text.Whitespace

'@canGoHere:' Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'\n'          Text.Whitespace

'        '    Text.Whitespace
'; Getting here means the field is okay to walk/fly/whatever on' Comment.Single
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'xor'         Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'cx'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'closedlistSize' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'cmp'         Name.Function
' '           Text.Whitespace
'cx'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
'; If empty, return 0' Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'jne'         Name.Function
' '           Text.Whitespace
'@closedNotEmpty' Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ret'         Name.Function
'\n\n'        Text.Whitespace

'@closedNotEmpty:' Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'offset'      Name.Variable
' '           Text.Whitespace
'closedlist'  Name.Variable
'\n\n'        Text.Whitespace

'@loopClosed:' Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'edx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@x'         Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'cmp'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TField'      Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'ebx'         Name.Builtin
')'           Punctuation
'.x'          Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'dl'          Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'jne'         Name.Function
' '           Text.Whitespace
'@nextClosed' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'edx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@y'         Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'cmp'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TField'      Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'ebx'         Name.Builtin
')'           Punctuation
'.y'          Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'dl'          Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'jne'         Name.Function
' '           Text.Whitespace
'@nextClosed' Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'; If reached here, yep, contained in closed list' Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'1'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ret'         Name.Function
'\n\n'        Text.Whitespace

'    '        Text.Whitespace
'@nextClosed:' Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'add'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'SIZE'        Name.Variable
' '           Text.Whitespace
'TField'      Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'dec'         Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'jnz'         Name.Function
' '           Text.Whitespace
'@loopClosed' Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ret'         Name.Function
'\n\n'        Text.Whitespace

'notWithinBounds:' Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'1'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ret'         Name.Function
'\n'          Text.Whitespace

'ENDP'        Keyword
' '           Text.Whitespace
'isClosed'    Name.Variable
'\n\n'        Text.Whitespace

'PROC'        Keyword
' '           Text.Whitespace
'addNeighbours' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'USES'        Keyword
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'edx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ARG'         Keyword
' '           Text.Whitespace
'@@tgtx'      Name.Variable
':'           Punctuation
'dword'       Keyword.Type
','           Punctuation
' '           Text.Whitespace
'\\'          Text
'\n'          Text.Whitespace

'            ' Text.Whitespace
'@@tgty'      Name.Variable
':'           Punctuation
'dword'       Keyword.Type
'\n'          Text.Whitespace

'        '    Text.Whitespace
'; Push all neighbours of currentOpen on openList' Comment.Single
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'xor'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'xor'         Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'bl'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'currentOpen.x' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'cl'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'currentOpen.y' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'edx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'currentOpen.distance' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'inc'         Name.Function
' '           Text.Whitespace
'edx'         Name.Builtin
' '           Text.Whitespace
'; Next distance is one more.' Comment.Single
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'; Up'        Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'dec'         Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'isClosed'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'cmp'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'jne'         Name.Function
' '           Text.Whitespace
'@noUp'       Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'distance'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgtx'      Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgty'      Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'add'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'edx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'addOpen'     Name.Variable
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'edx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'@noUp:'      Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'inc'         Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'; Right'     Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'inc'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'isClosed'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'cmp'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'jne'         Name.Function
' '           Text.Whitespace
'@noRight'    Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'distance'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgtx'      Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgty'      Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'add'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'edx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'addOpen'     Name.Variable
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'edx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'@noRight:'   Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'dec'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'; Left'      Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'dec'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'isClosed'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'cmp'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'jne'         Name.Function
' '           Text.Whitespace
'@noLeft'     Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'distance'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgtx'      Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgty'      Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'add'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'edx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'addOpen'     Name.Variable
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'edx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'@noLeft:'    Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'inc'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'; Down'      Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'inc'         Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'isClosed'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'cmp'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'jne'         Name.Function
' '           Text.Whitespace
'@noDown'     Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'distance'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgtx'      Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgty'      Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'add'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'edx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'addOpen'     Name.Variable
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'edx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'@noDown:'    Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'dec'         Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'ret'         Name.Function
'\n'          Text.Whitespace

'ENDP'        Keyword
' '           Text.Whitespace
'addNeighbours' Name.Variable
'\n\n'        Text.Whitespace

'PROC'        Keyword
' '           Text.Whitespace
'popOpen'     Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ARG'         Keyword
' '           Text.Whitespace
'RETURNS'     Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'USES'        Keyword
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'edx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'esi'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'edi'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'; eax contains the smallest current heuristic' Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'; ebx contains the index of that field' Comment.Single
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'cmp'         Name.Function
' '           Text.Whitespace
'['           Punctuation
'openlistSize' Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'           ' Text.Whitespace
'; If empty, return 0' Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'jne'         Name.Function
' '           Text.Whitespace
'@goForth'    Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ret'         Name.Function
'\n\n'        Text.Whitespace

'@goForth:'   Name.Label
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'0FFFFFFFFh'  Literal.Number.Hex
'             ' Text.Whitespace
'; Longest distance possible in 32 bits.' Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'xor'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'xor'         Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
'                    ' Text.Whitespace
'; ecx contains the current index' Comment.Single
'\n\n'        Text.Whitespace

'@searchFurther:' Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'edx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'imul'        Name.Function
' '           Text.Whitespace
'edx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'SIZE'        Name.Variable
' '           Text.Whitespace
'TPriorityField' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'cmp'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TPriorityField' Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'('           Punctuation
'openlist'    Name.Variable
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'edx'         Name.Builtin
'))'          Punctuation
'.heuristic'  Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ja'          Name.Function
' '           Text.Whitespace
'@notBetter'  Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'; Better guess found, put right values in eax and ebx' Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'[('          Punctuation
'TPriorityField' Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'('           Punctuation
'openlist'    Name.Variable
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'edx'         Name.Builtin
'))'          Punctuation
'.heuristic'  Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n\n'        Text.Whitespace

'@notBetter:' Name.Label
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'inc'         Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'cmp'         Name.Function
' '           Text.Whitespace
'cx'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'openlistSize' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'jne'         Name.Function
' '           Text.Whitespace
'@searchFurther' Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'; By now, we have found the right item to pop from the priorityqueue.' Comment.Single
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'; Move the correct item in currentOpen' Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'SIZE'        Name.Variable
' '           Text.Whitespace
'TPriorityField' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'esi'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'imul'        Name.Function
' '           Text.Whitespace
'esi'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'add'         Name.Function
' '           Text.Whitespace
'esi'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'offset'      Name.Variable
' '           Text.Whitespace
'openlist'    Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'edi'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'offset'      Name.Variable
' '           Text.Whitespace
'currentOpen' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'rep'         Name.Function
' '           Text.Whitespace
'movsb'       Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'; Now make the remove the thing from the vector' Comment.Single
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'xor'         Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'cx'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'openlistSize' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'sub'         Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'dec'         Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'imul'        Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'SIZE'        Name.Variable
' '           Text.Whitespace
'TPriorityField' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'edi'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'esi'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'sub'         Name.Function
' '           Text.Whitespace
'edi'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'SIZE'        Name.Variable
' '           Text.Whitespace
'TPriorityField' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'rep'         Name.Function
' '           Text.Whitespace
'movsb'       Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'dec'         Name.Function
' '           Text.Whitespace
'['           Punctuation
'openlistSize' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'1'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ret'         Name.Function
'\n'          Text.Whitespace

'ENDP'        Keyword
' '           Text.Whitespace
'popOpen'     Name.Variable
'\n\n'        Text.Whitespace

'PROC'        Keyword
' '           Text.Whitespace
'addClosed'   Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'USES'        Keyword
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'xor'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'xor'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'bx'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'closedlistSize' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'imul'        Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'SIZE'        Name.Variable
' '           Text.Whitespace
'TField'      Name.Variable
'        '    Text.Whitespace
'\n'          Text.Whitespace

'        '    Text.Whitespace
'add'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'offset'      Name.Variable
' '           Text.Whitespace
'closedlist'  Name.Variable
' '           Text.Whitespace
'; ebx contains the target TField' Comment.Single
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'al'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'currentOpen.x' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TField'      Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'ebx'         Name.Builtin
')'           Punctuation
'.x'          Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'al'          Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'al'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'currentOpen.y' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TField'      Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'ebx'         Name.Builtin
')'           Punctuation
'.y'          Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'al'          Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'currentOpen.distance' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TField'      Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'ebx'         Name.Builtin
')'           Punctuation
'.distance'   Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'inc'         Name.Function
' '           Text.Whitespace
'['           Punctuation
'closedlistSize' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'cmp'         Name.Function
' '           Text.Whitespace
'['           Punctuation
'closedlistSize' Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'CLOSED_LIST_SIZE_MAX' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'jne'         Name.Function
' '           Text.Whitespace
'@noProblemWithClosedVector' Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'xor'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'ax'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'closedlistSize' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'crash'       Name.Variable
','           Punctuation
' '           Text.Whitespace
'offset'      Name.Variable
' '           Text.Whitespace
'closedOutOfMemory' Name.Variable
','           Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
'\n\n'        Text.Whitespace

'@noProblemWithClosedVector:' Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ret'         Name.Function
'\n'          Text.Whitespace

'ENDP'        Keyword
' '           Text.Whitespace
'addClosed'   Name.Variable
'\n\n'        Text.Whitespace

'PROC'        Keyword
' '           Text.Whitespace
'addOpen'     Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'USES'        Keyword
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ARG'         Keyword
' '           Text.Whitespace
'@@x'         Name.Variable
':'           Punctuation
'dword'       Keyword.Type
','           Punctuation
' '           Text.Whitespace
'\\'          Text
'\n'          Text.Whitespace

'            ' Text.Whitespace
'@@y'         Name.Variable
':'           Punctuation
'dword'       Keyword.Type
','           Punctuation
' '           Text.Whitespace
'\\'          Text
'\n'          Text.Whitespace

'            ' Text.Whitespace
'@@priority'  Name.Variable
':'           Punctuation
'dword'       Keyword.Type
','           Punctuation
' '           Text.Whitespace
'\\'          Text
'\n'          Text.Whitespace

'            ' Text.Whitespace
'@@distance'  Name.Variable
':'           Punctuation
'dword'       Keyword.Type
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'xor'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'ax'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'openlistSize' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'imul'        Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'SIZE'        Name.Variable
' '           Text.Whitespace
'TPriorityField' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'add'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'offset'      Name.Variable
' '           Text.Whitespace
'openlist'    Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@x'         Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TPriorityField' Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
')'           Punctuation
'.x'          Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'bl'          Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@y'         Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TPriorityField' Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
')'           Punctuation
'.y'          Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'bl'          Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'bl'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'currentOpen.x' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TPriorityField' Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
')'           Punctuation
'.fromx'      Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'bl'          Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'bl'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'currentOpen.y' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TPriorityField' Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
')'           Punctuation
'.fromy'      Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'bl'          Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@priority'  Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TPriorityField' Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
')'           Punctuation
'.heuristic'  Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@distance'  Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TPriorityField' Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
')'           Punctuation
'.distance'   Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'inc'         Name.Function
' '           Text.Whitespace
'['           Punctuation
'openlistSize' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'cmp'         Name.Function
' '           Text.Whitespace
'['           Punctuation
'openlistSize' Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'OPEN_LIST_SIZE_MAX' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'jne'         Name.Function
' '           Text.Whitespace
'@noProblem'  Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'xor'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'ax'          Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'openlistSize' Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'crash'       Name.Variable
','           Punctuation
' '           Text.Whitespace
'offset'      Name.Variable
' '           Text.Whitespace
'openOutOfMemory' Name.Variable
','           Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
'\n\n'        Text.Whitespace

'@noProblem:' Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ret'         Name.Function
'\n'          Text.Whitespace

'ENDP'        Keyword
'\n\n'        Text.Whitespace

'PROC'        Keyword
' '           Text.Whitespace
'distance'    Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'USES'        Keyword
' '           Text.Whitespace
'ebx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ARG'         Keyword
' '           Text.Whitespace
'@@srcx'      Name.Variable
':'           Punctuation
'dword'       Keyword.Type
','           Punctuation
' '           Text.Whitespace
'\\'          Text
'\n'          Text.Whitespace

'            ' Text.Whitespace
'@@srcy'      Name.Variable
':'           Punctuation
'dword'       Keyword.Type
','           Punctuation
' '           Text.Whitespace
'\\'          Text
'\n'          Text.Whitespace

'            ' Text.Whitespace
'@@tgtx'      Name.Variable
':'           Punctuation
'dword'       Keyword.Type
','           Punctuation
' '           Text.Whitespace
'\\'          Text
'\n'          Text.Whitespace

'            ' Text.Whitespace
'@@tgty'      Name.Variable
':'           Punctuation
'dword'       Keyword.Type
' '           Text.Whitespace
'\\'          Text
'\n'          Text.Whitespace

'        '    Text.Whitespace
'RETURNS'     Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@srcx'      Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'sub'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgtx'      Name.Variable
']'           Punctuation
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'jns'         Name.Function
' '           Text.Whitespace
'@noSignChangex' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'neg'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'@noSignChangex:' Name.Label
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@srcy'      Name.Variable
']'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'sub'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'['           Punctuation
'@@tgty'      Name.Variable
']'           Punctuation
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'jns'         Name.Function
' '           Text.Whitespace
'@noSignChangey' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'neg'         Name.Function
' '           Text.Whitespace
'ebx'         Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'@noSignChangey:' Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'add'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ebx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ret'         Name.Function
'\n'          Text.Whitespace

'ENDP'        Keyword
' '           Text.Whitespace
'distance'    Name.Variable
'\n\n'        Text.Whitespace

'PROC'        Keyword
' '           Text.Whitespace
'cleanData'   Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'USES'        Keyword
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'['           Punctuation
'openlistSize' Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'['           Punctuation
'closedlistSize' Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'['           Punctuation
'currentOpen.x' Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'-'           Operator
'1'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'['           Punctuation
'currentOpen.y' Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'-'           Operator
'1'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'['           Punctuation
'currentOpen.distance' Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'getLevelWidth' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Name.Function
' '           Text.Whitespace
'getLevelHeight' Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'imul'        Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'eax'         Name.Builtin
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'offset'      Name.Variable
' '           Text.Whitespace
'backtraceGraph' Name.Variable
'\n'          Text.Whitespace

'@fieldIter:' Name.Label
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TField'      Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
')'           Punctuation
'.distance'   Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'0ffffffffh'  Literal.Number.Hex
' '           Text.Whitespace
'; Set to approximately +inf' Comment.Single
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TField'      Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
')'           Punctuation
'.x'          Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'mov'         Name.Function
' '           Text.Whitespace
'[('          Punctuation
'TField'      Name.Variable
' '           Text.Whitespace
'ptr'         Name.Variable
' '           Text.Whitespace
'eax'         Name.Builtin
')'           Punctuation
'.y'          Name.Variable
'],'          Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n'          Text.Whitespace

'        '    Text.Whitespace
'add'         Name.Function
' '           Text.Whitespace
'eax'         Name.Builtin
','           Punctuation
' '           Text.Whitespace
'SIZE'        Name.Variable
' '           Text.Whitespace
'TField'      Name.Variable
'\n'          Text.Whitespace

'        '    Text.Whitespace
'dec'         Name.Function
' '           Text.Whitespace
'ecx'         Name.Builtin
'\n'          Text.Whitespace

'        '    Text.Whitespace
'jnz'         Name.Function
' '           Text.Whitespace
'@fieldIter'  Name.Variable
'\n\n'        Text.Whitespace

'        '    Text.Whitespace
'ret'         Name.Function
'\n'          Text.Whitespace

'ENDP'        Keyword
' '           Text.Whitespace
'cleanData'   Name.Variable
'\n\n'        Text.Whitespace

'DATASEG'     Keyword
'\n\n'        Text.Whitespace

'openOutOfMemory' Name.Constant
'   '         Text.Whitespace
'db'          Keyword.Declaration
' '           Text.Whitespace
'"Out of openlistSize memory. Hi dev: Please increase$"' Literal.String
'\n'          Text.Whitespace

'closedOutOfMemory' Name.Constant
' '           Text.Whitespace
'db'          Keyword.Declaration
' '           Text.Whitespace
'"Out of closedlistSize memory. Hi dev: Please increase$"' Literal.String
'\n\n'        Text.Whitespace

'; power | discover | walking | sailing | flying' Comment.Single
'\n'          Text.Whitespace

'actionTable' Name.Constant
' '           Text.Whitespace
'db'          Keyword.Declaration
'  '          Text.Whitespace
'00001101b'   Literal.Number.Bin
','           Punctuation
' '           Text.Whitespace
'\\'          Text
' '           Text.Whitespace
';EMPTY'      Comment.Single
'\n'          Text.Whitespace

'                ' Text.Whitespace
'00001101b'   Literal.Number.Bin
','           Punctuation
' '           Text.Whitespace
'\\'          Text
' '           Text.Whitespace
';RUBBLE'     Comment.Single
'\n'          Text.Whitespace

'                ' Text.Whitespace
'00000000b'   Literal.Number.Bin
','           Punctuation
' '           Text.Whitespace
'\\'          Text
' '           Text.Whitespace
';GRAVEL'     Comment.Single
'\n'          Text.Whitespace

'                ' Text.Whitespace
'00000000b'   Literal.Number.Bin
','           Punctuation
' '           Text.Whitespace
'\\'          Text
' '           Text.Whitespace
';LOOSE ROCK' Comment.Single
'\n'          Text.Whitespace

'                ' Text.Whitespace
'00000000b'   Literal.Number.Bin
','           Punctuation
' '           Text.Whitespace
'\\'          Text
' '           Text.Whitespace
';HARD ROCK'  Comment.Single
'\n'          Text.Whitespace

'                ' Text.Whitespace
'00000000b'   Literal.Number.Bin
','           Punctuation
' '           Text.Whitespace
'\\'          Text
' '           Text.Whitespace
';MASSIVE ROCK' Comment.Single
'\n'          Text.Whitespace

'                ' Text.Whitespace
'00000000b'   Literal.Number.Bin
','           Punctuation
' '           Text.Whitespace
'\\'          Text
' '           Text.Whitespace
';KRISTAL SOURCE' Comment.Single
'\n'          Text.Whitespace

'                ' Text.Whitespace
'00000000b'   Literal.Number.Bin
','           Punctuation
' '           Text.Whitespace
'\\'          Text
' '           Text.Whitespace
';OREROCK'    Comment.Single
'\n'          Text.Whitespace

'                ' Text.Whitespace
'00001011b'   Literal.Number.Bin
','           Punctuation
' '           Text.Whitespace
'\\'          Text
' '           Text.Whitespace
';WATER'      Comment.Single
'\n'          Text.Whitespace

'                ' Text.Whitespace
'00001001b'   Literal.Number.Bin
','           Punctuation
' '           Text.Whitespace
'\\'          Text
' '           Text.Whitespace
';LAVA'       Comment.Single
'\n'          Text.Whitespace

'                ' Text.Whitespace
'00001101b'   Literal.Number.Bin
','           Punctuation
' '           Text.Whitespace
'\\'          Text
' '           Text.Whitespace
';SNAIL HOLE' Comment.Single
'\n'          Text.Whitespace

'                ' Text.Whitespace
'00001101b'   Literal.Number.Bin
','           Punctuation
' '           Text.Whitespace
'\\'          Text
' '           Text.Whitespace
';EROSION'    Comment.Single
'\n'          Text.Whitespace

'                ' Text.Whitespace
'00011101b'   Literal.Number.Bin
','           Punctuation
' '           Text.Whitespace
'\\'          Text
' '           Text.Whitespace
';POWER PATH' Comment.Single
'\n'          Text.Whitespace

'                ' Text.Whitespace
'00011101b'   Literal.Number.Bin
','           Punctuation
' '           Text.Whitespace
'\\'          Text
' '           Text.Whitespace
';BUILDING POWER PATH' Comment.Single
'\n'          Text.Whitespace

'                ' Text.Whitespace
'00011000b'   Literal.Number.Bin
'  '          Text.Whitespace
'\\'          Text
' '           Text.Whitespace
';BUILDING'   Comment.Single
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'UDATASEG'    Keyword
'\n\n'        Text.Whitespace

'currentType' Name.Constant
'      '      Text.Whitespace
'dd'          Keyword.Declaration
' '           Text.Whitespace
'?'           Name.Variable
'\n'          Text.Whitespace

'currentOpen' Name.Constant
'      '      Text.Whitespace
'TPriorityField' Keyword.Declaration
' '           Text.Whitespace
'?'           Name.Variable
'\n\n'        Text.Whitespace

'openlist'    Name.Constant
'         '   Text.Whitespace
'TPriorityField' Keyword.Declaration
' '           Text.Whitespace
'OPEN_LIST_SIZE_MAX' Name.Variable
' '           Text.Whitespace
'dup'         Name.Variable
'('           Punctuation
'?'           Name.Variable
')'           Punctuation
'\n'          Text.Whitespace

'openlistSize' Name.Constant
'     '       Text.Whitespace
'dw'          Keyword.Declaration
' '           Text.Whitespace
'?'           Name.Variable
'\n'          Text.Whitespace

'closedlist'  Name.Constant
'       '     Text.Whitespace
'TField'      Keyword.Declaration
' '           Text.Whitespace
'CLOSED_LIST_SIZE_MAX' Name.Variable
'       '     Text.Whitespace
'dup'         Name.Variable
'('           Punctuation
'?'           Name.Variable
')'           Punctuation
'\n'          Text.Whitespace

'closedlistSize' Name.Constant
'   '         Text.Whitespace
'dw'          Keyword.Declaration
' '           Text.Whitespace
'?'           Name.Variable
'\n'          Text.Whitespace

'backtraceGraph' Name.Constant
'   '         Text.Whitespace
'TField'      Keyword.Declaration
' '           Text.Whitespace
'MAX_LEVEL_SIZE' Name.Variable
'             ' Text.Whitespace
'dup'         Name.Variable
'('           Punctuation
'?'           Name.Variable
')'           Punctuation
'\n\n'        Text.Whitespace

'END'         Keyword
'\n'          Text.Whitespace