================================================================================
B A S T A R D                                            disassembly environment

                           Source  Code  Layout



bastard                          /* bastard 'home' directory */
|-- KNOWN_BUGS                   /* A list of things to be safely ignored */
|-- Makefile                     /* the, er, makefile */
|-- README.CODERS                /* info for developers */
|-- README.TXT                   /* breaking news & howto's */
|-- TODO                         /* /dev/null */
|-- arch                         /* Location of loadable ARCH extensions */
|   |-- README.arch              /* Description of arch extensions */
|   `-- libi386.so               /* x86 Arch extension */
|-- asm                          /* Location of loadable ASM extensions */
|   |-- README.asm               /* Description of asm extensions */
|   `-- libintel.so              /* Intel Assembler extension */
|-- bastard                      /* main executable : CLI frontend */
|-- db                           /* location of .dbd files */
|   |-- bdb.dbd                  /* Target database defintion file */
|   `-- cfg.dbd                  /* Configuration database definition file */
|-- doc                          /* Main documentation/man page directory */
|   |-- BCScript.txt             /* Bastard BC Scripting Manual */
|   |-- DBSchema.txt             /* Bastard Database Schematics */
|   |-- Disasm-HOWTO.txt         /* HowTo for basic bastard disassembly */
|   |-- EiC.ps                   /* Postscript version of the EiC manual */
|   |-- EiC.txt                  /* Bad ASCII version of the EiC manual */
|   |-- ExtensionProg.txt        /* Bastard Extension Programming Guide */
|   |-- FrontEndProg.txt         /* Bastard Front-End Programming Guide */
|   |-- Function-HOWTO.txt       /* HowTo for creating/using FUNCTIONs */
|   |-- SourceLayout.txt         /* This file */
|   |-- Structure-HOWTO.txt      /* HowTo for creating/using STRUCTUREs*/
|   |-- TheoryOfOp.txt           /* Bastard Theory of Operations */
|   |-- bastard.spec             /* ancient spec */
|   |-- bastard.txt              /* ancient manual */
|   |-- libi386.txt              /* readme for the x86 ARCH extension */
|   |-- man                      /* bastard, EiC, Typhoon man pages */
|       |-- ddlp.1               /* Typhoon ddlp utility man page */
|       `-- eic.1                /* EiC interpreter man page */
|   `-- typhoon.txt              /* Typhoon user manual */
|-- engines                      /* Location of loadable ENGINE extensions */
|   |-- pass1.bc                 /* post disassembly pass 1: Subroutine Rec */
|   |-- pass2.bc                 /* post disassembly pass 2: Sub Arhs/Rets */
|   |-- pass3.bc                 /* post disassembly pass 3: String Creation */
|   |-- pass4.bc                 /* post disassembly pass 4: */
|   `-- pass5.bc                 /* post disassembly pass 5: Sub Naming */
|-- formats                      /* Location of loadable FORMAT extensions */
|   |-- ELF.bc                   /* ELF file format parser */
|   `-- README.TXT               /* Description of formats directory */
|-- include                      /* Main include directory */
|   |-- api                         /* API internal header files */
|   |   |-- api_error.h             /* bastard error codes */
|   |   |-- api_main.h              /* main API includes/dependencies */
|   |   `-- util.h                  /* general purpose utility functions */ 
|   |-- bastard.h                   /* Main bastard API include file */
|   |                               /*    Defines :      */
|   |                               /*      addr_exists( ) */
|   |                               /*      ApplyInlineFunction( ) */
|   |                               /*      struct_apply( ) */
|   |                               /*      asmsprintf( ) */
|   |                               /*      env_clear( ) */
|   |                               /*      env_clear_flag( ) */
|   |                               /*      env_clear_option( ) */
|   |                               /*      env_clear_target( ) */
|   |                               /*      target_close_db( ) */
|   |                               /*      script_compile( ) */
|   |                               /*      sys_core( ) */
|   |                               /*      target_set_header( ) */
|   |                               /*      sec_new( ) */
|   |                               /*      db_find_closest_next( ) */
|   |                               /*      db_find_closest_prev( ) */
|   |                               /*      db_index_find( ) */
|   |                               /*      db_index_first( ) */
|   |                               /*      db_index_last( ) */
|   |                               /*      db_index_next( ) */
|   |                               /*      db_index_prev( ) */
|   |                               /*      db_record_delete( ) */
|   |                               /*      db_record_insert( ) */
|   |                               /*      db_record_update( ) */
|   |                               /*      db_restore_state( ) */
|   |                               /*      db_restore_state( ) */
|   |                               /*      db_save_state( ) */
|   |                               /*      db_save_state( ) */
|   |                               /*      db_table_first( ) */
|   |                               /*      db_table_last( ) */
|   |                               /*      db_table_next( ) */
|   |                               /*      db_table_prev( ) */
|   |                               /*      sys_debug( ) */
|   |                               /*      addr_new( ) */
|   |                               /*      addr_add_comment( ) */
|   |                               /*      addrexp_new( ) */
|   |                               /*      code_new( ) */
|   |                               /*      comment_new( ) */
|   |                               /*      const_new( ) */
|   |                               /*      exp_new( ) */
|   |                               /*      func_new( ) */
|   |                               /*      imp_new( ) */
|   |                               /*      lib_new( ) */
|   |                               /*      macro_new( ) */
|   |                               /*      xref_new( ) */
|   |                               /*      str_new( ) */
|   |                               /*      comment_del( ) */
|   |                               /*      const_del( ) */
|   |                               /*      sec_del( ) */
|   |                               /*      disasm_addr_size( ) */
|   |                               /*      disasm_byte_order( ) */
|   |                               /*      disasm_byte_size( ) */
|   |                               /*      disasm_dword_size( ) */
|   |                               /*      disasm_epilogue( ) */
|   |                               /*      disasm_get_ip( ) */
|   |                               /*      disasm_get_sp( ) */
|   |                               /*      disasm_prologue( ) */
|   |                               /*      disasm_word_size( ) */
|   |                               /*      disasm_all_passes( ) */
|   |                               /*      DisassembleDumb( ) */
|   |                               /*      disasm_forward( ) */
|   |                               /*      DisassembleFull( ) */
|   |                               /*      disasm_pass( ) */
|   |                               /*      disasm_range( ) */
|   |                               /*      disasm_section( ) */
|   |                               /*      exp_print( ) */
|   |                               /*      imp_print( ) */
|   |                               /*      lib_print( ) */
|   |                               /*      str_print( ) */
|   |                               /*      sys_errmsg( ) */
|   |                               /*      sys_exec( ) */
|   |                               /*      find_bytes( ) */
|   |                               /*      addr_find_closest( ) */
|   |                               /*      find_constant( ) */
|   |                               /*      find_mnemonic( ) */
|   |                               /*      find_next_opsys_x( ) */
|   |                               /*      find_next_op_r( ) */
|   |                               /*      find_next_op_w( ) */
|   |                               /*      find_operand( ) */
|   |                               /*      find_prev_opsys_x( ) */
|   |                               /*      find_prev_op_r( ) */
|   |                               /*      find_prev_op_w( ) */
|   |                               /*      str_find_in_range( ) */
|   |                               /*      find_free_handle( ) */
|   |                               /*      addr_get_by_name( ) */
|   |                               /*      addr_bytes( ) */
|   |                               /*      addr_comment( ) */
|   |                               /*      addr_constant( ) */
|   |                               /*      GetAddrExpObject( ) */
|   |                               /*      addrexp_get( ) */
|   |                               /*      addrexp_get_str( ) */
|   |                               /*      addr_size( ) */
|   |                               /*      addr_struct( ) */
|   |                               /*      addr_type( ) */
|   |                               /*      GetAddressObject( ) */
|   |                               /*      GetAux( ) */
|   |                               /*      GetAuxType( ) */
|   |                               /*      GetBCMacroObject( ) */
|   |                               /*      GetBranchCode( ) */
|   |                               /*      GetCodeObject( ) */
|   |                               /*      code_sprint( ) */
|   |                               /*      code_sprint( ) */
|   |                               /*      comment_get( ) */
|   |                               /*      GetCommentObject( ) */
|   |                               /*      const_get_by_val( ) */
|   |                               /*      const_get_by_name( ) */
|   |                               /*      const_get_name( ) */
|   |                               /*      const_get_by_valNext( ) */
|   |                               /*      GetConstantObject( ) */
|   |                               /*      GetDataTypeObject( ) */
|   |                               /*      env_get_debugger( ) */
|   |                               /*      GetDest( ) */
|   |                               /*      GetDestType( ) */
|   |                               /*      GetDisasmAsm( ) */
|   |                               /*      GetDisasmEng( ) */
|   |                               /*      GetDisasmEnv( ) */
|   |                               /*      GetDisasmHome( ) */
|   |                               /*      GetDisasmLang( ) */
|   |                               /*      GetDisasmPrefs( ) */
|   |                               /*      GetDisasmTgt( ) */
|   |                               /*      env_get_editor( ) */
|   |                               /*      str_get_raw( ) */
|   |                               /*      env_get_flag( ) */
|   |                               /*      exp_get( ) */
|   |                               /*      GetExportObject( ) */
|   |                               /*      GetFInlineObject( ) */
|   |                               /*      GetFinCodeObject( ) */
|   |                               /*      addr_flags( ) */
|   |                               /*      addr_flags( ) */
|   |                               /*      func_get_by_name( ) */
|   |                               /*      func_get_end( ) */
|   |                               /*      GetFuncLocalObject( ) */
|   |                               /*      func_get_name( ) */
|   |                               /*      GetFuncParamObject( ) */
|   |                               /*      func_get_start( ) */
|   |                               /*      GetFunctionComment( ) */
|   |                               /*      GetFunctionObject( ) */
|   |                               /*      GetFunctionPrototype( ) */
|   |                               /*      target_header( ) */
|   |                               /*      imp_get_lib( ) */
|   |                               /*      imp_get_name( ) */
|   |                               /*      GetImportObject( ) */
|   |                               /*      imp_type( ) */
|   |                               /*      GetInlineTypeObject( ) */
|   |                               /*      GetIntCodeObject( ) */
|   |                               /*      sys_get_lasterr( ) */
|   |                               /*      sys_get_lasterr( ) */
|   |                               /*      sys_lasterr_str( ) */
|   |                               /*      GetMnemType( ) */
|   |                               /*      GetMnemonic( ) */
|   |                               /*      name_get( ) */
|   |                               /*      name_get( ) */
|   |                               /*      GetNameObject( ) */
|   |                               /*      name_get_type( ) */
|   |                               /*      addr_next( ) */
|   |                               /*      addr_next_code( ) */
|   |                               /*      addr_next_data( ) */
|   |                               /*      xref_from_next( ) */
|   |                               /*      xref_to_next( ) */
|   |                               /*      env_get_option( ) */
|   |                               /*      addr_pa( ) */
|   |                               /*      env_get_pager( ) */
|   |                               /*      addr_prev( ) */
|   |                               /*      GetPrevCode( ) */
|   |                               /*      GetPrevData( ) */
|   |                               /*      addr_rva( ) */
|   |                               /*      xref_from( ) */
|   |                               /*      xref_to( ) */
|   |                               /*      sec_get( ) */
|   |                               /*      sec_get_end( ) */
|   |                               /*      sec_flags( ) */
|   |                               /*      sec_get_by_rva( ) */
|   |                               /*      GetSectionObject( ) */
|   |                               /*      sec_get_start( ) */
|   |                               /*      GetSrc( ) */
|   |                               /*      GetSrcType( ) */
|   |                               /*      str_get( ) */
|   |                               /*      GetStringObject( ) */
|   |                               /*      GetStructMemberObject( ) */
|   |                               /*      struct_getureTypeObject( ) */
|   |                               /*      target_fd( ) */
|   |                               /*      target_image( ) */
|   |                               /*      target_size( ) */
|   |                               /*      GetValidArchs( ) */
|   |                               /*      GetValidArchs( ) */
|   |                               /*      GetValidFormats( ) */
|   |                               /*      GetValidFormats( ) */
|   |                               /*      GetXrefObject( ) */
|   |                               /*      sys_init( ) */
|   |                               /*      sys_initDisassembler( ) */
|   |                               /*      addr_is_valid( ) */
|   |                               /*      addr_is_valid_code( ) */
|   |                               /*      JumpTo( ) */
|   |                               /*      target_load_bdb( ) */
|   |                               /*      target_load( ) */
|   |                               /*      addr_make_code( ) */
|   |                               /*      addr_make_data( ) */
|   |                               /*      addr_make_data( ) */
|   |                               /*      MakeFunction( ) */
|   |                               /*      MakeInlineFunction( ) */
|   |                               /*      sys_msg( ) */
|   |                               /*      sys_panic( ) */
|   |                               /*      addr_print( ) */
|   |                               /*      sys_print_errmsg( ) */
|   |                               /*      sys_quit( ) */
|   |                               /*      sys_re_init( ) */
|   |                               /*      sys_re_init( ) */
|   |                               /*      macro_record( ) */
|   |                               /*      script_compiled_exec( ) */
|   |                               /*      macro_exec( ) */
|   |                               /*      script_file_exec( ) */
|   |                               /*      script_text_exec( ) */
|   |                               /*      target_save_asm( ) */
|   |                               /*      target_save_binary( ) */
|   |                               /*      target_save_diff( ) */
|   |                               /*      target_save_hex( ) */
|   |                               /*      target_save_db( ) */
|   |                               /*      target_save_db_as( ) */
|   |                               /*      target_save_bak( ) */
|   |                               /*      addr_set_comment( ) */
|   |                               /*      addr_set_constant( ) */
|   |                               /*      addr_set_struct( ) */
|   |                               /*      comment_change( ) */
|   |                               /*      env_set_debugger( ) */
|   |                               /*      env_set_editor( ) */
|   |                               /*      env_defaults( ) */
|   |                               /*      env_set_flag( ) */
|   |                               /*      SetFileArch( ) */
|   |                               /*      env_file_asm( ) */
|   |                               /*      env_file_data( ) */
|   |                               /*      SetFileFormat( ) */
|   |                               /*      addr_set_flags( ) */
|   |                               /*      func_set_name( ) */
|   |                               /*      func_set_size( ) */
|   |                               /*      SetFunctionComment( ) */
|   |                               /*      SetFunctionPrototype( ) */
|   |                               /*      sys_set_lasterr( ) */
|   |                               /*      env_lpr_asm( ) */
|   |                               /*      env_lpr_data( ) */
|   |                               /*      name_new( ) */
|   |                               /*      env_set_option( ) */
|   |                               /*      SetOutputAssembler( ) */
|   |                               /*      env_set_pager( ) */
|   |                               /*      env_pref_defaults( ) */
|   |                               /*      sec_get_end( ) */
|   |                               /*      sec_set_flags( ) */
|   |                               /*      sec_rename( ) */
|   |                               /*      sec_set_start( ) */
|   |                               /*      env_target_defaults( ) */
|   |                               /*      target_set_lang( ) */
|   |                               /*      env_tty_asm( ) */
|   |                               /*      env_tty_data( ) */
|   |                               /*      sys_sprint_errmsg( ) */
|   |                               /*      addr_del( ) */
|   |                               /*      code_del( ) */
|   |                               /*      macro_del( ) */
|   |-- bdb.h                       /* Structure defs for TargetDB */
|   |-- cfg.h                       /* Structure defs for ConfigDB */
|   |-- cli                         /* Include files for CLI front-end */
|   |   |-- bastard_main.h          /* Main bastard executable include */
|   |   |                           /*    Defines :      */
|   |   |                           /*      ReadPrefs( ) */
|   |   |-- cli_cmd.h               /* CLI commands and aliases */
|   |   |                           /*    Defines :      */
|   |   |                           /*      cmd*( ) */
|   |   |-- cli_db.h                /* CLI DB access routines */
|   |   |                           /*    Defines :      */
|   |   |                           /*      dbPrint*( ) */
|   |   |                           /*      db_cmd( ) */
|   |   `-- parser.h                /* Command line scanner/parser */
|   |                               /*    Defines :      */
|   |                               /*      ProcessCommand( ) */
|   |-- config.h                    /* Include for ConfigDB routines */
|   |                               /*    Defines :      */
|   |                               /*      CreateProfile( ) */
|   |                               /*      DeleteProfile( ) */
|   |                               /*      GetProfile( ) */
|   |                               /*      LoadConfigDB( ) */
|   |                               /*      LoadProfile( ) */
|   |                               /*      UnloadConfigDB( ) */
|   |                               /*      UpdateProfile( ) */
|   |-- db                          /* includes for Typhoon DB and interface */
|   |   |-- db.h                    /* Typhoon DB interface include */
|   |   |                           /*    Defines :      */
|   |   |                           /*      db_load( ) */
|   |   |                           /*      db_switch( ) */
|   |   |                           /*      db_unload( ) */
|   |   |                           /*      db_error( ) */
|   |   |                           /*      db_errorMsg( ) */
|   |   |                           /*      doTyphoon( ) */
|   |   |                           /*      db_init_seq( ) */
|   |   |-- db_main.h               /* DB interface main include */
|   |   |-- environ.h               /* Typhoon-generated header file */
|   |   `-- typhoon.h               /* Typhoon DB main header file */
|   |                               /*    Defines :      */
|   |                               /*      d_close( ) */
|   |                               /*      d_crget( ) */
|   |                               /*      d_crread( ) */
|   |                               /*      d_crset( ) */
|   |                               /*      d_dbdpath( ) */
|   |                               /*      d_dbfpath( ) */
|   |                               /*      d_dbget( ) */
|   |                               /*      d_dbset( ) */
|   |                               /*      d_delete( ) */
|   |                               /*      d_destroy( ) */
|   |                               /*      d_fillnew( ) */
|   |                               /*      d_getkeyid( ) */
|   |                               /*      d_keyfind( ) */
|   |                               /*      d_keyfrst( ) */
|   |                               /*      d_keylast( ) */
|   |                               /*      d_keynext( ) */
|   |                               /*      d_keyprev( ) */
|   |                               /*      d_keyread( ) */
|   |                               /*      d_open( ) */
|   |                               /*      d_recfrst( ) */
|   |                               /*      d_reclast( ) */
|   |                               /*      d_recnext( ) */
|   |                               /*      d_recprev( ) */
|   |                               /*      d_recread( ) */
|   |                               /*      d_recwrite( ) */
|   |-- debug.h                     /* sys_debug output macros */
|   |                               /*    Defines :      */
|   |                               /*      DEBUG_PrintVar(x, y) */
|   |                               /*      DEBUG_PrintMsg(x, y) */
|   |-- extension.h                 /* Bastard Extensions interface */
|   |                               /*    Defines :      */
|   |                               /*     CleanupExtensions( ) */
|   |                               /*     GetExtensionFlags( ) */
|   |                               /*     sys_initExtensions( ) */
|   |                               /*     LoadExtension( ) */
|   |                               /*     UnloadExtension( ) */
|   |-- script                      /* EiC/macro include directory */
|   |   |-- eic                     /* Location of EiC include tree */
|   |   |                           /* NOTE: this include directory is */
|   |   |                           /* used by EiC at runtime to resolve */
|   |   |                           /* standard C library routine refs */
|   |   |-- eic.h                   /* EiC main header file */
|   |   |                           /*    Defines :      */
|   |   |                           /*      EiC_callBack( ) */
|   |   |                           /*      EiC_init_EiC( ) */
|   |   |                           /*      EiC_parseString( ) */
|   |   |                           /*      EiC_run( ) */
|   |   |                           /*      EiC_setsys_msgDisplay( ) */
|   |   |                           /*      EiC_startEiC( ) */
|   |   |-- eicval.h                /* EiC 'val_t' header file */
|   |   |-- macro.h                 /* EiC interface header */
|   |   |                           /*    Defines :      */
|   |   |                           /*      sys_execMacroLine( ) */
|   |   |                           /*      checkLine( ) */
|   |   |                           /*      doSeer( ) */
|   |   |                           /*      finSeer( ) */
|   |   `-- script_main.h           /* Main Script interface header */
|   |-- util.h                      /* Generic utility header */
|   |                               /*    Defines :      */
|   |                               /*      istrncmp( ) */
|   |                               /*      strtoupper( ) */
|   |                               /*      endian_check( ) */
|   |                               /*      encmp_range( ) */
|   |                               /*      encmp_short( ) */
|   |                               /*      encmp_int( ) */
|   |                               /*      encpy_range( ) */
|   |                               /*      encpy_short( ) */
|   |                               /*      encpy_int( ) */
|   `-- vm.h                        /* PsuedoVirtualMachine interface */
|                                   /*    Defines :      */
|                                   /*      AddRegTableEntry( ) */
|                                   /*      CleanupVM( ) */
|                                   /*      GetRegMnemonic( ) */
|                                   /*      GetRegSize( ) */
|                                   /*      sys_initVM( ) */
|-- lang                            /* Location of loadable LANG extensions */  
|   |-- README.lang                 /* Description of the LANG extensions */
|   `-- libC.so                     /* C LANG extension (default) */
|-- lib                             /* Shared and Static library files */
|   |-- libbastard.a                /* Static library version of the bastard */
|   |-- libbastard.so               /* Shared library version of the bastard */
|   |-- libeic.a                    /* Static library for EiC interpreter */
|   |-- libstdClib.a                /* Static library for EiC interpreter */
|   `-- libtyphoon.a                /* Static library for Tyhoon RDBMS */
|   |-- disasm.text.bc              /* Extension for .text section Disassembly */
|   |-- libdisasm.dumb.so           /* Extension for Dumb Disassembly */
|   `-- libdisasm.full.so           /* Extension for Full Disassembly */
|-- scripts                         /* Location of loadable SCRIPT extensions */
|   |-- call_tree.bc                /* Unwritten Call Tree script */
|   |-- exports.bc                  /* List all exports */
|   |-- functions.bc                /* List all functions */
|   |-- imports.bc                  /* List all imports */
|   |-- macros                      /* Location of saved macros */
|   |-- names.bc                    /* List all names */
|   |-- strings.bc                  /* List all strings */
|   |-- top_xrefs.bc                /* Unwritten "Most used Xrefs" script */
|   `-- xrefs.bc                    /* List all Xrefs */		
|-- src                             /* main bastard source tree */
|   |-- EiC                         /* Source tree for EiC C interpreter */
|   |-- api                         /* Bastard API implementation */
|   |   |-- api_address.c           /* Bastard API ADDRESS routines */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      addr_exists( ) */
|   |   |                           /*      addr_new( ) */
|   |   |                           /*      addr_add_comment( ) */
|   |   |                           /*      addr_find_closest( ) */
|   |   |                           /*      addr_bytes( ) */
|   |   |                           /*      addr_comment( ) */
|   |   |                           /*      addr_constant( ) */
|   |   |                           /*      addr_size( ) */
|   |   |                           /*      addr_struct( ) */
|   |   |                           /*      addr_type( ) */
|   |   |                           /*      addr_flags( ) */
|   |   |                           /*      addr_next( ) */
|   |   |                           /*      addr_pa( ) */
|   |   |                           /*      addr_prev( ) */
|   |   |                           /*      addr_rva( ) */
|   |   |                           /*      addr_is_valid( ) */
|   |   |                           /*      addr_is_valid_code( ) */
|   |   |                           /*      addr_make_code( ) */
|   |   |                           /*      addr_make_data( ) */
|   |   |                           /*      addr_merge( ) */
|   |   |                           /*      addr_print( ) */
|   |   |                           /*      addr_set_comment( ) */
|   |   |                           /*      addr_set_constant( ) */
|   |   |                           /*      addr_set_struct( ) */
|   |   |                           /*      addr_set_flags( ) */
|   |   |                           /*      addr_split( ) */
|   |   |                           /*      addr_del( ) */
|   |   |                           /*      asmsprintf( ) */
|   |   |-- api_code.c              /* Bastard API CODE routines */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      code_new( ) */
|   |   |                           /*      GetAux( ) */
|   |   |                           /*      GetAuxType( ) */
|   |   |                           /*      code_sprint( ) */
|   |   |                           /*      GetDest( ) */
|   |   |                           /*      GetDestType( ) */
|   |   |                           /*      GetMnemType( ) */
|   |   |                           /*      GetMnemonic( ) */
|   |   |                           /*      addr_next_code( ) */
|   |   |                           /*      addr_next_data( ) */
|   |   |                           /*      GetSrc( ) */
|   |   |                           /*      GetSrcType( ) */
|   |   |                           /*      SetAux( ) */
|   |   |                           /*      SetDest( ) */
|   |   |                           /*      SetMnemonic( ) */
|   |   |                           /*      SetSrc( ) */
|   |   |                           /*      code_del( ) */
|   |   |-- api_disasm.c            /* Bastard API Disassembly routines */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      analyze_curr_inst( ) */
|   |   |                           /*      analyze_urr_op( ) */
|   |   |                           /*      target_set_header( ) */
|   |   |                           /*      disasm_addr( ) */
|   |   |                           /*      disasm_all_passes( ) */
|   |   |                           /*      DisassembleDumb( ) */
|   |   |                           /*      disasm_forward( ) */
|   |   |                           /*      DisassembleFull( ) */
|   |   |                           /*      disasm_pass( ) */
|   |   |                           /*      disasm_range( ) */
|   |   |                           /*      disasm_section( ) */
|   |   |                           /*      sys_initDisassembler( ) */
|   |   |                           /*      target_header( ) */
|   |   |-- api_env.c               /* Bastard API Environment routines */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      env_clear_flag( ) */
|   |   |                           /*      env_clear_option( ) */
|   |   |                           /*      env_get_flag( ) */
|   |   |                           /*      env_get_option( ) */
|   |   |                           /*      env_set_flag( ) */
|   |   |                           /*      env_file_asm( ) */
|   |   |                           /*      env_file_data( ) */
|   |   |                           /*      env_lpr_asm( ) */
|   |   |                           /*      env_lpr_data( ) */
|   |   |                           /*      env_set_option( ) */
|   |   |                           /*      env_tty_asm( ) */
|   |   |                           /*      env_tty_data( ) */
|   |   |-- api_functions.c         /* Bastard API FUNCTION INLINE routines */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      func_new( ) */
|   |   |                           /*      func_get_by_name( ) */
|   |   |                           /*      func_get_end( ) */
|   |   |                           /*      func_get_name( ) */
|   |   |                           /*      func_get_start( ) */
|   |   |                           /*      func_set_name( ) */
|   |   |                           /*      func_set_size( ) */
|   |   |-- api_importexport.c      /* Bastard API IMPORT EXPORT routines */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      exp_new( ) */
|   |   |                           /*      lib_new( ) */
|   |   |                           /*      exp_print( ) */
|   |   |                           /*      imp_print( ) */
|   |   |                           /*      lib_print( ) */
|   |   |                           /*      exp_get( ) */
|   |   |                           /*      imp_get_lib( ) */
|   |   |                           /*      imp_get_name( ) */
|   |   |                           /*      imp_type( ) */
|   |   |-- api_loadsave.c          /* Bastard API loading, saving routines */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      target_close_db( ) */
|   |   |                           /*      target_load_bdb( ) */
|   |   |                           /*      target_load( ) */
|   |   |                           /*      target_save_asm( ) */
|   |   |                           /*      target_save_binary( ) */
|   |   |                           /*      target_save_diff( ) */
|   |   |                           /*      target_save_hex( ) */
|   |   |                           /*      target_save_db( ) */
|   |   |                           /*      target_save_db_as( ) */
|   |   |                           /*      target_save_bak( ) */
|   |   |                           /*      SetFileArch( ) */
|   |   |                           /*      SetFileFormat( ) */
|   |   |                           /*      SetOutputAssembler( ) */
|   |   |-- api_macros.c            /* Bastard API MACRO, script routines */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      script_compile( ) */
|   |   |                           /*      macro_new( ) */
|   |   |                           /*      macro_record( ) */
|   |   |                           /*      script_compiled_exec( ) */
|   |   |                           /*      macro_exec( ) */
|   |   |                           /*      script_file_exec( ) */
|   |   |                           /*      script_text_exec( ) */
|   |   |                           /*      macro_del( ) */
|   |   |-- api_namecomment.c       /* Bastard API NAME COMMENT routines */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      comment_new( ) */
|   |   |                           /*      comment_del( ) */
|   |   |                           /*      name_del( ) */
|   |   |                           /*      addr_get_by_name( ) */
|   |   |                           /*      comment_get( ) */
|   |   |                           /*      name_get( ) */
|   |   |                           /*      name_get_type( ) */
|   |   |                           /*      comment_change( ) */
|   |   |                           /*      name_new( ) */
|   |   |-- api_search.c            /* Bastard API search routines */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      find_bytes( ) */
|   |   |                           /*      find_constant( ) */
|   |   |                           /*      find_mnemonic( ) */
|   |   |                           /*      find_next_opsys_x( ) */
|   |   |                           /*      find_next_op_r( ) */
|   |   |                           /*      find_next_op_w( ) */
|   |   |                           /*      find_op_ttl( ) */
|   |   |                           /*      find_operand( ) */
|   |   |                           /*      find_prev_opsys_x( ) */
|   |   |                           /*      find_prev_op_r( ) */
|   |   |                           /*      find_prev_op_w( ) */
|   |   |                           /*      find_free_handle( ) */
|   |   |                           /*      find_prep_db( ) */
|   |   |-- api_section.c           /* Bastard API SECTION routines */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      sec_new( ) */
|   |   |                           /*      sec_del( ) */
|   |   |                           /*      sec_get( ) */
|   |   |                           /*      sec_get_end( ) */
|   |   |                           /*      sec_get_start( ) */
|   |   |-- api_strings.c           /* Bastard API STRING routines */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      str_new( ) */
|   |   |                           /*      str_print( ) */
|   |   |                           /*      str_find_in_range( ) */
|   |   |                           /*      str_get_raw( ) */
|   |   |                           /*      str_get( ) */
|   |   |-- api_structconst.c       /* Bastard API STRUCTURE CONSTANT funcs */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      struct_apply( ) */
|   |   |                           /*      const_new( ) */
|   |   |                           /*      dtype_new( ) */
|   |   |                           /*      struct_add_member( ) */
|   |   |                           /*      const_del( ) */
|   |   |                           /*      struct_del( ) */
|   |   |                           /*      struct_member_del( ) */
|   |   |                           /*      const_get_by_val( ) */
|   |   |                           /*      const_get_name( ) */
|   |   |                           /*      const_get_by_valNext( ) */
|   |   |                           /*      struct_get( ) */
|   |   |                           /*      struct_get_member( ) */
|   |   |-- api_system.c            /* Bastard API system routines */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      sys_core( ) */
|   |   |                           /*      sys_debug( ) */
|   |   |                           /*      sys_errmsg( ) */
|   |   |                           /*      sys_exec( ) */
|   |   |                           /*      sys_get_lasterr( ) */
|   |   |                           /*      GetValidArchs( ) */
|   |   |                           /*      GetValidFormats( ) */
|   |   |                           /*      sys_init( ) */
|   |   |                           /*      sys_msg( ) */
|   |   |                           /*      sys_panic( ) */
|   |   |                           /*      sys_print_errmsg( ) */
|   |   |                           /*      sys_quit( ) */
|   |   |                           /*      sys_re_init( ) */
|   |   |                           /*      sys_set_lasterr( ) */
|   |   |                           /*      sys_sprint_errmsg( ) */
|   |   `-- api_xref.c              /* bastard API XREF routines */
|   |                               /*   Contains:              */ 
|   |                               /*      xref_new( ) */
|   |                               /*      xref_from_next( ) */
|   |                               /*      xref_to_next( ) */
|   |                               /*      xref_from( ) */
|   |                               /*      xref_to( ) */
|   |-- arch                        /* source code for ARCH extensions */
|   |   |-- i386.c                  /* x86 ARCH extension */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      DecodeByte( ) */
|   |   |                           /*      DecodeSIB( ) */
|   |   |                           /*      GetSizedOperand( ) */
|   |   |                           /*      sys_initRegTable( ) */
|   |   |                           /*      InstDecode( ) */
|   |   |                           /*      disasm_addr( ) */
|   |   |                           /*      ext_arch_cleanup( ) */
|   |   |                           /*      ext_arch_init( ) */
|   |   |                           /*      get_epilogue( ) */
|   |   |                           /*      get_prologue( ) */
|   |   |-- i386.h                  /* x86 ARCH extension interface, defs */
|   |   |-- i386.opcode.map         /* x86 opcode definitions */
|   |   `-- Template.c              /* Template for writing ARCH extensions */
|   |-- asm                         /* source code for ASM extensions */
|   |   |-- intel.c                 /* Intel assembler extension */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      ext_asm_init( ) */
|   |   |                           /*      sprint_code( ) */
|   |   |                           /*      sprint_sec_end( ) */
|   |   |                           /*      sprint_sec_start( ) */
|   |   `-- Template.c              /* Template for writing ASM extensions */
|   |-- bdb.ddl                     /* source code for Target (bdb.dbd) DB */
|   |-- cfg.ddl                     /* source code for Config (cfg.dbd) DB */
|   |-- cli                         /* CLI front-end to libbastard.so */
|   |   |-- bastard.c               /* CLI front-end main() and etc */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      ReadPrefs( ) */
|   |   |                           /*      user_kill( ) */
|   |   |-- cli_cmd.c               /* CLI front-end commands */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      cmd*( ) */
|   |   |-- cli_db.c                /* command line interface to the DB */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      dbPrint*( ) */
|   |   |                           /*      db_cmd( ) */
|   |   `-- parser.c                /* command scanner/parser */
|   |                               /*   Contains:              */ 
|   |                               /*      ProcessCommand( ) */
|   |                               /*      istrcmp( ) */
|   |-- config.c                    /* Routines for manipulating cfg.bdb */
|   |                               /*   Contains:              */ 
|   |                               /*      CreateProfile( ) */
|   |                               /*      DeleteProfile( ) */
|   |                               /*      GetProfile( ) */
|   |                               /*      LoadConfigDB( ) */
|   |                               /*      UnloadConfigDB( ) */
|   |                               /*      UpdateProfile( ) */
|   |-- db.c                        /* Routines for accessing Typhoon */
|   |                               /*   Contains:              */ 
|   |                               /*      db_index_find( ) */
|   |                               /*      db_index_first( ) */
|   |                               /*      db_index_last( ) */
|   |                               /*      db_index_next( ) */
|   |                               /*      db_index_prev( ) */
|   |                               /*      db_record_delete( ) */
|   |                               /*      db_record_insert( ) */
|   |                               /*      db_record_update( ) */
|   |                               /*      db_restore_state( ) */
|   |                               /*      db_table_first( ) */
|   |                               /*      db_table_last( ) */
|   |                               /*      db_table_next( ) */
|   |                               /*      db_table_prev( ) */
|   |                               /*      db_init( ) */
|   |                               /*      db_load( ) */
|   |                               /*      db_switch( ) */
|   |                               /*      db_unload( ) */
|   |                               /*      db_error( ) */
|   |                               /*      db_errorMsg( ) */
|   |                               /*      db_init_seq( ) */
|   |-- eic_wrappers.c              /* Bastard API wrappers for EiC access */
|   |                               /*   Contains:              */ 
|   |                               /*      EicLoadApi( ) */
|   |-- engines                     /* directory for ENGINE extension source */
|   |   `-- Template.c              /* Template for writing ENGINE extensions */
|   |-- extension.c                 /* Routines for manipulating extensions */
|   |                               /*   Contains:          */
|   |                               /*      CleanupExtensions( ) */
|   |                               /*      GetExtensionFlags( ) */
|   |                               /*      sys_initExtensions( ) */
|   |                               /*      LoadExtension( ) */
|   |                               /*      UnloadExtension( ) */
|   |-- formats                     /* directory for FORMAT extension source */
|   |   `-- Template.c              /* Template for writing FORMAT extensions */
|   |-- graph.ddl                   /* source code for Graph (graph.dbd) DB */
|   |-- lang                        /* source code for LANG extensions */
|   |   |-- C.c                     /* C Language extension */
|   |   |                           /*   Contains:              */ 
|   |   |                           /*      ext_lang_init( ) */
|   |   |                           /*      findstr( ) */
|   |   |                           /*      makestr( ) */
|   |   `-- Template.c              /* Template for writing LANG extensions */
|   |-- macro.c                     /* Routines for accessing EiC */
|   |                               /*   Contains:              */ 
|   |                               /*      sys_execMacroLine( ) */
|   |                               /*      sys_execScript( ) */
|   |                               /*      sys_initInterpreter( ) */
|   |                               /*      LoadScript( ) */
|   |-- plugins                     /* directory for PLUGIN extension source */
|   |   `-- Template.c              /* Template for writing ARCH extensions */
|   |-- typhoon                     /* Source tree for Typhoon RDBMS */
|   |-- util.c                      /* Generic helper functions */
|   |                               /*   Contains:              */ 
|   |                               /*      istrncmp( ) */
|   |                               /*      strtoupper( ) */
|   |                               /*      endian_check( ) */
|   |                               /*      encmp_range( ) */
|   |                               /*      encmp_short( ) */
|   |                               /*      encmp_int( ) */
|   |                               /*      encpy_range( ) */
|   |                               /*      encpy_short( ) */
|   |                               /*      encpy_int( ) */
|   `-- vm.c                        /* Routines for Psuedo-VM operations */
|                                   /*   Contains:              */ 
|                                   /*      AddRegTableEntry( ) */
|                                   /*      CleanupVM( ) */
|                                   /*      sys_initVM( ) */
`-- utils                           /* utility programs */
    |-- bastard_api.pl              /* used for development purposes */
    |-- dbdview                     /* display the contents of a .dbd file */
    |-- ddlp                        /* utility to create .dbd, .h from .ddl */
    |-- disasm.color.sh             /* .sh performing a full disasm in color */
    |-- disasm.full.sh              /* .sh performing a full disasm */
    |-- disasm.text.sh              /* .sh disassembling a .text section */
    |-- eic                         /* command-line eic interpreter */
    |-- fix_bdb.sh                  /* used for development purposes */
	 |-- lgb                         /* Tk frontend to the bastard */
    |-- op-conv.pl                  /* used for development purposes */
    |-- tyexport                    /* export data from a Typhoon DB file */
    `-- tyimport                    /* import data to a Typhoon DB file */
