Annotation of frontvm/hardware/hostcall.s, revision 1.1

1.1     ! root        1:        .file   "hostcall.c"
        !             2:        .text
        !             3:        .p2align 4,,15
        !             4: .globl time2dos
        !             5:        .type   time2dos, @function
        !             6: time2dos:
        !             7:        pushl   %ebp
        !             8:        movl    %esp, %ebp
        !             9:        leal    8(%ebp), %eax
        !            10:        subl    $8, %esp
        !            11:        movl    %eax, (%esp)
        !            12:        call    localtime
        !            13:        movl    %eax, %ecx
        !            14:        movl    4(%ecx), %edx
        !            15:        movl    (%eax), %eax
        !            16:        sall    $5, %edx
        !            17:        sarl    %eax
        !            18:        orl     %edx, %eax
        !            19:        movl    8(%ecx), %edx
        !            20:        movl    %ebp, %esp
        !            21:        popl    %ebp
        !            22:        sall    $11, %edx
        !            23:        orl     %edx, %eax
        !            24:        movzwl  %ax, %eax
        !            25:        ret
        !            26:        .size   time2dos, .-time2dos
        !            27:        .p2align 4,,15
        !            28: .globl date2dos
        !            29:        .type   date2dos, @function
        !            30: date2dos:
        !            31:        pushl   %ebp
        !            32:        movl    %esp, %ebp
        !            33:        leal    8(%ebp), %eax
        !            34:        subl    $8, %esp
        !            35:        movl    %eax, (%esp)
        !            36:        call    localtime
        !            37:        movl    %eax, %ecx
        !            38:        movl    16(%eax), %eax
        !            39:        movzwl  12(%ecx), %edx
        !            40:        movl    20(%ecx), %ecx
        !            41:        incl    %eax
        !            42:        sall    $5, %eax
        !            43:        movl    %ebp, %esp
        !            44:        subl    $80, %ecx
        !            45:        popl    %ebp
        !            46:        orl     %edx, %eax
        !            47:        movl    %ecx, %edx
        !            48:        shrl    $31, %edx
        !            49:        decl    %edx
        !            50:        andl    %edx, %ecx
        !            51:        sall    $9, %ecx
        !            52:        orl     %ecx, %eax
        !            53:        movzwl  %ax, %eax
        !            54:        ret
        !            55:        .size   date2dos, .-date2dos
        !            56:        .p2align 4,,15
        !            57: .globl GetFileInformation
        !            58:        .type   GetFileInformation, @function
        !            59: GetFileInformation:
        !            60:        pushl   %ebp
        !            61:        movl    %esp, %ebp
        !            62:        leal    -104(%ebp), %eax
        !            63:        subl    $120, %esp
        !            64:        movl    %eax, 8(%esp)
        !            65:        movl    8(%ebp), %eax
        !            66:        movl    %esi, -4(%ebp)
        !            67:        movl    12(%ebp), %esi
        !            68:        movl    %ebx, -8(%ebp)
        !            69:        movl    %eax, 4(%esp)
        !            70:        movl    $3, (%esp)
        !            71:        call    __xstat
        !            72:        xorl    %edx, %edx
        !            73:        testl   %eax, %eax
        !            74:        je      .L8
        !            75: .L4:
        !            76:        movl    -8(%ebp), %ebx
        !            77:        movl    %edx, %eax
        !            78:        movl    -4(%ebp), %esi
        !            79:        movl    %ebp, %esp
        !            80:        popl    %ebp
        !            81:        ret
        !            82:        .p2align 4,,7
        !            83: .L8:
        !            84:        leal    -40(%ebp), %eax
        !            85:        movl    %eax, (%esp)
        !            86:        call    localtime
        !            87:        movzwl  12(%eax), %ebx
        !            88:        movl    16(%eax), %edx
        !            89:        movl    20(%eax), %ecx
        !            90:        andl    $15, %edx
        !            91:        andl    $31, %ebx
        !            92:        sall    $5, %edx
        !            93:        subl    $80, %ecx
        !            94:        orl     %edx, %ebx
        !            95:        movl    %ecx, %edx
        !            96:        shrl    $31, %edx
        !            97:        decl    %edx
        !            98:        andl    %edx, %ecx
        !            99:        andl    $127, %ecx
        !           100:        movl    4(%eax), %edx
        !           101:        sall    $9, %ecx
        !           102:        orl     %ecx, %ebx
        !           103:        andl    $63, %edx
        !           104:        sall    $5, %edx
        !           105:        movzwl  (%eax), %ecx
        !           106:        movl    8(%eax), %eax
        !           107:        movw    %bx, (%esi)
        !           108:        andl    $31, %ecx
        !           109:        andl    $31, %eax
        !           110:        orl     %edx, %ecx
        !           111:        sall    $11, %eax
        !           112:        orl     %eax, %ecx
        !           113:        movw    %cx, 2(%esi)
        !           114:        movl    $1, %edx
        !           115:        jmp     .L4
        !           116:        .size   GetFileInformation, .-GetFileInformation
        !           117:        .section        .rodata.str1.1,"aMS",@progbits,1
        !           118: .LC0:
        !           119:        .string "%s/%s"
        !           120:        .text
        !           121:        .p2align 4,,15
        !           122: .globl PopulateDTA
        !           123:        .type   PopulateDTA, @function
        !           124: PopulateDTA:
        !           125:        pushl   %ebp
        !           126:        movl    %esp, %ebp
        !           127:        subl    $376, %esp
        !           128:        movl    %esi, -4(%ebp)
        !           129:        movl    8(%ebp), %eax
        !           130:        movl    12(%ebp), %esi
        !           131:        movl    %ebx, -8(%ebp)
        !           132:        movl    $.LC0, %ebx
        !           133:        addl    $11, %esi
        !           134:        movl    %ebx, 4(%esp)
        !           135:        leal    -264(%ebp), %ebx
        !           136:        movl    %esi, 12(%esp)
        !           137:        movl    %eax, 8(%esp)
        !           138:        movl    %ebx, (%esp)
        !           139:        call    sprintf
        !           140:        movl    %ebx, 4(%esp)
        !           141:        leal    -360(%ebp), %eax
        !           142:        movl    %eax, 8(%esp)
        !           143:        movl    $3, (%esp)
        !           144:        call    __xstat
        !           145:        xorl    %edx, %edx
        !           146:        testl   %eax, %eax
        !           147:        jne     .L9
        !           148:        movl    pDTA, %ecx
        !           149:        testl   %ecx, %ecx
        !           150:        jne     .L16
        !           151: .L9:
        !           152:        movl    -8(%ebp), %ebx
        !           153:        movl    %edx, %eax
        !           154:        movl    -4(%ebp), %esi
        !           155:        movl    %ebp, %esp
        !           156:        popl    %ebp
        !           157:        ret
        !           158:        .p2align 4,,7
        !           159: .L16:
        !           160:        movl    %esi, (%esp)
        !           161:        call    Misc_strupr
        !           162:        movl    %esi, 4(%esp)
        !           163:        movl    $14, %eax
        !           164:        movl    %eax, 8(%esp)
        !           165:        movl    pDTA, %eax
        !           166:        addl    $30, %eax
        !           167:        movl    %eax, (%esp)
        !           168:        call    strncpy
        !           169:        movl    pDTA, %ebx
        !           170:        movl    -316(%ebp), %eax
        !           171: #APP
        !           172:        bswap   %eax
        !           173: 
        !           174: #NO_APP
        !           175:        movl    %eax, 26(%ebx)
        !           176:        movl    -296(%ebp), %eax
        !           177:        movl    %eax, (%esp)
        !           178:        call    time2dos
        !           179:        movzwl  %ax, %eax
        !           180: #APP
        !           181:        xchgb %al,%ah
        !           182: #NO_APP
        !           183:        movw    %ax, 22(%ebx)
        !           184:        movl    -296(%ebp), %eax
        !           185:        movl    pDTA, %ebx
        !           186:        movl    %eax, (%esp)
        !           187:        call    date2dos
        !           188:        movzwl  %ax, %eax
        !           189: #APP
        !           190:        xchgb %al,%ah
        !           191: #NO_APP
        !           192:        movw    %ax, 24(%ebx)
        !           193:        movl    -344(%ebp), %eax
        !           194:        movl    pDTA, %ebx
        !           195:        movl    %eax, (%esp)
        !           196:        call    GemDOS_ConvertAttribute
        !           197:        movb    %al, 21(%ebx)
        !           198:        movl    $1, %edx
        !           199:        jmp     .L9
        !           200:        .size   PopulateDTA, .-PopulateDTA
        !           201:        .p2align 4,,15
        !           202: .globl ClearInternalDTA
        !           203:        .type   ClearInternalDTA, @function
        !           204: ClearInternalDTA:
        !           205:        pushl   %ebp
        !           206:        movl    %esp, %ebp
        !           207:        pushl   %ebx
        !           208:        subl    $4, %esp
        !           209:        movl    DTAIndex, %edx
        !           210:        movl    %edx, %eax
        !           211:        movl    %edx, %ecx
        !           212:        sall    $4, %eax
        !           213:        addl    %edx, %eax
        !           214:        sall    $4, %eax
        !           215:        movl    InternalDTAs+12(%eax), %ebx
        !           216:        testl   %ebx, %ebx
        !           217:        je      .L18
        !           218:        xorl    %ebx, %ebx
        !           219:        cmpl    InternalDTAs+4(%eax), %ebx
        !           220:        jl      .L23
        !           221: .L25:
        !           222:        movl    %edx, %eax
        !           223:        sall    $4, %eax
        !           224:        addl    %edx, %eax
        !           225:        sall    $4, %eax
        !           226:        movl    InternalDTAs+12(%eax), %eax
        !           227:        movl    %eax, (%esp)
        !           228:        call    free
        !           229:        movl    DTAIndex, %edx
        !           230: .L18:
        !           231:        movl    %edx, %eax
        !           232:        sall    $4, %eax
        !           233:        addl    %edx, %eax
        !           234:        sall    $4, %eax
        !           235:        xorl    %edx, %edx
        !           236:        movl    %edx, InternalDTAs(%eax)
        !           237:        popl    %eax
        !           238:        popl    %ebx
        !           239:        popl    %ebp
        !           240:        ret
        !           241:        .p2align 4,,7
        !           242: .L23:
        !           243:        movl    %ecx, %eax
        !           244:        sall    $4, %eax
        !           245:        addl    %ecx, %eax
        !           246:        sall    $4, %eax
        !           247:        movl    InternalDTAs+12(%eax), %eax
        !           248:        movl    (%eax,%ebx,4), %eax
        !           249:        incl    %ebx
        !           250:        movl    %eax, (%esp)
        !           251:        call    free
        !           252:        movl    DTAIndex, %edx
        !           253:        movl    %edx, %eax
        !           254:        movl    %edx, %ecx
        !           255:        sall    $4, %eax
        !           256:        addl    %edx, %eax
        !           257:        sall    $4, %eax
        !           258:        cmpl    InternalDTAs+4(%eax), %ebx
        !           259:        jl      .L23
        !           260:        jmp     .L25
        !           261:        .size   ClearInternalDTA, .-ClearInternalDTA
        !           262:        .p2align 4,,15
        !           263:        .type   match, @function
        !           264: match:
        !           265:        pushl   %ebp
        !           266:        movl    %esp, %ebp
        !           267:        leal    -280(%ebp), %eax
        !           268:        pushl   %edi
        !           269:        leal    -536(%ebp), %edi
        !           270:        pushl   %esi
        !           271:        pushl   %ebx
        !           272:        subl    $540, %esp
        !           273:        movl    12(%ebp), %esi
        !           274:        movl    %eax, (%esp)
        !           275:        movl    8(%ebp), %ebx
        !           276:        movl    %ebx, 4(%esp)
        !           277:        call    strcpy
        !           278:        movl    %esi, 4(%esp)
        !           279:        movl    %edi, (%esp)
        !           280:        call    strcpy
        !           281:        leal    -280(%ebp), %eax
        !           282:        movl    %eax, (%esp)
        !           283:        call    Misc_strupr
        !           284:        movl    %edi, (%esp)
        !           285:        call    Misc_strupr
        !           286:        cmpb    $46, (%esi)
        !           287:        je      .L34
        !           288:        cmpb    $42, (%ebx)
        !           289:        jne     .L28
        !           290:        cmpb    $46, 1(%ebx)
        !           291:        jne     .L28
        !           292:        cmpb    $42, 2(%ebx)
        !           293:        jne     .L28
        !           294:        cmpb    $0, 3(%ebx)
        !           295:        je      .L59
        !           296:        .p2align 4,,15
        !           297: .L28:
        !           298:        movl    %esi, 4(%esp)
        !           299:        movl    $1, %esi
        !           300:        movl    %ebx, (%esp)
        !           301:        call    strcasecmp
        !           302:        testl   %eax, %eax
        !           303:        je      .L26
        !           304:        movzbl  -536(%ebp), %eax
        !           305:        leal    -280(%ebp), %ebx
        !           306:        movl    %edi, %ecx
        !           307:        testb   %al, %al
        !           308:        je      .L54
        !           309:        .p2align 4,,15
        !           310: .L51:
        !           311:        movzbl  (%ebx), %edx
        !           312:        cmpb    $42, %dl
        !           313:        je      .L60
        !           314:        cmpb    $63, %dl
        !           315:        je      .L61
        !           316: .L48:
        !           317:        incl    %ecx
        !           318:        incl    %ebx
        !           319:        xorl    %esi, %esi
        !           320:        cmpb    %al, %dl
        !           321:        jne     .L26
        !           322: .L58:
        !           323:        movzbl  (%ecx), %eax
        !           324: .L37:
        !           325:        testb   %al, %al
        !           326:        jne     .L51
        !           327: .L54:
        !           328:        cmpb    $0, (%ebx)
        !           329:        jne     .L34
        !           330: .L59:
        !           331:        movl    $1, %esi
        !           332:        .p2align 4,,15
        !           333: .L26:
        !           334:        addl    $540, %esp
        !           335:        movl    %esi, %eax
        !           336:        popl    %ebx
        !           337:        popl    %esi
        !           338:        popl    %edi
        !           339:        popl    %ebp
        !           340:        ret
        !           341:        .p2align 4,,7
        !           342: .L34:
        !           343:        xorl    %esi, %esi
        !           344:        jmp     .L26
        !           345:        .p2align 4,,7
        !           346: .L61:
        !           347:        testb   %al, %al
        !           348:        je      .L48
        !           349:        incl    %ecx
        !           350:        incl    %ebx
        !           351:        jmp     .L58
        !           352:        .p2align 4,,7
        !           353: .L60:
        !           354:        testb   %al, %al
        !           355:        je      .L43
        !           356:        cmpb    $46, %al
        !           357:        je      .L43
        !           358:        .p2align 4,,15
        !           359: .L46:
        !           360:        incl    %ecx
        !           361:        movzbl  (%ecx), %eax
        !           362:        testb   %al, %al
        !           363:        je      .L43
        !           364:        cmpb    $46, %al
        !           365:        jne     .L46
        !           366: .L43:
        !           367:        incl    %ebx
        !           368:        jmp     .L37
        !           369:        .size   match, .-match
        !           370:        .p2align 4,,15
        !           371: .globl fsfirst_dirname
        !           372:        .type   fsfirst_dirname, @function
        !           373: fsfirst_dirname:
        !           374:        pushl   %ebp
        !           375:        movl    %esp, %ebp
        !           376:        pushl   %edi
        !           377:        pushl   %esi
        !           378:        pushl   %ebx
        !           379:        subl    $12, %esp
        !           380:        xorl    %ebx, %ebx
        !           381:        movl    12(%ebp), %esi
        !           382:        movl    8(%ebp), %edi
        !           383:        movl    %esi, (%esp)
        !           384:        movl    %edi, 4(%esp)
        !           385:        call    sprintf
        !           386:        movzbl  (%esi), %eax
        !           387:        testb   %al, %al
        !           388:        je      .L77
        !           389:        .p2align 4,,15
        !           390: .L67:
        !           391:        cmpb    $92, %al
        !           392:        je      .L82
        !           393: .L66:
        !           394:        incl    %ebx
        !           395:        movzbl  (%ebx,%esi), %eax
        !           396:        testb   %al, %al
        !           397:        jne     .L67
        !           398: .L77:
        !           399:        movzbl  (%ebx,%edi), %eax
        !           400:        testb   %al, %al
        !           401:        je      .L79
        !           402:        .p2align 4,,15
        !           403: .L71:
        !           404:        movb    %al, (%ebx,%esi)
        !           405:        incl    %ebx
        !           406:        movzbl  (%ebx,%edi), %eax
        !           407:        testb   %al, %al
        !           408:        jne     .L71
        !           409: .L79:
        !           410:        cmpb    $47, (%ebx,%esi)
        !           411:        je      .L81
        !           412:        .p2align 4,,15
        !           413: .L75:
        !           414:        decl    %ebx
        !           415:        cmpb    $47, (%ebx,%esi)
        !           416:        jne     .L75
        !           417: .L81:
        !           418:        movb    $0, (%ebx,%esi)
        !           419:        addl    $12, %esp
        !           420:        popl    %ebx
        !           421:        popl    %esi
        !           422:        popl    %edi
        !           423:        popl    %ebp
        !           424:        ret
        !           425:        .p2align 4,,7
        !           426: .L82:
        !           427:        movb    $47, (%ebx,%esi)
        !           428:        jmp     .L66
        !           429:        .size   fsfirst_dirname, .-fsfirst_dirname
        !           430:        .p2align 4,,15
        !           431: .globl fsfirst_dirmask
        !           432:        .type   fsfirst_dirmask, @function
        !           433: fsfirst_dirmask:
        !           434:        pushl   %ebp
        !           435:        xorl    %edx, %edx
        !           436:        movl    %esp, %ebp
        !           437:        pushl   %esi
        !           438:        movl    8(%ebp), %ecx
        !           439:        movl    12(%ebp), %esi
        !           440:        pushl   %ebx
        !           441:        xorl    %ebx, %ebx
        !           442:        cmpb    $0, (%ecx)
        !           443:        je      .L102
        !           444:        .p2align 4,,15
        !           445: .L87:
        !           446:        incl    %edx
        !           447:        movzbl  (%edx,%ecx), %eax
        !           448:        testb   %al, %al
        !           449:        jne     .L87
        !           450: .L97:
        !           451:        cmpb    $47, %al
        !           452:        je      .L99
        !           453:        .p2align 4,,15
        !           454: .L91:
        !           455:        decl    %edx
        !           456:        cmpb    $47, (%edx,%ecx)
        !           457:        jne     .L91
        !           458: .L99:
        !           459:        incl    %edx
        !           460:        cmpb    $0, (%edx,%ecx)
        !           461:        je      .L101
        !           462:        .p2align 4,,15
        !           463: .L95:
        !           464:        movl    %edx, %eax
        !           465:        incl    %edx
        !           466:        movzbl  (%eax,%ecx), %eax
        !           467:        movb    %al, (%ebx,%esi)
        !           468:        incl    %ebx
        !           469:        cmpb    $0, (%edx,%ecx)
        !           470:        jne     .L95
        !           471: .L101:
        !           472:        movb    $0, (%ebx,%esi)
        !           473:        popl    %ebx
        !           474:        popl    %esi
        !           475:        popl    %ebp
        !           476:        ret
        !           477: .L102:
        !           478:        movzbl  (%ecx), %eax
        !           479:        jmp     .L97
        !           480:        .size   fsfirst_dirmask, .-fsfirst_dirmask
        !           481:        .p2align 4,,15
        !           482: .globl GemDOS_Init
        !           483:        .type   GemDOS_Init, @function
        !           484: GemDOS_Init:
        !           485:        pushl   %ebp
        !           486:        movl    $8448, %eax
        !           487:        movl    %esp, %ebp
        !           488:        subl    $8, %esp
        !           489:        movl    %eax, 4(%esp)
        !           490:        movl    $FileHandles, (%esp)
        !           491:        call    Memory_Clear
        !           492:        xorl    %eax, %eax
        !           493:        movl    $255, %edx
        !           494:        .p2align 4,,15
        !           495: .L108:
        !           496:        xorl    %ecx, %ecx
        !           497:        movl    %ecx, InternalDTAs(%eax)
        !           498:        xorl    %ecx, %ecx
        !           499:        movl    %ecx, InternalDTAs+4(%eax)
        !           500:        xorl    %ecx, %ecx
        !           501:        movl    %ecx, InternalDTAs+12(%eax)
        !           502:        addl    $272, %eax
        !           503:        decl    %edx
        !           504:        jns     .L108
        !           505:        xorl    %eax, %eax
        !           506:        movl    %eax, DTAIndex
        !           507:        leave
        !           508:        ret
        !           509:        .size   GemDOS_Init, .-GemDOS_Init
        !           510:        .p2align 4,,15
        !           511: .globl GemDOS_Reset
        !           512:        .type   GemDOS_Reset, @function
        !           513: GemDOS_Reset:
        !           514:        pushl   %ebp
        !           515:        movl    %esp, %ebp
        !           516:        pushl   %esi
        !           517:        xorl    %esi, %esi
        !           518:        pushl   %ebx
        !           519:        subl    $16, %esp
        !           520:        movl    $31, %ebx
        !           521:        .p2align 4,,15
        !           522: .L117:
        !           523:        movl    FileHandles(%esi), %eax
        !           524:        testl   %eax, %eax
        !           525:        jne     .L127
        !           526: .L116:
        !           527:        xorl    %eax, %eax
        !           528:        movl    %eax, FileHandles+4(%esi)
        !           529:        xorl    %eax, %eax
        !           530:        movl    %eax, FileHandles(%esi)
        !           531:        addl    $264, %esi
        !           532:        decl    %ebx
        !           533:        jns     .L117
        !           534:        xorl    %eax, %eax
        !           535:        movl    $255, %ebx
        !           536:        .p2align 4,,15
        !           537: .L122:
        !           538:        xorl    %esi, %esi
        !           539:        xorl    %ecx, %ecx
        !           540:        xorl    %edx, %edx
        !           541:        movl    %esi, InternalDTAs(%eax)
        !           542:        movl    %ecx, InternalDTAs+4(%eax)
        !           543:        movl    %edx, InternalDTAs+12(%eax)
        !           544:        addl    $272, %eax
        !           545:        decl    %ebx
        !           546:        jns     .L122
        !           547:        xorl    %eax, %eax
        !           548:        movl    %eax, pDTA
        !           549:        xorl    %eax, %eax
        !           550:        movl    %eax, DTAIndex
        !           551:        addl    $16, %esp
        !           552:        popl    %ebx
        !           553:        popl    %esi
        !           554:        popl    %ebp
        !           555:        ret
        !           556: .L127:
        !           557:        movl    FileHandles+4(%esi), %eax
        !           558:        movl    %eax, (%esp)
        !           559:        call    fclose
        !           560:        jmp     .L116
        !           561:        .size   GemDOS_Reset, .-GemDOS_Reset
        !           562:        .p2align 4,,15
        !           563: .globl GemDOS_InitDrives
        !           564:        .type   GemDOS_InitDrives, @function
        !           565: GemDOS_InitDrives:
        !           566:        pushl   %ebp
        !           567:        movl    $12078, %eax
        !           568:        movl    %esp, %ebp
        !           569:        subl    $8, %esp
        !           570:        movl    $emudrive, (%esp)
        !           571:        movw    %ax, emudrive
        !           572:        movb    $0, emudrive+2
        !           573:        call    File_CleanFileName
        !           574:        movl    $2, %eax
        !           575:        movl    %eax, emudrive+512
        !           576:        movl    %ebp, %esp
        !           577:        popl    %ebp
        !           578:        ret
        !           579:        .size   GemDOS_InitDrives, .-GemDOS_InitDrives
        !           580:        .p2align 4,,15
        !           581: .globl GemDOS_UnInitDrives
        !           582:        .type   GemDOS_UnInitDrives, @function
        !           583: GemDOS_UnInitDrives:
        !           584:        pushl   %ebp
        !           585:        movl    %esp, %ebp
        !           586:        popl    %ebp
        !           587:        jmp     GemDOS_Reset
        !           588:        .size   GemDOS_UnInitDrives, .-GemDOS_UnInitDrives
        !           589:        .p2align 4,,15
        !           590: .globl GemDOS_FindFreeFileHandle
        !           591:        .type   GemDOS_FindFreeFileHandle, @function
        !           592: GemDOS_FindFreeFileHandle:
        !           593:        pushl   %ebp
        !           594:        xorl    %eax, %eax
        !           595:        movl    %esp, %ebp
        !           596:        movl    $FileHandles, %edx
        !           597:        .p2align 4,,15
        !           598: .L136:
        !           599:        movl    (%edx), %ecx
        !           600:        testl   %ecx, %ecx
        !           601:        je      .L130
        !           602:        incl    %eax
        !           603:        addl    $264, %edx
        !           604:        cmpl    $31, %eax
        !           605:        jle     .L136
        !           606:        movl    $-1, %eax
        !           607: .L130:
        !           608:        popl    %ebp
        !           609:        ret
        !           610:        .size   GemDOS_FindFreeFileHandle, .-GemDOS_FindFreeFileHandle
        !           611:        .p2align 4,,15
        !           612: .globl GemDOS_IsInvalidFileHandle
        !           613:        .type   GemDOS_IsInvalidFileHandle, @function
        !           614: GemDOS_IsInvalidFileHandle:
        !           615:        pushl   %ebp
        !           616:        xorl    %ecx, %ecx
        !           617:        movl    %esp, %ebp
        !           618:        movl    8(%ebp), %edx
        !           619:        cmpl    $31, %edx
        !           620:        ja      .L143
        !           621:        movl    %edx, %eax
        !           622:        sall    $5, %eax
        !           623:        addl    %edx, %eax
        !           624:        movl    FileHandles(,%eax,8), %eax
        !           625:        testl   %eax, %eax
        !           626:        jne     .L141
        !           627: .L143:
        !           628:        movl    $1, %ecx
        !           629: .L141:
        !           630:        popl    %ebp
        !           631:        movl    %ecx, %eax
        !           632:        ret
        !           633:        .size   GemDOS_IsInvalidFileHandle, .-GemDOS_IsInvalidFileHandle
        !           634:        .p2align 4,,15
        !           635: .globl baselen
        !           636:        .type   baselen, @function
        !           637: baselen:
        !           638:        pushl   %ebp
        !           639:        movl    $46, %eax
        !           640:        movl    %esp, %ebp
        !           641:        subl    $24, %esp
        !           642:        movl    %ebx, -4(%ebp)
        !           643:        movl    8(%ebp), %ebx
        !           644:        movl    %eax, 4(%esp)
        !           645:        movl    %ebx, (%esp)
        !           646:        call    strchr
        !           647:        testl   %eax, %eax
        !           648:        je      .L147
        !           649:        subl    %ebx, %eax
        !           650:        movl    -4(%ebp), %ebx
        !           651:        movl    %ebp, %esp
        !           652:        popl    %ebp
        !           653:        ret
        !           654:        .p2align 4,,7
        !           655: .L147:
        !           656:        movl    -4(%ebp), %ebx
        !           657:        movl    %ebp, %esp
        !           658:        popl    %ebp
        !           659:        jmp     strlen
        !           660:        .size   baselen, .-baselen
        !           661:        .section        .rodata.str1.1
        !           662: .LC2:
        !           663:        .string "%s%s"
        !           664: .LC3:
        !           665:        .string "%s%c%s"
        !           666: .LC4:
        !           667:        .string "no path for %s\n"
        !           668:        .text
        !           669:        .p2align 4,,15
        !           670: .globl GemDOS_CreateHardDriveFileName
        !           671:        .type   GemDOS_CreateHardDriveFileName, @function
        !           672: GemDOS_CreateHardDriveFileName:
        !           673:        pushl   %ebp
        !           674:        movl    %esp, %ebp
        !           675:        pushl   %edi
        !           676:        pushl   %esi
        !           677:        pushl   %ebx
        !           678:        subl    $444, %esp
        !           679:        movl    12(%ebp), %edx
        !           680:        movzbl  (%edx), %eax
        !           681:        testb   %al, %al
        !           682:        je      .L148
        !           683:        movl    16(%ebp), %ecx
        !           684:        xorl    %edi, %edi
        !           685:        movl    %edi, -384(%ebp)
        !           686:        movl    %ecx, -380(%ebp)
        !           687:        cmpb    $58, 1(%edx)
        !           688:        je      .L200
        !           689:        cmpb    $92, %al
        !           690:        je      .L201
        !           691:        movl    %edx, 12(%esp)
        !           692:        movl    16(%ebp), %ecx
        !           693:        movl    $emudrive+256, %eax
        !           694:        movl    %eax, 8(%esp)
        !           695:        movl    $.LC2, %eax
        !           696:        movl    %ecx, (%esp)
        !           697:        movl    %eax, 4(%esp)
        !           698:        call    sprintf
        !           699:        movl    $emudrive+256, %ecx
        !           700:        .p2align 4,,15
        !           701: .L154:
        !           702:        movl    (%ecx), %eax
        !           703:        addl    $4, %ecx
        !           704:        leal    -16843009(%eax), %edx
        !           705:        notl    %eax
        !           706:        andl    %eax, %edx
        !           707:        andl    $-2139062144, %edx
        !           708:        je      .L154
        !           709:        testl   $32896, %edx
        !           710:        jne     .L156
        !           711:        shrl    $16, %edx
        !           712:        addl    $2, %ecx
        !           713: .L156:
        !           714:        addb    %dl, %dl
        !           715:        movl    16(%ebp), %eax
        !           716:        sbbl    $3, %ecx
        !           717:        subl    $emudrive+256, %ecx
        !           718:        leal    -1(%ecx,%eax), %ecx
        !           719:        movl    %ecx, -384(%ebp)
        !           720:        .p2align 4,,15
        !           721: .L196:
        !           722:        movl    -380(%ebp), %eax
        !           723:        movl    $92, %esi
        !           724:        movl    %esi, 4(%esp)
        !           725:        incl    %eax
        !           726:        movl    %eax, (%esp)
        !           727:        call    strchr
        !           728:        movl    %eax, -388(%ebp)
        !           729:        testl   %eax, %eax
        !           730:        movl    %eax, -380(%ebp)
        !           731:        je      .L202
        !           732:        movl    -384(%ebp), %eax
        !           733:        testl   %eax, %eax
        !           734:        je      .L169
        !           735:        movl    -384(%ebp), %ecx
        !           736:        xorl    %ebx, %ebx
        !           737:        movb    $47, (%ecx)
        !           738:        incl    %ecx
        !           739:        movl    %ecx, -384(%ebp)
        !           740:        movzbl  (%ecx), %eax
        !           741:        movb    %al, -389(%ebp)
        !           742:        xorl    %eax, %eax
        !           743:        movb    $42, (%ecx)
        !           744:        incl    %ecx
        !           745:        movl    %ecx, -384(%ebp)
        !           746:        movzbl  (%ecx), %edx
        !           747:        movb    %dl, -390(%ebp)
        !           748:        movb    $0, (%ecx)
        !           749:        leal    -72(%ebp), %ecx
        !           750:        movl    %eax, 8(%esp)
        !           751:        movl    $8192, %eax
        !           752:        movl    %eax, 4(%esp)
        !           753:        movl    16(%ebp), %eax
        !           754:        movl    %ecx, 12(%esp)
        !           755:        movl    %eax, (%esp)
        !           756:        call    glob
        !           757:        movzbl  -390(%ebp), %edx
        !           758:        movl    -384(%ebp), %ecx
        !           759:        movb    %dl, (%ecx)
        !           760:        decl    %ecx
        !           761:        movzbl  -389(%ebp), %eax
        !           762:        movl    %ecx, -384(%ebp)
        !           763:        movb    %al, (%ecx)
        !           764:        movl    -388(%ebp), %edx
        !           765:        movb    $0, (%edx)
        !           766:        movl    16(%ebp), %ecx
        !           767:        movl    %ecx, (%esp)
        !           768:        call    strlen
        !           769:        movl    %eax, -404(%ebp)
        !           770:        movl    -384(%ebp), %eax
        !           771:        movl    %eax, (%esp)
        !           772:        call    baselen
        !           773:        movl    %eax, -400(%ebp)
        !           774:        movl    -72(%ebp), %edi
        !           775:        xorl    %eax, %eax
        !           776:        movl    %eax, -396(%ebp)
        !           777:        cmpl    %edi, %ebx
        !           778:        jae     .L191
        !           779:        .p2align 4,,15
        !           780: .L168:
        !           781:        cmpl    $7, -400(%ebp)
        !           782:        jg      .L166
        !           783:        movl    16(%ebp), %edx
        !           784:        movl    -68(%ebp), %esi
        !           785:        movl    %edx, 4(%esp)
        !           786:        movl    (%esi,%ebx,4), %eax
        !           787:        movl    %eax, (%esp)
        !           788:        call    strcasecmp
        !           789: .L197:
        !           790:        testl   %eax, %eax
        !           791:        jne     .L163
        !           792:        movl    -388(%ebp), %eax
        !           793:        movl    $47, %edi
        !           794:        leal    -328(%ebp), %edx
        !           795:        movl    %edi, 12(%esp)
        !           796:        incl    %eax
        !           797:        movl    %eax, 16(%esp)
        !           798:        movl    (%esi,%ebx,4), %eax
        !           799:        movl    $.LC3, %ebx
        !           800:        movl    %ebx, 4(%esp)
        !           801:        movl    %edx, (%esp)
        !           802:        movl    %eax, 8(%esp)
        !           803:        call    sprintf
        !           804:        movl    16(%ebp), %eax
        !           805:        leal    -328(%ebp), %ecx
        !           806:        movl    %ecx, 4(%esp)
        !           807:        movl    %eax, (%esp)
        !           808:        call    strcpy
        !           809:        movl    -72(%ebp), %ebx
        !           810:        movl    $1, %ecx
        !           811:        movl    %ecx, -396(%ebp)
        !           812:        movl    %ebx, %edi
        !           813: .L163:
        !           814:        incl    %ebx
        !           815:        cmpl    %edi, %ebx
        !           816:        jb      .L168
        !           817: .L191:
        !           818:        leal    -72(%ebp), %edx
        !           819:        movl    %edx, (%esp)
        !           820:        call    globfree
        !           821:        movl    -396(%ebp), %edx
        !           822:        testl   %edx, %edx
        !           823:        je      .L203
        !           824: .L169:
        !           825:        movl    -388(%ebp), %edx
        !           826:        movl    %edx, -384(%ebp)
        !           827:        jmp     .L196
        !           828: .L203:
        !           829:        movl    -384(%ebp), %ecx
        !           830:        leal    -72(%ebp), %eax
        !           831:        xorl    %ebx, %ebx
        !           832:        movb    $42, (%ecx)
        !           833:        incl    %ecx
        !           834:        movl    %ecx, -384(%ebp)
        !           835:        movb    $0, (%ecx)
        !           836:        movl    16(%ebp), %edx
        !           837:        movl    %eax, 12(%esp)
        !           838:        xorl    %eax, %eax
        !           839:        movl    %eax, 8(%esp)
        !           840:        xorl    %eax, %eax
        !           841:        movl    %edx, (%esp)
        !           842:        movl    %eax, 4(%esp)
        !           843:        call    glob
        !           844:        movzbl  -390(%ebp), %ecx
        !           845:        movl    -384(%ebp), %eax
        !           846:        movb    %cl, (%eax)
        !           847:        movzbl  -389(%ebp), %edx
        !           848:        movb    %dl, -1(%eax)
        !           849:        movl    -72(%ebp), %edi
        !           850:        cmpl    %edi, -396(%ebp)
        !           851:        jae     .L193
        !           852:        .p2align 4,,15
        !           853: .L175:
        !           854:        movl    -404(%ebp), %ecx
        !           855:        movl    16(%ebp), %eax
        !           856:        movl    -68(%ebp), %esi
        !           857:        movl    %ecx, 8(%esp)
        !           858:        movl    %eax, 4(%esp)
        !           859:        movl    (%esi,%ebx,4), %eax
        !           860:        movl    %eax, (%esp)
        !           861:        call    strncasecmp
        !           862:        testl   %eax, %eax
        !           863:        je      .L204
        !           864: .L172:
        !           865:        incl    %ebx
        !           866:        cmpl    %edi, %ebx
        !           867:        jb      .L175
        !           868: .L193:
        !           869:        leal    -72(%ebp), %edx
        !           870:        movl    %edx, (%esp)
        !           871:        call    globfree
        !           872:        movl    -396(%ebp), %eax
        !           873:        testl   %eax, %eax
        !           874:        jne     .L169
        !           875:        movl    -388(%ebp), %ecx
        !           876:        movl    $.LC4, %edi
        !           877:        movb    $47, (%ecx)
        !           878:        movl    16(%ebp), %eax
        !           879:        movl    %edi, 4(%esp)
        !           880:        movl    %eax, 8(%esp)
        !           881:        movl    stderr, %eax
        !           882:        movl    %eax, (%esp)
        !           883:        call    fprintf
        !           884:        jmp     .L169
        !           885: .L204:
        !           886:        movl    -388(%ebp), %eax
        !           887:        leal    -328(%ebp), %edx
        !           888:        incl    %eax
        !           889:        movl    %eax, 16(%esp)
        !           890:        movl    $47, %eax
        !           891:        movl    %eax, 12(%esp)
        !           892:        movl    (%esi,%ebx,4), %eax
        !           893:        movl    %edx, (%esp)
        !           894:        movl    %eax, 8(%esp)
        !           895:        movl    $.LC3, %eax
        !           896:        movl    %eax, 4(%esp)
        !           897:        call    sprintf
        !           898:        movl    16(%ebp), %eax
        !           899:        leal    -328(%ebp), %ecx
        !           900:        movl    %ecx, 4(%esp)
        !           901:        movl    %eax, (%esp)
        !           902:        call    strcpy
        !           903:        movl    -72(%ebp), %ebx
        !           904:        movl    $1, %eax
        !           905:        movl    %eax, -396(%ebp)
        !           906:        movl    %ebx, %edi
        !           907:        jmp     .L172
        !           908:        .p2align 4,,7
        !           909: .L166:
        !           910:        movl    16(%ebp), %eax
        !           911:        movl    -404(%ebp), %ecx
        !           912:        movl    -68(%ebp), %esi
        !           913:        movl    %eax, 4(%esp)
        !           914:        movl    %ecx, 8(%esp)
        !           915:        movl    (%esi,%ebx,4), %eax
        !           916:        movl    %eax, (%esp)
        !           917:        call    strncasecmp
        !           918:        jmp     .L197
        !           919: .L202:
        !           920:        movl    -384(%ebp), %ebx
        !           921:        testl   %ebx, %ebx
        !           922:        je      .L205
        !           923: .L189:
        !           924:        movl    -384(%ebp), %eax
        !           925:        movb    $47, (%eax)
        !           926:        incl    %eax
        !           927:        movl    %eax, -384(%ebp)
        !           928:        movzbl  (%eax), %edx
        !           929:        testb   %dl, %dl
        !           930:        movb    %dl, -405(%ebp)
        !           931:        je      .L148
        !           932:        movl    %eax, (%esp)
        !           933:        movl    $63, %edx
        !           934:        movl    %edx, 4(%esp)
        !           935:        call    strchr
        !           936:        testl   %eax, %eax
        !           937:        je      .L206
        !           938: .L148:
        !           939:        addl    $444, %esp
        !           940:        popl    %ebx
        !           941:        popl    %esi
        !           942:        popl    %edi
        !           943:        popl    %ebp
        !           944:        ret
        !           945: .L206:
        !           946:        movl    -384(%ebp), %ecx
        !           947:        movl    $42, %eax
        !           948:        movl    %eax, 4(%esp)
        !           949:        movl    %ecx, (%esp)
        !           950:        call    strchr
        !           951:        testl   %eax, %eax
        !           952:        jne     .L148
        !           953:        movl    -384(%ebp), %eax
        !           954:        leal    -376(%ebp), %edx
        !           955:        xorl    %esi, %esi
        !           956:        movb    $42, (%eax)
        !           957:        incl    %eax
        !           958:        movl    %eax, -384(%ebp)
        !           959:        movzbl  (%eax), %ebx
        !           960:        movb    $0, (%eax)
        !           961:        movl    16(%ebp), %ecx
        !           962:        xorl    %eax, %eax
        !           963:        movl    %eax, 8(%esp)
        !           964:        xorl    %eax, %eax
        !           965:        movl    %edx, 12(%esp)
        !           966:        movl    %ecx, (%esp)
        !           967:        movl    %eax, 4(%esp)
        !           968:        call    glob
        !           969:        movl    -384(%ebp), %eax
        !           970:        movb    %bl, (%eax)
        !           971:        decl    %eax
        !           972:        movzbl  -405(%ebp), %edx
        !           973:        movl    %eax, -384(%ebp)
        !           974:        movb    %dl, (%eax)
        !           975:        movl    16(%ebp), %ecx
        !           976:        movl    %ecx, (%esp)
        !           977:        call    strlen
        !           978:        movl    %eax, -416(%ebp)
        !           979:        movl    -384(%ebp), %eax
        !           980:        movl    %eax, (%esp)
        !           981:        call    baselen
        !           982:        movl    %eax, -412(%ebp)
        !           983:        movl    -376(%ebp), %edi
        !           984:        cmpl    %edi, %esi
        !           985:        jae     .L195
        !           986: .L188:
        !           987:        cmpl    $7, -412(%ebp)
        !           988:        jg      .L186
        !           989:        movl    16(%ebp), %edx
        !           990:        movl    -372(%ebp), %ebx
        !           991:        movl    %edx, 4(%esp)
        !           992:        movl    (%ebx,%esi,4), %eax
        !           993:        movl    %eax, (%esp)
        !           994:        call    strcasecmp
        !           995: .L199:
        !           996:        testl   %eax, %eax
        !           997:        jne     .L183
        !           998:        movl    (%ebx,%esi,4), %eax
        !           999:        movl    16(%ebp), %edx
        !          1000:        movl    %eax, 4(%esp)
        !          1001:        movl    %edx, (%esp)
        !          1002:        call    strcpy
        !          1003:        movl    -376(%ebp), %esi
        !          1004:        movl    %esi, %edi
        !          1005: .L183:
        !          1006:        incl    %esi
        !          1007:        cmpl    %edi, %esi
        !          1008:        jb      .L188
        !          1009: .L195:
        !          1010:        leal    -376(%ebp), %ecx
        !          1011:        movl    %ecx, (%esp)
        !          1012:        call    globfree
        !          1013:        jmp     .L148
        !          1014: .L186:
        !          1015:        movl    16(%ebp), %eax
        !          1016:        movl    -416(%ebp), %ecx
        !          1017:        movl    -372(%ebp), %ebx
        !          1018:        movl    %eax, 4(%esp)
        !          1019:        movl    %ecx, 8(%esp)
        !          1020:        movl    (%ebx,%esi,4), %eax
        !          1021:        movl    %eax, (%esp)
        !          1022:        call    strncasecmp
        !          1023:        jmp     .L199
        !          1024: .L205:
        !          1025:        movl    $47, %ecx
        !          1026:        movl    %ecx, 4(%esp)
        !          1027:        movl    16(%ebp), %ecx
        !          1028:        movl    %ecx, (%esp)
        !          1029:        call    strrchr
        !          1030:        movl    %eax, -384(%ebp)
        !          1031:        testl   %eax, %eax
        !          1032:        jne     .L189
        !          1033:        jmp     .L148
        !          1034: .L201:
        !          1035:        movl    %edx, 12(%esp)
        !          1036:        movl    $emudrive, %ecx
        !          1037:        movl    $.LC2, %edx
        !          1038:        movl    %edx, 4(%esp)
        !          1039:        movl    16(%ebp), %edx
        !          1040:        movl    %ecx, 8(%esp)
        !          1041:        movl    %edx, (%esp)
        !          1042: .L198:
        !          1043:        call    sprintf
        !          1044:        jmp     .L196
        !          1045: .L200:
        !          1046:        movl    %edx, (%esp)
        !          1047:        movl    $emudrive, %esi
        !          1048:        movl    $.LC2, %ebx
        !          1049:        call    File_RemoveFileNameDrive
        !          1050:        movl    %eax, 12(%esp)
        !          1051:        movl    16(%ebp), %eax
        !          1052:        movl    %esi, 8(%esp)
        !          1053:        movl    %ebx, 4(%esp)
        !          1054:        movl    %eax, (%esp)
        !          1055:        jmp     .L198
        !          1056:        .size   GemDOS_CreateHardDriveFileName, .-GemDOS_CreateHardDriveFileName
        !          1057:        .p2align 4,,15
        !          1058: .globl GemDOS_ConvertAttribute
        !          1059:        .type   GemDOS_ConvertAttribute, @function
        !          1060: GemDOS_ConvertAttribute:
        !          1061:        pushl   %ebp
        !          1062:        xorl    %edx, %edx
        !          1063:        movl    %esp, %ebp
        !          1064:        movl    8(%ebp), %eax
        !          1065:        andl    $61440, %eax
        !          1066:        cmpl    $16384, %eax
        !          1067:        je      .L209
        !          1068: .L208:
        !          1069:        popl    %ebp
        !          1070:        movzbl  %dl, %eax
        !          1071:        ret
        !          1072:        .p2align 4,,7
        !          1073: .L209:
        !          1074:        movb    $16, %dl
        !          1075:        jmp     .L208
        !          1076:        .size   GemDOS_ConvertAttribute, .-GemDOS_ConvertAttribute
        !          1077:        .p2align 4,,15
        !          1078: .globl GemDOS_SetDTA
        !          1079:        .type   GemDOS_SetDTA, @function
        !          1080: GemDOS_SetDTA:
        !          1081:        pushl   %ebp
        !          1082:        movl    %esp, %ebp
        !          1083:        subl    $8, %esp
        !          1084:        movl    $15, (%esp)
        !          1085:        call    GetReg
        !          1086:        movl    %eax, (%esp)
        !          1087:        call    MemReadLong
        !          1088:        movl    STRam, %edx
        !          1089:        andl    $16777215, %eax
        !          1090:        addl    %edx, %eax
        !          1091:        movl    %eax, pDTA
        !          1092:        movl    %ebp, %esp
        !          1093:        popl    %ebp
        !          1094:        ret
        !          1095:        .size   GemDOS_SetDTA, .-GemDOS_SetDTA
        !          1096:        .section        .rodata.str1.1
        !          1097: .LC5:
        !          1098:        .string "w+"
        !          1099: .LC6:
        !          1100:        .string "wb"
        !          1101:        .text
        !          1102:        .p2align 4,,15
        !          1103: .globl GemDOS_Create
        !          1104:        .type   GemDOS_Create, @function
        !          1105: GemDOS_Create:
        !          1106:        pushl   %ebp
        !          1107:        movl    $.LC5, %eax
        !          1108:        movl    %esp, %ebp
        !          1109:        pushl   %edi
        !          1110:        pushl   %esi
        !          1111:        pushl   %ebx
        !          1112:        subl    $300, %esp
        !          1113:        movl    %eax, -288(%ebp)
        !          1114:        movl    $.LC6, %eax
        !          1115:        movl    %eax, -284(%ebp)
        !          1116:        movl    $15, (%esp)
        !          1117:        call    GetReg
        !          1118:        movl    %eax, %esi
        !          1119:        subl    $2, %esi
        !          1120:        leal    2(%esi), %eax
        !          1121:        movl    %eax, (%esp)
        !          1122:        call    MemReadLong
        !          1123:        movl    %eax, %ebx
        !          1124:        movl    STRam, %eax
        !          1125:        andl    $16777215, %ebx
        !          1126:        addl    %eax, %ebx
        !          1127:        leal    6(%esi), %eax
        !          1128:        movl    %eax, (%esp)
        !          1129:        call    MemReadWord
        !          1130:        movl    %ebx, 4(%esp)
        !          1131:        movswl  %ax,%esi
        !          1132:        leal    -280(%ebp), %eax
        !          1133:        movl    %eax, 8(%esp)
        !          1134:        movl    $2, (%esp)
        !          1135:        call    GemDOS_CreateHardDriveFileName
        !          1136:        call    GemDOS_FindFreeFileHandle
        !          1137:        cmpl    $-1, %eax
        !          1138:        movl    %eax, %ebx
        !          1139:        je      .L217
        !          1140:        sall    $5, %eax
        !          1141:        andl    $1, %esi
        !          1142:        addl    %ebx, %eax
        !          1143:        leal    0(,%eax,8), %edi
        !          1144:        leal    -288(%ebp), %eax
        !          1145:        movl    (%eax,%esi,4), %eax
        !          1146:        movl    %eax, 4(%esp)
        !          1147:        leal    -280(%ebp), %eax
        !          1148:        movl    %eax, (%esp)
        !          1149:        call    fopen
        !          1150:        movl    %eax, FileHandles+4(%edi)
        !          1151:        testl   %eax, %eax
        !          1152:        je      .L214
        !          1153:        movl    $1, %esi
        !          1154:        leal    64(%ebx), %eax
        !          1155:        movl    %esi, FileHandles(%edi)
        !          1156:        movl    %eax, 4(%esp)
        !          1157: .L216:
        !          1158:        movl    $0, (%esp)
        !          1159:        call    SetReg
        !          1160:        addl    $300, %esp
        !          1161:        popl    %ebx
        !          1162:        popl    %esi
        !          1163:        popl    %edi
        !          1164:        popl    %ebp
        !          1165:        ret
        !          1166:        .p2align 4,,7
        !          1167: .L214:
        !          1168:        movl    $-33, %ecx
        !          1169:        movl    %ecx, 4(%esp)
        !          1170:        jmp     .L216
        !          1171:        .p2align 4,,7
        !          1172: .L217:
        !          1173:        movl    $-35, %edi
        !          1174:        movl    %edi, 4(%esp)
        !          1175:        jmp     .L216
        !          1176:        .size   GemDOS_Create, .-GemDOS_Create
        !          1177:        .section        .rodata.str1.1
        !          1178: .LC7:
        !          1179:        .string "rb"
        !          1180: .LC8:
        !          1181:        .string "r+"
        !          1182: .LC9:
        !          1183:        .string "%s"
        !          1184:        .text
        !          1185:        .p2align 4,,15
        !          1186: .globl GemDOS_Open
        !          1187:        .type   GemDOS_Open, @function
        !          1188: GemDOS_Open:
        !          1189:        pushl   %ebp
        !          1190:        movl    $.LC7, %eax
        !          1191:        movl    %esp, %ebp
        !          1192:        pushl   %edi
        !          1193:        pushl   %esi
        !          1194:        pushl   %ebx
        !          1195:        subl    $300, %esp
        !          1196:        movl    %eax, -296(%ebp)
        !          1197:        movl    $.LC6, %eax
        !          1198:        movl    %eax, -292(%ebp)
        !          1199:        movl    $.LC8, %eax
        !          1200:        movl    %eax, -288(%ebp)
        !          1201:        movl    $15, (%esp)
        !          1202:        call    GetReg
        !          1203:        movl    %eax, %esi
        !          1204:        subl    $2, %esi
        !          1205:        leal    2(%esi), %eax
        !          1206:        movl    %eax, (%esp)
        !          1207:        call    MemReadLong
        !          1208:        movl    STRam, %edi
        !          1209:        movl    %eax, %ebx
        !          1210:        leal    6(%esi), %eax
        !          1211:        movl    %eax, (%esp)
        !          1212:        andl    $16777215, %ebx
        !          1213:        addl    %edi, %ebx
        !          1214:        call    MemReadWord
        !          1215:        movl    %ebx, 4(%esp)
        !          1216:        movswl  %ax,%edi
        !          1217:        leal    -280(%ebp), %eax
        !          1218:        movl    %eax, 8(%esp)
        !          1219:        movl    $2, (%esp)
        !          1220:        call    GemDOS_CreateHardDriveFileName
        !          1221:        call    GemDOS_FindFreeFileHandle
        !          1222:        cmpl    $-1, %eax
        !          1223:        movl    %eax, %esi
        !          1224:        je      .L223
        !          1225:        sall    $5, %eax
        !          1226:        andl    $3, %edi
        !          1227:        addl    %esi, %eax
        !          1228:        leal    0(,%eax,8), %ebx
        !          1229:        movl    -296(%ebp,%edi,4), %eax
        !          1230:        movl    %eax, 4(%esp)
        !          1231:        leal    -280(%ebp), %eax
        !          1232:        movl    %eax, (%esp)
        !          1233:        call    fopen
        !          1234:        movl    %eax, FileHandles+4(%ebx)
        !          1235:        movl    $.LC9, %edx
        !          1236:        leal    -280(%ebp), %eax
        !          1237:        movl    %eax, 8(%esp)
        !          1238:        leal    FileHandles+8(%ebx), %eax
        !          1239:        movl    %edx, 4(%esp)
        !          1240:        movl    %eax, (%esp)
        !          1241:        call    sprintf
        !          1242:        movl    FileHandles+4(%ebx), %eax
        !          1243:        testl   %eax, %eax
        !          1244:        je      .L220
        !          1245:        movl    $1, %eax
        !          1246:        movl    %eax, FileHandles(%ebx)
        !          1247:        leal    64(%esi), %eax
        !          1248: .L222:
        !          1249:        movl    %eax, 4(%esp)
        !          1250: .L221:
        !          1251:        movl    $0, (%esp)
        !          1252:        call    SetReg
        !          1253:        addl    $300, %esp
        !          1254:        popl    %ebx
        !          1255:        popl    %esi
        !          1256:        popl    %edi
        !          1257:        popl    %ebp
        !          1258:        ret
        !          1259:        .p2align 4,,7
        !          1260: .L220:
        !          1261:        movl    $-33, %eax
        !          1262:        jmp     .L222
        !          1263:        .p2align 4,,7
        !          1264: .L223:
        !          1265:        movl    $-35, %ecx
        !          1266:        movl    %ecx, 4(%esp)
        !          1267:        jmp     .L221
        !          1268:        .size   GemDOS_Open, .-GemDOS_Open
        !          1269:        .p2align 4,,15
        !          1270: .globl GemDOS_Close
        !          1271:        .type   GemDOS_Close, @function
        !          1272: GemDOS_Close:
        !          1273:        pushl   %ebp
        !          1274:        movl    %esp, %ebp
        !          1275:        subl    $24, %esp
        !          1276:        movl    $15, (%esp)
        !          1277:        movl    %esi, -4(%ebp)
        !          1278:        movl    %ebx, -8(%ebp)
        !          1279:        call    GetReg
        !          1280:        movl    %eax, (%esp)
        !          1281:        call    MemReadWord
        !          1282:        cwtl
        !          1283:        leal    -64(%eax), %esi
        !          1284:        movl    %esi, (%esp)
        !          1285:        call    GemDOS_IsInvalidFileHandle
        !          1286:        testl   %eax, %eax
        !          1287:        je      .L227
        !          1288: .L224:
        !          1289:        movl    -8(%ebp), %ebx
        !          1290:        movl    -4(%ebp), %esi
        !          1291:        movl    %ebp, %esp
        !          1292:        popl    %ebp
        !          1293:        ret
        !          1294:        .p2align 4,,7
        !          1295: .L227:
        !          1296:        movl    %esi, %ebx
        !          1297:        sall    $5, %ebx
        !          1298:        addl    %esi, %ebx
        !          1299:        sall    $3, %ebx
        !          1300:        movl    FileHandles+4(%ebx), %eax
        !          1301:        movl    %eax, (%esp)
        !          1302:        call    fclose
        !          1303:        movl    $0, (%esp)
        !          1304:        xorl    %eax, %eax
        !          1305:        movl    %eax, FileHandles(%ebx)
        !          1306:        xorl    %eax, %eax
        !          1307:        movl    %eax, 4(%esp)
        !          1308:        call    SetReg
        !          1309:        jmp     .L224
        !          1310:        .size   GemDOS_Close, .-GemDOS_Close
        !          1311:        .p2align 4,,15
        !          1312: .globl GemDOS_Read
        !          1313:        .type   GemDOS_Read, @function
        !          1314: GemDOS_Read:
        !          1315:        pushl   %ebp
        !          1316:        movl    %esp, %ebp
        !          1317:        pushl   %edi
        !          1318:        pushl   %esi
        !          1319:        pushl   %ebx
        !          1320:        subl    $28, %esp
        !          1321:        movl    $15, (%esp)
        !          1322:        call    GetReg
        !          1323:        movl    %eax, %ebx
        !          1324:        subl    $2, %ebx
        !          1325:        leal    2(%ebx), %eax
        !          1326:        movl    %eax, (%esp)
        !          1327:        call    MemReadWord
        !          1328:        cwtl
        !          1329:        leal    -64(%eax), %esi
        !          1330:        leal    4(%ebx), %eax
        !          1331:        movl    %eax, (%esp)
        !          1332:        call    MemReadLong
        !          1333:        movl    %eax, -16(%ebp)
        !          1334:        leal    8(%ebx), %eax
        !          1335:        movl    %eax, (%esp)
        !          1336:        call    MemReadLong
        !          1337:        movl    %esi, (%esp)
        !          1338:        movl    %eax, %edi
        !          1339:        movl    STRam, %eax
        !          1340:        andl    $16777215, %edi
        !          1341:        addl    %eax, %edi
        !          1342:        call    GemDOS_IsInvalidFileHandle
        !          1343:        testl   %eax, %eax
        !          1344:        je      .L235
        !          1345: .L228:
        !          1346:        addl    $28, %esp
        !          1347:        popl    %ebx
        !          1348:        popl    %esi
        !          1349:        popl    %edi
        !          1350:        popl    %ebp
        !          1351:        ret
        !          1352:        .p2align 4,,7
        !          1353: .L235:
        !          1354:        movl    %esi, %eax
        !          1355:        sall    $5, %eax
        !          1356:        addl    %esi, %eax
        !          1357:        sall    $3, %eax
        !          1358:        xorl    %esi, %esi
        !          1359:        movl    %eax, -20(%ebp)
        !          1360:        movl    FileHandles+4(%eax), %eax
        !          1361:        movl    %eax, (%esp)
        !          1362:        call    ftell
        !          1363:        movl    %esi, 4(%esp)
        !          1364:        movl    -20(%ebp), %edx
        !          1365:        movl    %eax, %ebx
        !          1366:        movl    $2, %eax
        !          1367:        movl    %eax, 8(%esp)
        !          1368:        movl    FileHandles+4(%edx), %eax
        !          1369:        movl    %eax, (%esp)
        !          1370:        call    fseek
        !          1371:        movl    -20(%ebp), %edx
        !          1372:        movl    FileHandles+4(%edx), %eax
        !          1373:        movl    %eax, (%esp)
        !          1374:        call    ftell
        !          1375:        movl    %ebx, 4(%esp)
        !          1376:        movl    -20(%ebp), %edx
        !          1377:        movl    %eax, %esi
        !          1378:        xorl    %ecx, %ecx
        !          1379:        movl    %ecx, 8(%esp)
        !          1380:        movl    FileHandles+4(%edx), %eax
        !          1381:        movl    %eax, (%esp)
        !          1382:        call    fseek
        !          1383:        cmpl    %ebx, %esi
        !          1384:        je      .L236
        !          1385:        cmpl    %esi, -16(%ebp)
        !          1386:        jbe     .L233
        !          1387:        movl    %esi, -16(%ebp)
        !          1388: .L233:
        !          1389:        movl    %edi, (%esp)
        !          1390:        movl    -20(%ebp), %edx
        !          1391:        movl    FileHandles+4(%edx), %eax
        !          1392:        movl    %eax, 12(%esp)
        !          1393:        movl    -16(%ebp), %eax
        !          1394:        movl    %eax, 8(%esp)
        !          1395:        movl    $1, %eax
        !          1396:        movl    %eax, 4(%esp)
        !          1397:        call    fread
        !          1398:        movl    %eax, 4(%esp)
        !          1399: .L234:
        !          1400:        movl    $0, (%esp)
        !          1401:        call    SetReg
        !          1402:        jmp     .L228
        !          1403: .L236:
        !          1404:        xorl    %edx, %edx
        !          1405:        movl    %edx, 4(%esp)
        !          1406:        jmp     .L234
        !          1407:        .size   GemDOS_Read, .-GemDOS_Read
        !          1408:        .p2align 4,,15
        !          1409: .globl GemDOS_Write
        !          1410:        .type   GemDOS_Write, @function
        !          1411: GemDOS_Write:
        !          1412:        pushl   %ebp
        !          1413:        movl    %esp, %ebp
        !          1414:        subl    $40, %esp
        !          1415:        movl    $15, (%esp)
        !          1416:        movl    %ebx, -12(%ebp)
        !          1417:        movl    %esi, -8(%ebp)
        !          1418:        movl    %edi, -4(%ebp)
        !          1419:        call    GetReg
        !          1420:        movl    %eax, %ebx
        !          1421:        subl    $2, %ebx
        !          1422:        leal    2(%ebx), %eax
        !          1423:        movl    %eax, (%esp)
        !          1424:        call    MemReadWord
        !          1425:        cwtl
        !          1426:        leal    -64(%eax), %esi
        !          1427:        leal    4(%ebx), %eax
        !          1428:        movl    %eax, (%esp)
        !          1429:        call    MemReadLong
        !          1430:        movl    %eax, %edi
        !          1431:        leal    8(%ebx), %eax
        !          1432:        movl    %eax, (%esp)
        !          1433:        call    MemReadLong
        !          1434:        movl    %esi, (%esp)
        !          1435:        movl    %eax, %ebx
        !          1436:        movl    STRam, %eax
        !          1437:        andl    $16777215, %ebx
        !          1438:        addl    %eax, %ebx
        !          1439:        call    GemDOS_IsInvalidFileHandle
        !          1440:        testl   %eax, %eax
        !          1441:        je      .L242
        !          1442: .L237:
        !          1443:        movl    -12(%ebp), %ebx
        !          1444:        movl    -8(%ebp), %esi
        !          1445:        movl    -4(%ebp), %edi
        !          1446:        movl    %ebp, %esp
        !          1447:        popl    %ebp
        !          1448:        ret
        !          1449:        .p2align 4,,7
        !          1450: .L242:
        !          1451:        movl    %edi, 8(%esp)
        !          1452:        movl    %esi, %eax
        !          1453:        sall    $5, %eax
        !          1454:        movl    %ebx, (%esp)
        !          1455:        addl    %esi, %eax
        !          1456:        movl    FileHandles+4(,%eax,8), %eax
        !          1457:        movl    %eax, 12(%esp)
        !          1458:        movl    $1, %eax
        !          1459:        movl    %eax, 4(%esp)
        !          1460:        call    fwrite
        !          1461:        movl    %eax, 4(%esp)
        !          1462:        movl    $0, (%esp)
        !          1463:        call    SetReg
        !          1464:        jmp     .L237
        !          1465:        .size   GemDOS_Write, .-GemDOS_Write
        !          1466:        .p2align 4,,15
        !          1467: .globl GemDOS_UnLink
        !          1468:        .type   GemDOS_UnLink, @function
        !          1469: GemDOS_UnLink:
        !          1470:        pushl   %ebp
        !          1471:        movl    %esp, %ebp
        !          1472:        subl    $280, %esp
        !          1473:        movl    $15, (%esp)
        !          1474:        movl    %ebx, -4(%ebp)
        !          1475:        leal    -264(%ebp), %ebx
        !          1476:        call    GetReg
        !          1477:        movl    %eax, (%esp)
        !          1478:        call    MemReadLong
        !          1479:        movl    %ebx, 8(%esp)
        !          1480:        movl    STRam, %edx
        !          1481:        andl    $16777215, %eax
        !          1482:        movl    $2, (%esp)
        !          1483:        addl    %edx, %eax
        !          1484:        movl    %eax, 4(%esp)
        !          1485:        call    GemDOS_CreateHardDriveFileName
        !          1486:        movl    %ebx, (%esp)
        !          1487:        call    unlink
        !          1488:        testl   %eax, %eax
        !          1489:        jne     .L244
        !          1490:        xorl    %eax, %eax
        !          1491: .L247:
        !          1492:        movl    %eax, 4(%esp)
        !          1493:        movl    $0, (%esp)
        !          1494:        call    SetReg
        !          1495:        movl    -4(%ebp), %ebx
        !          1496:        movl    %ebp, %esp
        !          1497:        popl    %ebp
        !          1498:        ret
        !          1499:        .p2align 4,,7
        !          1500: .L244:
        !          1501:        movl    $-33, %eax
        !          1502:        jmp     .L247
        !          1503:        .size   GemDOS_UnLink, .-GemDOS_UnLink
        !          1504:        .section        .rodata.str1.1
        !          1505: .LC10:
        !          1506:        .string "\tError setting DTA.\n"
        !          1507:        .text
        !          1508:        .p2align 4,,15
        !          1509: .globl GemDOS_SNext
        !          1510:        .type   GemDOS_SNext, @function
        !          1511: GemDOS_SNext:
        !          1512:        pushl   %ebp
        !          1513:        movl    %esp, %ebp
        !          1514:        subl    $24, %esp
        !          1515:        movl    $15, (%esp)
        !          1516:        call    GetReg
        !          1517:        movl    pDTA, %edx
        !          1518:        movl    2(%edx), %eax
        !          1519: #APP
        !          1520:        bswap   %eax
        !          1521: 
        !          1522: #NO_APP
        !          1523:        cmpl    $311964790, %eax
        !          1524:        je      .L255
        !          1525: .L248:
        !          1526:        movl    %ebp, %esp
        !          1527:        popl    %ebp
        !          1528:        ret
        !          1529:        .p2align 4,,7
        !          1530: .L255:
        !          1531:        movzwl  (%edx), %eax
        !          1532: #APP
        !          1533:        xchgb %al,%ah
        !          1534: #NO_APP
        !          1535:        movzbl  %al, %eax
        !          1536:        movl    %eax, %edx
        !          1537:        sall    $4, %edx
        !          1538:        addl    %eax, %edx
        !          1539:        sall    $4, %edx
        !          1540:        movl    InternalDTAs+8(%edx), %ecx
        !          1541:        cmpl    InternalDTAs+4(%edx), %ecx
        !          1542:        jl      .L252
        !          1543:        movl    $-49, %eax
        !          1544:        movl    %eax, 4(%esp)
        !          1545: .L254:
        !          1546:        movl    $0, (%esp)
        !          1547:        call    SetReg
        !          1548:        jmp     .L248
        !          1549:        .p2align 4,,7
        !          1550: .L252:
        !          1551:        movl    InternalDTAs+12(%edx), %eax
        !          1552:        movl    (%eax,%ecx,4), %eax
        !          1553:        movl    %eax, 4(%esp)
        !          1554:        leal    1(%ecx), %eax
        !          1555:        movl    %eax, InternalDTAs+8(%edx)
        !          1556:        leal    InternalDTAs+16(%edx), %eax
        !          1557:        movl    %eax, (%esp)
        !          1558:        call    PopulateDTA
        !          1559:        testl   %eax, %eax
        !          1560:        jne     .L253
        !          1561:        movl    $.LC10, (%esp)
        !          1562:        movl    stderr, %eax
        !          1563:        movl    %eax, 12(%esp)
        !          1564:        movl    $20, %eax
        !          1565:        movl    %eax, 8(%esp)
        !          1566:        movl    $1, %eax
        !          1567:        movl    %eax, 4(%esp)
        !          1568:        call    fwrite
        !          1569:        jmp     .L248
        !          1570: .L253:
        !          1571:        xorl    %ecx, %ecx
        !          1572:        movl    %ecx, 4(%esp)
        !          1573:        jmp     .L254
        !          1574:        .size   GemDOS_SNext, .-GemDOS_SNext
        !          1575:        .p2align 4,,15
        !          1576: .globl GemDOS_SFirst
        !          1577:        .type   GemDOS_SFirst, @function
        !          1578: GemDOS_SFirst:
        !          1579:        pushl   %ebp
        !          1580:        movl    %esp, %ebp
        !          1581:        pushl   %edi
        !          1582:        leal    -280(%ebp), %edi
        !          1583:        pushl   %esi
        !          1584:        pushl   %ebx
        !          1585:        subl    $556, %esp
        !          1586:        movl    $15, (%esp)
        !          1587:        call    GetReg
        !          1588:        movl    %eax, %esi
        !          1589:        subl    $2, %esi
        !          1590:        leal    2(%esi), %eax
        !          1591:        movl    %eax, (%esp)
        !          1592:        call    MemReadLong
        !          1593:        movl    STRam, %ecx
        !          1594:        movl    %eax, %ebx
        !          1595:        andl    $16777215, %ebx
        !          1596:        leal    6(%esi), %eax
        !          1597:        addl    %ecx, %ebx
        !          1598:        movl    %eax, (%esp)
        !          1599:        call    MemReadWord
        !          1600:        movl    %edi, 8(%esp)
        !          1601:        movzwl  %ax, %esi
        !          1602:        movl    %ebx, 4(%esp)
        !          1603:        movl    $2, (%esp)
        !          1604:        call    GemDOS_CreateHardDriveFileName
        !          1605:        movzwl  DTAIndex, %eax
        !          1606: #APP
        !          1607:        xchgb %al,%ah
        !          1608: #NO_APP
        !          1609:        movl    pDTA, %edx
        !          1610:        movw    %ax, (%edx)
        !          1611:        movl    $311964790, %eax
        !          1612: #APP
        !          1613:        bswap   %eax
        !          1614: 
        !          1615: #NO_APP
        !          1616:        movl    %eax, 2(%edx)
        !          1617:        movl    DTAIndex, %ecx
        !          1618:        movl    %ecx, %eax
        !          1619:        sall    $4, %eax
        !          1620:        addl    %ecx, %eax
        !          1621:        sall    $4, %eax
        !          1622:        cmpl    $1, InternalDTAs(%eax)
        !          1623:        je      .L286
        !          1624: .L259:
        !          1625:        movl    %ecx, %eax
        !          1626:        movl    $1, %edx
        !          1627:        sall    $4, %eax
        !          1628:        addl    %ecx, %eax
        !          1629:        sall    $4, %eax
        !          1630:        andl    $8, %esi
        !          1631:        movl    %edx, InternalDTAs(%eax)
        !          1632:        je      .L260
        !          1633:        movl    pDTA, %eax
        !          1634:        movl    $1280658757, 30(%eax)
        !          1635:        movl    $1145394241, 34(%eax)
        !          1636:        movl    $825241646, 38(%eax)
        !          1637:        movb    $0, 42(%eax)
        !          1638:        xorl    %eax, %eax
        !          1639: .L285:
        !          1640:        movl    %eax, 4(%esp)
        !          1641:        movl    $0, (%esp)
        !          1642:        call    SetReg
        !          1643: .L256:
        !          1644:        addl    $556, %esp
        !          1645:        popl    %ebx
        !          1646:        popl    %esi
        !          1647:        popl    %edi
        !          1648:        popl    %ebp
        !          1649:        ret
        !          1650:        .p2align 4,,7
        !          1651: .L260:
        !          1652:        movl    %edi, (%esp)
        !          1653:        addl    $InternalDTAs+16, %eax
        !          1654:        movl    %eax, 4(%esp)
        !          1655:        call    fsfirst_dirname
        !          1656:        movl    DTAIndex, %edx
        !          1657:        movl    %edx, %eax
        !          1658:        sall    $4, %eax
        !          1659:        addl    %edx, %eax
        !          1660:        sall    $4, %eax
        !          1661:        addl    $InternalDTAs+16, %eax
        !          1662:        movl    %eax, (%esp)
        !          1663:        call    opendir
        !          1664:        testl   %eax, %eax
        !          1665:        je      .L287
        !          1666:        movl    %eax, (%esp)
        !          1667:        xorl    %esi, %esi
        !          1668:        call    closedir
        !          1669:        movl    %esi, 8(%esp)
        !          1670:        movl    DTAIndex, %eax
        !          1671:        movl    %eax, %ebx
        !          1672:        sall    $4, %ebx
        !          1673:        addl    %eax, %ebx
        !          1674:        movl    $alphasort, %eax
        !          1675:        movl    %eax, 12(%esp)
        !          1676:        sall    $4, %ebx
        !          1677:        leal    -540(%ebp), %eax
        !          1678:        movl    %eax, 4(%esp)
        !          1679:        leal    InternalDTAs+16(%ebx), %eax
        !          1680:        movl    %eax, (%esp)
        !          1681:        call    scandir
        !          1682:        movl    %eax, InternalDTAs+4(%ebx)
        !          1683:        movl    DTAIndex, %edx
        !          1684:        movl    %edx, %eax
        !          1685:        sall    $4, %eax
        !          1686:        addl    %edx, %eax
        !          1687:        sall    $4, %eax
        !          1688:        movl    InternalDTAs+4(%eax), %ecx
        !          1689:        testl   %ecx, %ecx
        !          1690:        js      .L283
        !          1691:        movl    %edi, (%esp)
        !          1692:        xorl    %edx, %edx
        !          1693:        xorl    %esi, %esi
        !          1694:        movl    %edx, InternalDTAs+8(%eax)
        !          1695:        xorl    %edi, %edi
        !          1696:        leal    -536(%ebp), %eax
        !          1697:        movl    %eax, 4(%esp)
        !          1698:        call    fsfirst_dirmask
        !          1699:        movl    DTAIndex, %ecx
        !          1700:        movl    %ecx, %eax
        !          1701:        sall    $4, %eax
        !          1702:        addl    %ecx, %eax
        !          1703:        sall    $4, %eax
        !          1704:        cmpl    InternalDTAs+4(%eax), %edi
        !          1705:        jge     .L256
        !          1706:        .p2align 4,,15
        !          1707: .L268:
        !          1708:        movl    -540(%ebp), %eax
        !          1709:        movl    (%eax,%esi,4), %eax
        !          1710:        addl    $11, %eax
        !          1711:        movl    %eax, 4(%esp)
        !          1712:        leal    -536(%ebp), %eax
        !          1713:        movl    %eax, (%esp)
        !          1714:        call    match
        !          1715:        testl   %eax, %eax
        !          1716:        je      .L265
        !          1717:        incl    %edi
        !          1718: .L265:
        !          1719:        movl    DTAIndex, %ecx
        !          1720:        incl    %esi
        !          1721:        movl    %ecx, %eax
        !          1722:        sall    $4, %eax
        !          1723:        leal    (%ecx,%eax), %ebx
        !          1724:        sall    $4, %ebx
        !          1725:        cmpl    InternalDTAs+4(%ebx), %esi
        !          1726:        jl      .L268
        !          1727:        testl   %edi, %edi
        !          1728:        je      .L256
        !          1729:        leal    0(,%edi,4), %eax
        !          1730:        xorl    %esi, %esi
        !          1731:        movl    %eax, (%esp)
        !          1732:        call    malloc
        !          1733:        movl    %eax, InternalDTAs+12(%ebx)
        !          1734:        movl    DTAIndex, %ecx
        !          1735:        xorl    %ebx, %ebx
        !          1736:        movl    %ecx, %eax
        !          1737:        sall    $4, %eax
        !          1738:        addl    %ecx, %eax
        !          1739:        sall    $4, %eax
        !          1740:        cmpl    InternalDTAs+4(%eax), %esi
        !          1741:        jl      .L275
        !          1742: .L280:
        !          1743:        movl    %ecx, %eax
        !          1744:        sall    $4, %eax
        !          1745:        addl    %ecx, %eax
        !          1746:        sall    $4, %eax
        !          1747:        testl   %edi, %edi
        !          1748:        movl    %edi, InternalDTAs+4(%eax)
        !          1749:        jne     .L276
        !          1750: .L283:
        !          1751:        movl    $-33, %eax
        !          1752:        jmp     .L285
        !          1753: .L276:
        !          1754:        movl    $0, (%esp)
        !          1755:        call    GemDOS_SNext
        !          1756:        movl    DTAIndex, %ecx
        !          1757:        incl    %ecx
        !          1758:        movzbl  %cl,%eax
        !          1759:        movl    %eax, DTAIndex
        !          1760:        jmp     .L256
        !          1761:        .p2align 4,,7
        !          1762: .L275:
        !          1763:        movl    -540(%ebp), %eax
        !          1764:        movl    (%eax,%esi,4), %eax
        !          1765:        addl    $11, %eax
        !          1766:        movl    %eax, 4(%esp)
        !          1767:        leal    -536(%ebp), %eax
        !          1768:        movl    %eax, (%esp)
        !          1769:        call    match
        !          1770:        testl   %eax, %eax
        !          1771:        je      .L281
        !          1772:        movl    DTAIndex, %ecx
        !          1773:        movl    %ecx, %eax
        !          1774:        sall    $4, %eax
        !          1775:        addl    %ecx, %eax
        !          1776:        sall    $4, %eax
        !          1777:        movl    InternalDTAs+12(%eax), %edx
        !          1778:        movl    -540(%ebp), %eax
        !          1779:        movl    (%eax,%esi,4), %eax
        !          1780:        movl    %eax, (%edx,%ebx,4)
        !          1781:        incl    %ebx
        !          1782: .L272:
        !          1783:        movl    %ecx, %eax
        !          1784:        incl    %esi
        !          1785:        sall    $4, %eax
        !          1786:        addl    %ecx, %eax
        !          1787:        sall    $4, %eax
        !          1788:        cmpl    InternalDTAs+4(%eax), %esi
        !          1789:        jl      .L275
        !          1790:        jmp     .L280
        !          1791: .L281:
        !          1792:        movl    DTAIndex, %ecx
        !          1793:        jmp     .L272
        !          1794: .L287:
        !          1795:        movl    $-34, %eax
        !          1796:        jmp     .L285
        !          1797:        .p2align 4,,7
        !          1798: .L286:
        !          1799:        call    ClearInternalDTA
        !          1800:        movl    DTAIndex, %ecx
        !          1801:        jmp     .L259
        !          1802:        .size   GemDOS_SFirst, .-GemDOS_SFirst
        !          1803:        .p2align 4,,15
        !          1804: .globl Call_Memset
        !          1805:        .type   Call_Memset, @function
        !          1806: Call_Memset:
        !          1807:        pushl   %ebp
        !          1808:        movl    %esp, %ebp
        !          1809:        subl    $24, %esp
        !          1810:        movl    $15, (%esp)
        !          1811:        movl    %ebx, -8(%ebp)
        !          1812:        movl    %esi, -4(%ebp)
        !          1813:        call    GetReg
        !          1814:        movl    %eax, %esi
        !          1815:        subl    $2, %esi
        !          1816:        leal    2(%esi), %eax
        !          1817:        movl    %eax, (%esp)
        !          1818:        call    MemReadLong
        !          1819:        movl    %eax, %ebx
        !          1820:        leal    6(%esi), %eax
        !          1821:        movl    %eax, (%esp)
        !          1822:        call    MemReadLong
        !          1823:        movl    %ebx, 8(%esp)
        !          1824:        movl    STRam, %esi
        !          1825:        xorl    %ebx, %ebx
        !          1826:        movl    %ebx, 4(%esp)
        !          1827:        addl    %esi, %eax
        !          1828:        movl    %eax, (%esp)
        !          1829:        call    memset
        !          1830:        movl    -8(%ebp), %ebx
        !          1831:        movl    -4(%ebp), %esi
        !          1832:        movl    %ebp, %esp
        !          1833:        popl    %ebp
        !          1834:        ret
        !          1835:        .size   Call_Memset, .-Call_Memset
        !          1836:        .p2align 4,,15
        !          1837: .globl Call_MemsetBlue
        !          1838:        .type   Call_MemsetBlue, @function
        !          1839: Call_MemsetBlue:
        !          1840:        pushl   %ebp
        !          1841:        movl    %esp, %ebp
        !          1842:        subl    $24, %esp
        !          1843:        movl    $15, (%esp)
        !          1844:        movl    %ebx, -8(%ebp)
        !          1845:        movl    %esi, -4(%ebp)
        !          1846:        call    GetReg
        !          1847:        movl    %eax, %esi
        !          1848:        subl    $2, %esi
        !          1849:        leal    2(%esi), %eax
        !          1850:        movl    %eax, (%esp)
        !          1851:        call    MemReadLong
        !          1852:        movl    %eax, %ebx
        !          1853:        leal    6(%esi), %eax
        !          1854:        movl    %eax, (%esp)
        !          1855:        call    MemReadLong
        !          1856:        movl    %ebx, 8(%esp)
        !          1857:        movl    STRam, %edx
        !          1858:        movl    $14, %ecx
        !          1859:        movl    %ecx, 4(%esp)
        !          1860:        addl    %edx, %eax
        !          1861:        movl    %eax, (%esp)
        !          1862:        call    memset
        !          1863:        movl    -8(%ebp), %ebx
        !          1864:        movl    -4(%ebp), %esi
        !          1865:        movl    %ebp, %esp
        !          1866:        popl    %ebp
        !          1867:        ret
        !          1868:        .size   Call_MemsetBlue, .-Call_MemsetBlue
        !          1869:        .p2align 4,,15
        !          1870: .globl Call_Memcpy
        !          1871:        .type   Call_Memcpy, @function
        !          1872: Call_Memcpy:
        !          1873:        pushl   %ebp
        !          1874:        movl    %esp, %ebp
        !          1875:        subl    $24, %esp
        !          1876:        movl    $15, (%esp)
        !          1877:        movl    %ebx, -12(%ebp)
        !          1878:        movl    %esi, -8(%ebp)
        !          1879:        movl    %edi, -4(%ebp)
        !          1880:        call    GetReg
        !          1881:        movl    %eax, %esi
        !          1882:        subl    $2, %esi
        !          1883:        leal    2(%esi), %eax
        !          1884:        movl    %eax, (%esp)
        !          1885:        call    MemReadLong
        !          1886:        movl    %eax, %edi
        !          1887:        leal    6(%esi), %eax
        !          1888:        movl    %eax, (%esp)
        !          1889:        call    MemReadLong
        !          1890:        movl    %eax, %ebx
        !          1891:        leal    10(%esi), %eax
        !          1892:        movl    %eax, (%esp)
        !          1893:        call    MemReadLong
        !          1894:        movl    %eax, 8(%esp)
        !          1895:        movl    STRam, %edx
        !          1896:        leal    (%edi,%edx), %ecx
        !          1897:        movl    %ecx, (%esp)
        !          1898:        addl    %ebx, %edx
        !          1899:        movl    %edx, 4(%esp)
        !          1900:        call    memcpy
        !          1901:        movl    -12(%ebp), %ebx
        !          1902:        movl    -8(%ebp), %esi
        !          1903:        movl    -4(%ebp), %edi
        !          1904:        movl    %ebp, %esp
        !          1905:        popl    %ebp
        !          1906:        ret
        !          1907:        .size   Call_Memcpy, .-Call_Memcpy
        !          1908:        .section        .rodata
        !          1909:        .align 32
        !          1910:        .type   mouse_bmp, @object
        !          1911:        .size   mouse_bmp, 256
        !          1912: mouse_bmp:
        !          1913:        .byte   0
        !          1914:        .byte   0
        !          1915:        .byte   -1
        !          1916:        .byte   -1
        !          1917:        .byte   -1
        !          1918:        .byte   -1
        !          1919:        .byte   -1
        !          1920:        .byte   -1
        !          1921:        .byte   -1
        !          1922:        .byte   -1
        !          1923:        .byte   -1
        !          1924:        .byte   -1
        !          1925:        .byte   -1
        !          1926:        .byte   -1
        !          1927:        .byte   -1
        !          1928:        .byte   -1
        !          1929:        .byte   0
        !          1930:        .byte   15
        !          1931:        .byte   0
        !          1932:        .byte   -1
        !          1933:        .byte   -1
        !          1934:        .byte   -1
        !          1935:        .byte   -1
        !          1936:        .byte   -1
        !          1937:        .byte   -1
        !          1938:        .byte   -1
        !          1939:        .byte   -1
        !          1940:        .byte   -1
        !          1941:        .byte   -1
        !          1942:        .byte   -1
        !          1943:        .byte   -1
        !          1944:        .byte   -1
        !          1945:        .byte   0
        !          1946:        .byte   15
        !          1947:        .byte   15
        !          1948:        .byte   0
        !          1949:        .byte   -1
        !          1950:        .byte   -1
        !          1951:        .byte   -1
        !          1952:        .byte   -1
        !          1953:        .byte   -1
        !          1954:        .byte   -1
        !          1955:        .byte   -1
        !          1956:        .byte   -1
        !          1957:        .byte   -1
        !          1958:        .byte   -1
        !          1959:        .byte   -1
        !          1960:        .byte   -1
        !          1961:        .byte   0
        !          1962:        .byte   15
        !          1963:        .byte   15
        !          1964:        .byte   15
        !          1965:        .byte   0
        !          1966:        .byte   -1
        !          1967:        .byte   -1
        !          1968:        .byte   -1
        !          1969:        .byte   -1
        !          1970:        .byte   -1
        !          1971:        .byte   -1
        !          1972:        .byte   -1
        !          1973:        .byte   -1
        !          1974:        .byte   -1
        !          1975:        .byte   -1
        !          1976:        .byte   -1
        !          1977:        .byte   0
        !          1978:        .byte   15
        !          1979:        .byte   15
        !          1980:        .byte   15
        !          1981:        .byte   15
        !          1982:        .byte   0
        !          1983:        .byte   -1
        !          1984:        .byte   -1
        !          1985:        .byte   -1
        !          1986:        .byte   -1
        !          1987:        .byte   -1
        !          1988:        .byte   -1
        !          1989:        .byte   -1
        !          1990:        .byte   -1
        !          1991:        .byte   -1
        !          1992:        .byte   -1
        !          1993:        .byte   0
        !          1994:        .byte   15
        !          1995:        .byte   15
        !          1996:        .byte   15
        !          1997:        .byte   15
        !          1998:        .byte   15
        !          1999:        .byte   0
        !          2000:        .byte   -1
        !          2001:        .byte   -1
        !          2002:        .byte   -1
        !          2003:        .byte   -1
        !          2004:        .byte   -1
        !          2005:        .byte   -1
        !          2006:        .byte   -1
        !          2007:        .byte   -1
        !          2008:        .byte   -1
        !          2009:        .byte   0
        !          2010:        .byte   15
        !          2011:        .byte   15
        !          2012:        .byte   15
        !          2013:        .byte   15
        !          2014:        .byte   0
        !          2015:        .byte   -1
        !          2016:        .byte   -1
        !          2017:        .byte   -1
        !          2018:        .byte   -1
        !          2019:        .byte   -1
        !          2020:        .byte   -1
        !          2021:        .byte   -1
        !          2022:        .byte   -1
        !          2023:        .byte   -1
        !          2024:        .byte   -1
        !          2025:        .byte   0
        !          2026:        .byte   15
        !          2027:        .byte   15
        !          2028:        .byte   15
        !          2029:        .byte   15
        !          2030:        .byte   0
        !          2031:        .byte   -1
        !          2032:        .byte   -1
        !          2033:        .byte   -1
        !          2034:        .byte   -1
        !          2035:        .byte   -1
        !          2036:        .byte   -1
        !          2037:        .byte   -1
        !          2038:        .byte   -1
        !          2039:        .byte   -1
        !          2040:        .byte   -1
        !          2041:        .byte   0
        !          2042:        .byte   15
        !          2043:        .byte   0
        !          2044:        .byte   15
        !          2045:        .byte   15
        !          2046:        .byte   15
        !          2047:        .byte   0
        !          2048:        .byte   -1
        !          2049:        .byte   -1
        !          2050:        .byte   -1
        !          2051:        .byte   -1
        !          2052:        .byte   -1
        !          2053:        .byte   -1
        !          2054:        .byte   -1
        !          2055:        .byte   -1
        !          2056:        .byte   -1
        !          2057:        .byte   0
        !          2058:        .byte   0
        !          2059:        .byte   -1
        !          2060:        .byte   0
        !          2061:        .byte   15
        !          2062:        .byte   15
        !          2063:        .byte   0
        !          2064:        .byte   -1
        !          2065:        .byte   -1
        !          2066:        .byte   -1
        !          2067:        .byte   -1
        !          2068:        .byte   -1
        !          2069:        .byte   -1
        !          2070:        .byte   -1
        !          2071:        .byte   -1
        !          2072:        .byte   -1
        !          2073:        .byte   -1
        !          2074:        .byte   -1
        !          2075:        .byte   -1
        !          2076:        .byte   0
        !          2077:        .byte   15
        !          2078:        .byte   15
        !          2079:        .byte   15
        !          2080:        .byte   0
        !          2081:        .byte   -1
        !          2082:        .byte   -1
        !          2083:        .byte   -1
        !          2084:        .byte   -1
        !          2085:        .byte   -1
        !          2086:        .byte   -1
        !          2087:        .byte   -1
        !          2088:        .byte   -1
        !          2089:        .byte   -1
        !          2090:        .byte   -1
        !          2091:        .byte   -1
        !          2092:        .byte   -1
        !          2093:        .byte   0
        !          2094:        .byte   15
        !          2095:        .byte   15
        !          2096:        .byte   0
        !          2097:        .byte   -1
        !          2098:        .byte   -1
        !          2099:        .byte   -1
        !          2100:        .byte   -1
        !          2101:        .byte   -1
        !          2102:        .byte   -1
        !          2103:        .byte   -1
        !          2104:        .byte   -1
        !          2105:        .byte   -1
        !          2106:        .byte   -1
        !          2107:        .byte   -1
        !          2108:        .byte   -1
        !          2109:        .byte   0
        !          2110:        .byte   15
        !          2111:        .byte   15
        !          2112:        .byte   15
        !          2113:        .byte   0
        !          2114:        .byte   -1
        !          2115:        .byte   -1
        !          2116:        .byte   -1
        !          2117:        .byte   -1
        !          2118:        .byte   -1
        !          2119:        .byte   -1
        !          2120:        .byte   -1
        !          2121:        .byte   -1
        !          2122:        .byte   -1
        !          2123:        .byte   -1
        !          2124:        .byte   -1
        !          2125:        .byte   -1
        !          2126:        .byte   0
        !          2127:        .byte   15
        !          2128:        .byte   0
        !          2129:        .byte   -1
        !          2130:        .byte   -1
        !          2131:        .byte   -1
        !          2132:        .byte   -1
        !          2133:        .byte   -1
        !          2134:        .byte   -1
        !          2135:        .byte   -1
        !          2136:        .byte   -1
        !          2137:        .byte   -1
        !          2138:        .byte   -1
        !          2139:        .byte   -1
        !          2140:        .byte   -1
        !          2141:        .byte   -1
        !          2142:        .byte   -1
        !          2143:        .byte   0
        !          2144:        .byte   -1
        !          2145:        .byte   -1
        !          2146:        .byte   -1
        !          2147:        .byte   -1
        !          2148:        .byte   -1
        !          2149:        .byte   -1
        !          2150:        .byte   -1
        !          2151:        .byte   -1
        !          2152:        .byte   -1
        !          2153:        .byte   -1
        !          2154:        .byte   -1
        !          2155:        .byte   -1
        !          2156:        .byte   -1
        !          2157:        .byte   -1
        !          2158:        .byte   -1
        !          2159:        .byte   -1
        !          2160:        .byte   -1
        !          2161:        .byte   -1
        !          2162:        .byte   -1
        !          2163:        .byte   -1
        !          2164:        .byte   -1
        !          2165:        .byte   -1
        !          2166:        .byte   -1
        !          2167:        .byte   -1
        !          2168:        .byte   -1
        !          2169:        .text
        !          2170:        .p2align 4,,15
        !          2171: .globl Call_BlitCursor
        !          2172:        .type   Call_BlitCursor, @function
        !          2173: Call_BlitCursor:
        !          2174:        pushl   %ebp
        !          2175:        movl    %esp, %ebp
        !          2176:        pushl   %edi
        !          2177:        pushl   %esi
        !          2178:        movl    $mouse_bmp, %esi
        !          2179:        pushl   %ebx
        !          2180:        subl    $28, %esp
        !          2181:        movl    $15, (%esp)
        !          2182:        call    GetReg
        !          2183:        movl    %eax, %ebx
        !          2184:        subl    $2, %ebx
        !          2185:        leal    2(%ebx), %eax
        !          2186:        movl    %eax, (%esp)
        !          2187:        call    MemReadLong
        !          2188:        movl    %eax, %edi
        !          2189:        leal    6(%ebx), %eax
        !          2190:        movl    %eax, (%esp)
        !          2191:        call    MemReadLong
        !          2192:        movl    %eax, -20(%ebp)
        !          2193:        leal    10(%ebx), %eax
        !          2194:        movl    $under_mouse, %ebx
        !          2195:        movl    %eax, (%esp)
        !          2196:        call    MemReadLong
        !          2197:        movl    $0, -16(%ebp)
        !          2198:        movl    STRam, %ecx
        !          2199:        addl    %ecx, %eax
        !          2200:        movl    -20(%ebp), %ecx
        !          2201:        leal    (%ecx,%ecx,4), %edx
        !          2202:        sall    $6, %edx
        !          2203:        addl    %edx, %eax
        !          2204:        addl    %edi, %eax
        !          2205:        movl    %eax, -24(%ebp)
        !          2206: .L304:
        !          2207:        movl    -16(%ebp), %eax
        !          2208:        movl    -20(%ebp), %edx
        !          2209:        addl    %edx, %eax
        !          2210:        cmpl    $200, %eax
        !          2211:        jg      .L293
        !          2212:        movl    -24(%ebp), %edx
        !          2213:        xorl    %ecx, %ecx
        !          2214:        leal    320(%edx), %eax
        !          2215:        movl    %eax, -24(%ebp)
        !          2216:        .p2align 4,,15
        !          2217: .L303:
        !          2218:        leal    (%edi,%ecx), %eax
        !          2219:        cmpl    $319, %eax
        !          2220:        jle     .L308
        !          2221: .L299:
        !          2222:        incl    %ecx
        !          2223:        incl    %edx
        !          2224:        incl    %esi
        !          2225:        incl    %ebx
        !          2226:        cmpl    $15, %ecx
        !          2227:        jle     .L303
        !          2228:        incl    -16(%ebp)
        !          2229:        cmpl    $15, -16(%ebp)
        !          2230:        jle     .L304
        !          2231: .L293:
        !          2232:        addl    $28, %esp
        !          2233:        popl    %ebx
        !          2234:        popl    %esi
        !          2235:        popl    %edi
        !          2236:        popl    %ebp
        !          2237:        ret
        !          2238:        .p2align 4,,7
        !          2239: .L308:
        !          2240:        movzbl  (%edx), %eax
        !          2241:        movb    %al, (%ebx)
        !          2242:        movzbl  (%esi), %eax
        !          2243:        cmpb    $-1, %al
        !          2244:        je      .L299
        !          2245:        movb    %al, (%edx)
        !          2246:        jmp     .L299
        !          2247:        .size   Call_BlitCursor, .-Call_BlitCursor
        !          2248:        .p2align 4,,15
        !          2249: .globl Call_RestoreUnderCursor
        !          2250:        .type   Call_RestoreUnderCursor, @function
        !          2251: Call_RestoreUnderCursor:
        !          2252:        pushl   %ebp
        !          2253:        movl    %esp, %ebp
        !          2254:        pushl   %edi
        !          2255:        xorl    %edi, %edi
        !          2256:        pushl   %esi
        !          2257:        pushl   %ebx
        !          2258:        subl    $12, %esp
        !          2259:        movl    $15, (%esp)
        !          2260:        call    GetReg
        !          2261:        movl    %eax, %ebx
        !          2262:        subl    $2, %ebx
        !          2263:        leal    2(%ebx), %eax
        !          2264:        movl    %eax, (%esp)
        !          2265:        call    MemReadLong
        !          2266:        movl    %eax, %esi
        !          2267:        leal    6(%ebx), %eax
        !          2268:        movl    %eax, (%esp)
        !          2269:        call    MemReadLong
        !          2270:        movl    %eax, -16(%ebp)
        !          2271:        leal    10(%ebx), %eax
        !          2272:        movl    %eax, (%esp)
        !          2273:        call    MemReadLong
        !          2274:        movl    -16(%ebp), %ecx
        !          2275:        movl    STRam, %ebx
        !          2276:        leal    (%ecx,%ecx,4), %edx
        !          2277:        addl    %ebx, %eax
        !          2278:        sall    $6, %edx
        !          2279:        addl    %edx, %eax
        !          2280:        addl    %esi, %eax
        !          2281:        movl    $under_mouse, %ebx
        !          2282:        movl    %eax, -20(%ebp)
        !          2283: .L322:
        !          2284:        movl    -16(%ebp), %edx
        !          2285:        leal    (%edx,%edi), %eax
        !          2286:        cmpl    $200, %eax
        !          2287:        jg      .L311
        !          2288:        movl    -20(%ebp), %edx
        !          2289:        leal    320(%edx), %ecx
        !          2290:        movl    %ecx, -20(%ebp)
        !          2291:        xorl    %ecx, %ecx
        !          2292:        .p2align 4,,15
        !          2293: .L321:
        !          2294:        leal    (%esi,%ecx), %eax
        !          2295:        cmpl    $319, %eax
        !          2296:        jle     .L326
        !          2297: .L317:
        !          2298:        incl    %ecx
        !          2299:        incl    %edx
        !          2300:        incl    %ebx
        !          2301:        cmpl    $15, %ecx
        !          2302:        jle     .L321
        !          2303:        incl    %edi
        !          2304:        cmpl    $15, %edi
        !          2305:        jle     .L322
        !          2306: .L311:
        !          2307:        addl    $12, %esp
        !          2308:        popl    %ebx
        !          2309:        popl    %esi
        !          2310:        popl    %edi
        !          2311:        popl    %ebp
        !          2312:        ret
        !          2313:        .p2align 4,,7
        !          2314: .L326:
        !          2315:        movzbl  (%ebx), %eax
        !          2316:        cmpb    $-1, %al
        !          2317:        je      .L317
        !          2318:        movb    %al, (%edx)
        !          2319:        jmp     .L317
        !          2320:        .size   Call_RestoreUnderCursor, .-Call_RestoreUnderCursor
        !          2321:        .p2align 4,,15
        !          2322: .globl Call_PutPix
        !          2323:        .type   Call_PutPix, @function
        !          2324: Call_PutPix:
        !          2325:        pushl   %ebp
        !          2326:        movl    %esp, %ebp
        !          2327:        subl    $24, %esp
        !          2328:        movl    $15, (%esp)
        !          2329:        movl    %ebx, -8(%ebp)
        !          2330:        movl    %esi, -4(%ebp)
        !          2331:        call    GetReg
        !          2332:        movl    %eax, (%esp)
        !          2333:        call    MemReadWord
        !          2334:        movl    $4, (%esp)
        !          2335:        movswl  %ax,%ebx
        !          2336:        sarl    $2, %ebx
        !          2337:        call    GetReg
        !          2338:        movl    $11, (%esp)
        !          2339:        movzwl  %ax, %esi
        !          2340:        call    GetReg
        !          2341:        testl   $1048576, %eax
        !          2342:        je      .L328
        !          2343:        leal    -1048576(%eax,%eax), %eax
        !          2344: .L329:
        !          2345:        movl    STRam, %edx
        !          2346:        addl    %edx, %eax
        !          2347:        movb    %bl, (%esi,%eax)
        !          2348:        movl    -8(%ebp), %ebx
        !          2349:        movl    -4(%ebp), %esi
        !          2350:        movl    %ebp, %esp
        !          2351:        popl    %ebp
        !          2352:        ret
        !          2353:        .p2align 4,,7
        !          2354: .L328:
        !          2355:        leal    -983040(%eax,%eax), %eax
        !          2356:        jmp     .L329
        !          2357:        .size   Call_PutPix, .-Call_PutPix
        !          2358:        .p2align 4,,15
        !          2359: .globl Call_FillLine
        !          2360:        .type   Call_FillLine, @function
        !          2361: Call_FillLine:
        !          2362:        pushl   %ebp
        !          2363:        movl    %esp, %ebp
        !          2364:        pushl   %ebx
        !          2365:        subl    $4, %esp
        !          2366:        movl    $15, (%esp)
        !          2367:        call    GetReg
        !          2368:        movl    %eax, (%esp)
        !          2369:        call    MemReadWord
        !          2370:        movl    $4, (%esp)
        !          2371:        movswl  %ax,%ebx
        !          2372:        sarl    $2, %ebx
        !          2373:        call    GetReg
        !          2374:        movl    $5, (%esp)
        !          2375:        call    GetReg
        !          2376:        movl    $11, (%esp)
        !          2377:        call    GetReg
        !          2378:        testl   $1048576, %eax
        !          2379:        je      .L331
        !          2380:        leal    -1048576(%eax,%eax), %eax
        !          2381: .L332:
        !          2382:        movl    STRam, %edx
        !          2383:        addl    %edx, %eax
        !          2384:        movl    $319, %edx
        !          2385:        .p2align 4,,15
        !          2386: .L336:
        !          2387:        movb    %bl, (%eax)
        !          2388:        decl    %edx
        !          2389:        incl    %eax
        !          2390:        cmpl    $-1, %edx
        !          2391:        jne     .L336
        !          2392:        popl    %ecx
        !          2393:        popl    %ebx
        !          2394:        popl    %ebp
        !          2395:        ret
        !          2396: .L331:
        !          2397:        leal    -983040(%eax,%eax), %eax
        !          2398:        jmp     .L332
        !          2399:        .size   Call_FillLine, .-Call_FillLine
        !          2400:        .p2align 4,,15
        !          2401: .globl Call_BackHLine
        !          2402:        .type   Call_BackHLine, @function
        !          2403: Call_BackHLine:
        !          2404:        pushl   %ebp
        !          2405:        movl    %esp, %ebp
        !          2406:        pushl   %edi
        !          2407:        pushl   %esi
        !          2408:        pushl   %ebx
        !          2409:        subl    $12, %esp
        !          2410:        movl    $15, (%esp)
        !          2411:        call    GetReg
        !          2412:        movl    %eax, (%esp)
        !          2413:        call    MemReadWord
        !          2414:        movl    $11, (%esp)
        !          2415:        movswl  %ax,%edi
        !          2416:        sarl    $2, %edi
        !          2417:        call    GetReg
        !          2418:        movl    $7, (%esp)
        !          2419:        movl    %eax, %esi
        !          2420:        call    GetReg
        !          2421:        testl   $1048576, %esi
        !          2422:        movzwl  %ax, %ebx
        !          2423:        je      .L340
        !          2424:        leal    -1048576(%esi,%esi), %esi
        !          2425: .L341:
        !          2426:        movl    STRam, %edx
        !          2427:        movl    $15, %ecx
        !          2428:        addl    %esi, %edx
        !          2429:        .p2align 4,,15
        !          2430: .L347:
        !          2431:        movl    %ebx, %eax
        !          2432:        sarl    %cl, %eax
        !          2433:        testb   $1, %al
        !          2434:        je      .L346
        !          2435:        cmpb    $0, (%edx)
        !          2436:        jne     .L346
        !          2437:        movl    %edi, %eax
        !          2438:        movb    %al, (%edx)
        !          2439:        .p2align 4,,15
        !          2440: .L346:
        !          2441:        incl    %edx
        !          2442:        decl    %ecx
        !          2443:        jns     .L347
        !          2444:        addl    $12, %esp
        !          2445:        popl    %ebx
        !          2446:        popl    %esi
        !          2447:        popl    %edi
        !          2448:        popl    %ebp
        !          2449:        ret
        !          2450: .L340:
        !          2451:        leal    -983040(%esi,%esi), %esi
        !          2452:        jmp     .L341
        !          2453:        .size   Call_BackHLine, .-Call_BackHLine
        !          2454:        .p2align 4,,15
        !          2455: .globl Call_OldHLine
        !          2456:        .type   Call_OldHLine, @function
        !          2457: Call_OldHLine:
        !          2458:        pushl   %ebp
        !          2459:        movl    %esp, %ebp
        !          2460:        pushl   %edi
        !          2461:        pushl   %esi
        !          2462:        pushl   %ebx
        !          2463:        subl    $12, %esp
        !          2464:        movl    $15, (%esp)
        !          2465:        call    GetReg
        !          2466:        movl    %eax, (%esp)
        !          2467:        call    MemReadWord
        !          2468:        movl    $4, (%esp)
        !          2469:        movswl  %ax,%esi
        !          2470:        sarl    $2, %esi
        !          2471:        call    GetReg
        !          2472:        movl    $5, (%esp)
        !          2473:        movzwl  %ax, %edi
        !          2474:        call    GetReg
        !          2475:        movl    $11, (%esp)
        !          2476:        movzwl  %ax, %ebx
        !          2477:        call    GetReg
        !          2478:        testl   $1048576, %eax
        !          2479:        leal    -1048576(%eax,%eax), %edx
        !          2480:        jne     .L352
        !          2481:        leal    -983040(%eax,%eax), %edx
        !          2482: .L352:
        !          2483:        movl    %ebx, %eax
        !          2484:        movl    STRam, %ecx
        !          2485:        shrl    $31, %eax
        !          2486:        addl    %eax, %ebx
        !          2487:        sarl    %ebx
        !          2488:        addl    %ecx, %edx
        !          2489:        decl    %ebx
        !          2490:        leal    (%edi,%edx), %eax
        !          2491:        cmpl    $-1, %ebx
        !          2492:        je      .L358
        !          2493:        .p2align 4,,15
        !          2494: .L356:
        !          2495:        movl    %esi, %edx
        !          2496:        decl    %ebx
        !          2497:        movb    %dl, (%eax)
        !          2498:        incl    %eax
        !          2499:        cmpl    $-1, %ebx
        !          2500:        jne     .L356
        !          2501: .L358:
        !          2502:        addl    $12, %esp
        !          2503:        popl    %ebx
        !          2504:        popl    %esi
        !          2505:        popl    %edi
        !          2506:        popl    %ebp
        !          2507:        ret
        !          2508:        .size   Call_OldHLine, .-Call_OldHLine
        !          2509:        .p2align 4,,15
        !          2510: .globl Call_HLine
        !          2511:        .type   Call_HLine, @function
        !          2512: Call_HLine:
        !          2513:        pushl   %ebp
        !          2514:        movl    %esp, %ebp
        !          2515:        pushl   %edi
        !          2516:        pushl   %esi
        !          2517:        pushl   %ebx
        !          2518:        subl    $12, %esp
        !          2519:        movl    $1, (%esp)
        !          2520:        call    GetReg
        !          2521:        movl    $4, (%esp)
        !          2522:        movzwl  %ax,%esi
        !          2523:        sarl    $2, %esi
        !          2524:        call    GetReg
        !          2525:        movl    $5, (%esp)
        !          2526:        movzwl  %ax,%edi
        !          2527:        call    GetReg
        !          2528:        movl    $11, (%esp)
        !          2529:        movzwl  %ax,%ebx
        !          2530:        decl    %ebx
        !          2531:        call    GetReg
        !          2532:        movl    STRam, %edx
        !          2533:        addl    %edx, %eax
        !          2534:        addl    %edi, %eax
        !          2535:        cmpl    $-1, %ebx
        !          2536:        je      .L365
        !          2537:        .p2align 4,,15
        !          2538: .L363:
        !          2539:        movl    %esi, %edx
        !          2540:        decl    %ebx
        !          2541:        movb    %dl, (%eax)
        !          2542:        incl    %eax
        !          2543:        cmpl    $-1, %ebx
        !          2544:        jne     .L363
        !          2545: .L365:
        !          2546:        addl    $12, %esp
        !          2547:        popl    %ebx
        !          2548:        popl    %esi
        !          2549:        popl    %edi
        !          2550:        popl    %ebp
        !          2551:        ret
        !          2552:        .size   Call_HLine, .-Call_HLine
        !          2553:        .p2align 4,,15
        !          2554: .globl Call_BlitBmp
        !          2555:        .type   Call_BlitBmp, @function
        !          2556: Call_BlitBmp:
        !          2557:        pushl   %ebp
        !          2558:        movl    %esp, %ebp
        !          2559:        pushl   %edi
        !          2560:        pushl   %esi
        !          2561:        pushl   %ebx
        !          2562:        subl    $60, %esp
        !          2563:        movl    $15, (%esp)
        !          2564:        call    GetReg
        !          2565:        movl    %eax, %esi
        !          2566:        subl    $2, %esi
        !          2567:        leal    2(%esi), %eax
        !          2568:        movl    %eax, (%esp)
        !          2569:        call    MemReadWord
        !          2570:        cwtl
        !          2571:        movl    %eax, -16(%ebp)
        !          2572:        leal    4(%esi), %eax
        !          2573:        movl    %eax, (%esp)
        !          2574:        call    MemReadWord
        !          2575:        cwtl
        !          2576:        movl    %eax, -20(%ebp)
        !          2577:        leal    6(%esi), %eax
        !          2578:        movl    %eax, (%esp)
        !          2579:        call    MemReadWord
        !          2580:        cwtl
        !          2581:        movl    %eax, -24(%ebp)
        !          2582:        leal    8(%esi), %eax
        !          2583:        movl    %eax, (%esp)
        !          2584:        call    MemReadWord
        !          2585:        movswl  %ax,%edi
        !          2586:        leal    10(%esi), %eax
        !          2587:        movl    %eax, (%esp)
        !          2588:        call    MemReadLong
        !          2589:        movl    %eax, %ebx
        !          2590:        leal    14(%esi), %eax
        !          2591:        movl    %eax, (%esp)
        !          2592:        call    MemReadLong
        !          2593:        movl    STRam, %edx
        !          2594:        movl    -24(%ebp), %esi
        !          2595:        leal    4(%ebx,%edx), %ebx
        !          2596:        movl    %ebx, -28(%ebp)
        !          2597:        addl    %eax, %edx
        !          2598:        movl    -24(%ebp), %ebx
        !          2599:        leal    (%edi,%edi,4), %eax
        !          2600:        sall    $6, %eax
        !          2601:        addl    %eax, %edx
        !          2602:        addl    %esi, %edx
        !          2603:        testl   %ebx, %ebx
        !          2604:        movl    %edx, -32(%ebp)
        !          2605:        js      .L366
        !          2606:        testl   %edi, %edi
        !          2607:        js      .L366
        !          2608:        cmpl    $200, -20(%ebp)
        !          2609:        jg      .L366
        !          2610:        cmpl    $320, -16(%ebp)
        !          2611:        jg      .L366
        !          2612:        movl    -20(%ebp), %eax
        !          2613:        movl    -16(%ebp), %ecx
        !          2614:        imull   %ecx, %eax
        !          2615:        addl    %eax, %eax
        !          2616:        movl    %eax, -56(%ebp)
        !          2617:        movl    -20(%ebp), %eax
        !          2618:        decl    %eax
        !          2619:        movl    %eax, -40(%ebp)
        !          2620:        incl    %eax
        !          2621:        je      .L366
        !          2622: .L388:
        !          2623:        movl    -32(%ebp), %esi
        !          2624:        movl    -16(%ebp), %eax
        !          2625:        leal    320(%esi), %edx
        !          2626:        movl    %edx, -32(%ebp)
        !          2627:        testl   %eax, %eax
        !          2628:        movl    %eax, -36(%ebp)
        !          2629:        je      .L391
        !          2630:        movl    -56(%ebp), %edx
        !          2631:        leal    (%edx,%edx,2), %edx
        !          2632:        movl    %edx, -60(%ebp)
        !          2633: .L387:
        !          2634:        movl    -28(%ebp), %edx
        !          2635:        xorl    %ebx, %ebx
        !          2636:        movzwl  (%edx), %eax
        !          2637: #APP
        !          2638:        xchgb %al,%ah
        !          2639: #NO_APP
        !          2640:        cwtl
        !          2641:        movl    %eax, -44(%ebp)
        !          2642:        movl    -56(%ebp), %eax
        !          2643:        addl    %eax, %edx
        !          2644:        movzwl  (%edx), %eax
        !          2645: #APP
        !          2646:        xchgb %al,%ah
        !          2647: #NO_APP
        !          2648:        movl    %edx, -28(%ebp)
        !          2649:        cwtl
        !          2650:        movl    %eax, -48(%ebp)
        !          2651:        movl    -56(%ebp), %eax
        !          2652:        addl    %eax, %edx
        !          2653:        movzwl  (%edx), %eax
        !          2654: #APP
        !          2655:        xchgb %al,%ah
        !          2656: #NO_APP
        !          2657:        movl    %edx, -28(%ebp)
        !          2658:        cwtl
        !          2659:        movl    %eax, -52(%ebp)
        !          2660:        movl    -56(%ebp), %eax
        !          2661:        addl    %eax, %edx
        !          2662:        movzwl  (%edx), %eax
        !          2663:        movl    %edx, -28(%ebp)
        !          2664: #APP
        !          2665:        xchgb %al,%ah
        !          2666: #NO_APP
        !          2667:        movswl  %ax,%edi
        !          2668:        .p2align 4,,15
        !          2669: .L386:
        !          2670:        movl    -44(%ebp), %eax
        !          2671:        movl    $15, %ecx
        !          2672:        subl    %ebx, %ecx
        !          2673:        incl    %ebx
        !          2674:        sarl    %cl, %eax
        !          2675:        movb    %al, %dl
        !          2676:        movl    -48(%ebp), %eax
        !          2677:        andb    $1, %dl
        !          2678:        sarl    %cl, %eax
        !          2679:        andl    $1, %eax
        !          2680:        addl    %eax, %eax
        !          2681:        orb     %al, %dl
        !          2682:        movl    -52(%ebp), %eax
        !          2683:        sarl    %cl, %eax
        !          2684:        andl    $1, %eax
        !          2685:        sall    $2, %eax
        !          2686:        orb     %al, %dl
        !          2687:        movl    %edi, %eax
        !          2688:        sarl    %cl, %eax
        !          2689:        andl    $1, %eax
        !          2690:        sall    $3, %eax
        !          2691:        orb     %al, %dl
        !          2692:        movb    %dl, (%esi)
        !          2693:        incl    %esi
        !          2694:        cmpl    $15, %ebx
        !          2695:        jle     .L386
        !          2696:        movl    -60(%ebp), %edx
        !          2697:        subl    %edx, -28(%ebp)
        !          2698:        addl    $2, -28(%ebp)
        !          2699:        decl    -36(%ebp)
        !          2700:        jne     .L387
        !          2701: .L391:
        !          2702:        decl    -40(%ebp)
        !          2703:        cmpl    $-1, -40(%ebp)
        !          2704:        jne     .L388
        !          2705: .L366:
        !          2706:        addl    $60, %esp
        !          2707:        popl    %ebx
        !          2708:        popl    %esi
        !          2709:        popl    %edi
        !          2710:        popl    %ebp
        !          2711:        ret
        !          2712:        .size   Call_BlitBmp, .-Call_BlitBmp
        !          2713:        .p2align 4,,15
        !          2714: .globl Call_DrawStrShadowed
        !          2715:        .type   Call_DrawStrShadowed, @function
        !          2716: Call_DrawStrShadowed:
        !          2717:        pushl   %ebp
        !          2718:        movl    %esp, %ebp
        !          2719:        subl    $40, %esp
        !          2720:        movl    $8, (%esp)
        !          2721:        movl    %ebx, -12(%ebp)
        !          2722:        movl    %esi, -8(%ebp)
        !          2723:        movl    %edi, -4(%ebp)
        !          2724:        call    GetReg
        !          2725:        movl    $0, (%esp)
        !          2726:        movl    STRam, %ecx
        !          2727:        movl    %eax, %ebx
        !          2728:        addl    %ecx, %ebx
        !          2729:        call    GetReg
        !          2730:        movl    $2, (%esp)
        !          2731:        movl    %eax, %edi
        !          2732:        call    GetReg
        !          2733:        movl    $1, (%esp)
        !          2734:        movl    %eax, %esi
        !          2735:        call    GetReg
        !          2736:        movl    %eax, (%esp)
        !          2737:        movl    $1, %edx
        !          2738:        movl    %edx, 16(%esp)
        !          2739:        movl    %ebx, 12(%esp)
        !          2740:        movl    %edi, 8(%esp)
        !          2741:        movl    %esi, 4(%esp)
        !          2742:        call    DrawStr
        !          2743:        movl    %eax, 4(%esp)
        !          2744:        movl    $1, (%esp)
        !          2745:        call    SetReg
        !          2746:        movl    -12(%ebp), %ebx
        !          2747:        movl    -8(%ebp), %esi
        !          2748:        movl    -4(%ebp), %edi
        !          2749:        movl    %ebp, %esp
        !          2750:        popl    %ebp
        !          2751:        ret
        !          2752:        .size   Call_DrawStrShadowed, .-Call_DrawStrShadowed
        !          2753:        .p2align 4,,15
        !          2754: .globl Call_DrawStr
        !          2755:        .type   Call_DrawStr, @function
        !          2756: Call_DrawStr:
        !          2757:        pushl   %ebp
        !          2758:        movl    %esp, %ebp
        !          2759:        subl    $40, %esp
        !          2760:        movl    $8, (%esp)
        !          2761:        movl    %ebx, -12(%ebp)
        !          2762:        movl    %esi, -8(%ebp)
        !          2763:        movl    %edi, -4(%ebp)
        !          2764:        call    GetReg
        !          2765:        movl    $0, (%esp)
        !          2766:        movl    STRam, %ecx
        !          2767:        movl    %eax, %ebx
        !          2768:        addl    %ecx, %ebx
        !          2769:        call    GetReg
        !          2770:        movl    $2, (%esp)
        !          2771:        movl    %eax, %edi
        !          2772:        call    GetReg
        !          2773:        movl    $1, (%esp)
        !          2774:        movl    %eax, %esi
        !          2775:        call    GetReg
        !          2776:        movl    %eax, (%esp)
        !          2777:        xorl    %edx, %edx
        !          2778:        movl    %edx, 16(%esp)
        !          2779:        movl    %ebx, 12(%esp)
        !          2780:        movl    %edi, 8(%esp)
        !          2781:        movl    %esi, 4(%esp)
        !          2782:        call    DrawStr
        !          2783:        movl    %eax, 4(%esp)
        !          2784:        movl    $1, (%esp)
        !          2785:        call    SetReg
        !          2786:        movl    -12(%ebp), %ebx
        !          2787:        movl    -8(%ebp), %esi
        !          2788:        movl    -4(%ebp), %edi
        !          2789:        movl    %ebp, %esp
        !          2790:        popl    %ebp
        !          2791:        ret
        !          2792:        .size   Call_DrawStr, .-Call_DrawStr
        !          2793:        .p2align 4,,15
        !          2794: .globl Call_SetMainPalette
        !          2795:        .type   Call_SetMainPalette, @function
        !          2796: Call_SetMainPalette:
        !          2797:        pushl   %ebp
        !          2798:        movl    %esp, %ebp
        !          2799:        pushl   %esi
        !          2800:        xorl    %esi, %esi
        !          2801:        pushl   %ebx
        !          2802:        subl    $16, %esp
        !          2803:        movl    $15, (%esp)
        !          2804:        call    GetReg
        !          2805:        movl    %eax, (%esp)
        !          2806:        call    MemReadLong
        !          2807:        movl    %eax, %ebx
        !          2808:        .p2align 4,,15
        !          2809: .L401:
        !          2810:        movl    %ebx, (%esp)
        !          2811:        addl    $2, %ebx
        !          2812:        call    MemReadWord
        !          2813:        movw    %ax, MainPalette(%esi,%esi)
        !          2814:        incl    %esi
        !          2815:        cmpl    $15, %esi
        !          2816:        jle     .L401
        !          2817:        addl    $16, %esp
        !          2818:        popl    %ebx
        !          2819:        popl    %esi
        !          2820:        popl    %ebp
        !          2821:        ret
        !          2822:        .size   Call_SetMainPalette, .-Call_SetMainPalette
        !          2823:        .p2align 4,,15
        !          2824: .globl Call_SetCtrlPalette
        !          2825:        .type   Call_SetCtrlPalette, @function
        !          2826: Call_SetCtrlPalette:
        !          2827:        pushl   %ebp
        !          2828:        movl    %esp, %ebp
        !          2829:        pushl   %esi
        !          2830:        xorl    %esi, %esi
        !          2831:        pushl   %ebx
        !          2832:        subl    $16, %esp
        !          2833:        movl    $15, (%esp)
        !          2834:        call    GetReg
        !          2835:        movl    %eax, (%esp)
        !          2836:        call    MemReadLong
        !          2837:        movl    %eax, %ebx
        !          2838:        .p2align 4,,15
        !          2839: .L409:
        !          2840:        movl    %ebx, (%esp)
        !          2841:        addl    $2, %ebx
        !          2842:        call    MemReadWord
        !          2843:        movw    %ax, CtrlPalette(%esi,%esi)
        !          2844:        incl    %esi
        !          2845:        cmpl    $15, %esi
        !          2846:        jle     .L409
        !          2847:        addl    $16, %esp
        !          2848:        popl    %ebx
        !          2849:        popl    %esi
        !          2850:        popl    %ebp
        !          2851:        ret
        !          2852:        .size   Call_SetCtrlPalette, .-Call_SetCtrlPalette
        !          2853:        .p2align 4,,15
        !          2854: .globl Call_InformScreens
        !          2855:        .type   Call_InformScreens, @function
        !          2856: Call_InformScreens:
        !          2857:        pushl   %ebp
        !          2858:        movl    %esp, %ebp
        !          2859:        subl    $8, %esp
        !          2860:        movl    $15, (%esp)
        !          2861:        movl    %ebx, -4(%ebp)
        !          2862:        call    GetReg
        !          2863:        movl    %eax, %ebx
        !          2864:        subl    $2, %ebx
        !          2865:        leal    2(%ebx), %eax
        !          2866:        movl    %eax, (%esp)
        !          2867:        call    MemReadLong
        !          2868:        movl    %eax, physcreen2
        !          2869:        leal    6(%ebx), %eax
        !          2870:        movl    %eax, (%esp)
        !          2871:        call    MemReadLong
        !          2872:        movl    %eax, logscreen2
        !          2873:        leal    10(%ebx), %eax
        !          2874:        movl    %eax, (%esp)
        !          2875:        call    MemReadLong
        !          2876:        movl    %eax, physcreen
        !          2877:        leal    14(%ebx), %eax
        !          2878:        movl    %eax, (%esp)
        !          2879:        call    MemReadLong
        !          2880:        movl    %eax, logscreen
        !          2881:        movl    -4(%ebp), %ebx
        !          2882:        movl    %ebp, %esp
        !          2883:        popl    %ebp
        !          2884:        ret
        !          2885:        .size   Call_InformScreens, .-Call_InformScreens
        !          2886:        .p2align 4,,15
        !          2887: .globl Call_SetScreenBase
        !          2888:        .type   Call_SetScreenBase, @function
        !          2889: Call_SetScreenBase:
        !          2890:        pushl   %ebp
        !          2891:        movl    %esp, %ebp
        !          2892:        pushl   %ebx
        !          2893:        subl    $4, %esp
        !          2894:        movl    $15, (%esp)
        !          2895:        call    GetReg
        !          2896:        movl    %eax, (%esp)
        !          2897:        call    MemReadLong
        !          2898:        movl    %eax, VideoBase
        !          2899:        movl    STRam, %edx
        !          2900:        movl    len_working_ext_pal, %ecx
        !          2901:        addl    %edx, %eax
        !          2902:        xorl    %edx, %edx
        !          2903:        cmpl    %ecx, %edx
        !          2904:        movl    %eax, VideoRaster
        !          2905:        jge     .L420
        !          2906:        movl    $MainPalette, %ebx
        !          2907:        .p2align 4,,15
        !          2908: .L418:
        !          2909:        movzwl  working_ext_pal(%edx,%edx), %eax
        !          2910:        movw    %ax, 32(%ebx,%edx,2)
        !          2911:        incl    %edx
        !          2912:        cmpl    %ecx, %edx
        !          2913:        jl      .L418
        !          2914: .L420:
        !          2915:        leal    16(%ecx), %eax
        !          2916:        movl    %eax, len_main_palette
        !          2917:        popl    %ebx
        !          2918:        popl    %ebx
        !          2919:        popl    %ebp
        !          2920:        ret
        !          2921:        .size   Call_SetScreenBase, .-Call_SetScreenBase
        !          2922:        .p2align 4,,15
        !          2923: .globl Call_MakeExtPalette
        !          2924:        .type   Call_MakeExtPalette, @function
        !          2925: Call_MakeExtPalette:
        !          2926:        pushl   %ebp
        !          2927:        movl    %esp, %ebp
        !          2928:        pushl   %edi
        !          2929:        pushl   %esi
        !          2930:        xorl    %esi, %esi
        !          2931:        pushl   %ebx
        !          2932:        subl    $12, %esp
        !          2933:        movl    $15, (%esp)
        !          2934:        call    GetReg
        !          2935:        movl    %eax, (%esp)
        !          2936:        call    MemReadLong
        !          2937:        movl    %eax, (%esp)
        !          2938:        movl    %eax, %ebx
        !          2939:        addl    $2, %ebx
        !          2940:        call    MemReadWord
        !          2941:        movswl  %ax,%edi
        !          2942:        sarl    $2, %edi
        !          2943:        cmpl    %edi, %esi
        !          2944:        movl    %edi, len_working_ext_pal
        !          2945:        jl      .L426
        !          2946: .L428:
        !          2947:        addl    $12, %esp
        !          2948:        popl    %ebx
        !          2949:        popl    %esi
        !          2950:        popl    %edi
        !          2951:        popl    %ebp
        !          2952:        ret
        !          2953:        .p2align 4,,7
        !          2954: .L426:
        !          2955:        movl    %ebx, (%esp)
        !          2956:        addl    $2, %ebx
        !          2957:        call    MemReadWord
        !          2958:        movw    %ax, working_ext_pal(%esi,%esi)
        !          2959:        incl    %esi
        !          2960:        movl    %ebx, (%esp)
        !          2961:        call    MemReadWord
        !          2962:        movl    %ebx, (%esp)
        !          2963:        cwtl
        !          2964:        addl    $64, %eax
        !          2965:        movl    %eax, 4(%esp)
        !          2966:        addl    $2, %ebx
        !          2967:        call    MemWriteWord
        !          2968:        cmpl    %edi, %esi
        !          2969:        jl      .L426
        !          2970:        jmp     .L428
        !          2971:        .size   Call_MakeExtPalette, .-Call_MakeExtPalette
        !          2972:        .section        .rodata.str1.1
        !          2973: .LC11:
        !          2974:        .string "D: "
        !          2975: .LC12:
        !          2976:        .string "$%x "
        !          2977: .LC13:
        !          2978:        .string "A: "
        !          2979:        .text
        !          2980:        .p2align 4,,15
        !          2981: .globl Call_DumpRegs
        !          2982:        .type   Call_DumpRegs, @function
        !          2983: Call_DumpRegs:
        !          2984:        pushl   %ebp
        !          2985:        movl    %esp, %ebp
        !          2986:        pushl   %ebx
        !          2987:        subl    $20, %esp
        !          2988:        xorl    %ebx, %ebx
        !          2989:        movl    $.LC11, (%esp)
        !          2990:        call    printf
        !          2991:        .p2align 4,,15
        !          2992: .L434:
        !          2993:        movl    %ebx, (%esp)
        !          2994:        incl    %ebx
        !          2995:        call    GetReg
        !          2996:        movl    %eax, 4(%esp)
        !          2997:        movl    $.LC12, (%esp)
        !          2998:        call    printf
        !          2999:        cmpl    $7, %ebx
        !          3000:        jle     .L434
        !          3001:        movl    $10, (%esp)
        !          3002:        xorl    %ebx, %ebx
        !          3003:        call    putchar
        !          3004:        movl    $.LC13, (%esp)
        !          3005:        call    printf
        !          3006:        .p2align 4,,15
        !          3007: .L439:
        !          3008:        leal    8(%ebx), %eax
        !          3009:        incl    %ebx
        !          3010:        movl    %eax, (%esp)
        !          3011:        call    GetReg
        !          3012:        movl    %eax, 4(%esp)
        !          3013:        movl    $.LC12, (%esp)
        !          3014:        call    printf
        !          3015:        cmpl    $7, %ebx
        !          3016:        jle     .L439
        !          3017:        movl    $10, (%esp)
        !          3018:        call    putchar
        !          3019:        addl    $20, %esp
        !          3020:        popl    %ebx
        !          3021:        popl    %ebp
        !          3022:        ret
        !          3023:        .size   Call_DumpRegs, .-Call_DumpRegs
        !          3024:        .p2align 4,,15
        !          3025: .globl Call_NotifyOfScrFlip
        !          3026:        .type   Call_NotifyOfScrFlip, @function
        !          3027: Call_NotifyOfScrFlip:
        !          3028:        pushl   %ebp
        !          3029:        movl    $1, %ecx
        !          3030:        movl    %esp, %ebp
        !          3031:        popl    %ebp
        !          3032:        movl    %ecx, bScreenContentsChanged
        !          3033:        ret
        !          3034:        .size   Call_NotifyOfScrFlip, .-Call_NotifyOfScrFlip
        !          3035:        .p2align 4,,15
        !          3036: .globl Call_NotifyMousePos
        !          3037:        .type   Call_NotifyMousePos, @function
        !          3038: Call_NotifyMousePos:
        !          3039:        pushl   %ebp
        !          3040:        movl    %esp, %ebp
        !          3041:        popl    %ebp
        !          3042:        ret
        !          3043:        .size   Call_NotifyMousePos, .-Call_NotifyMousePos
        !          3044:        .p2align 4,,15
        !          3045: .globl Call_DrawQuad
        !          3046:        .type   Call_DrawQuad, @function
        !          3047: Call_DrawQuad:
        !          3048:        pushl   %ebp
        !          3049:        movl    %esp, %ebp
        !          3050:        pushl   %esi
        !          3051:        pushl   %ebx
        !          3052:        subl    $48, %esp
        !          3053:        movl    $0, (%esp)
        !          3054:        call    GetReg
        !          3055:        pushl   %eax
        !          3056:        fildl   (%esp)
        !          3057:        addl    $4, %esp
        !          3058:        movl    $1, (%esp)
        !          3059:        fstps   -40(%ebp)
        !          3060:        call    GetReg
        !          3061:        pushl   %eax
        !          3062:        fildl   (%esp)
        !          3063:        addl    $4, %esp
        !          3064:        movl    $2, (%esp)
        !          3065:        fstps   -36(%ebp)
        !          3066:        call    GetReg
        !          3067:        pushl   %eax
        !          3068:        fildl   (%esp)
        !          3069:        addl    $4, %esp
        !          3070:        movl    $3, (%esp)
        !          3071:        fstps   -32(%ebp)
        !          3072:        call    GetReg
        !          3073:        pushl   %eax
        !          3074:        fildl   (%esp)
        !          3075:        addl    $4, %esp
        !          3076:        movl    $4, (%esp)
        !          3077:        fstps   -28(%ebp)
        !          3078:        call    GetReg
        !          3079:        pushl   %eax
        !          3080:        fildl   (%esp)
        !          3081:        addl    $4, %esp
        !          3082:        movl    $5, (%esp)
        !          3083:        fstps   -24(%ebp)
        !          3084:        call    GetReg
        !          3085:        pushl   %eax
        !          3086:        fildl   (%esp)
        !          3087:        addl    $4, %esp
        !          3088:        movl    $6, (%esp)
        !          3089:        fstps   -20(%ebp)
        !          3090:        call    GetReg
        !          3091:        pushl   %eax
        !          3092:        fildl   (%esp)
        !          3093:        addl    $4, %esp
        !          3094:        movl    $7, (%esp)
        !          3095:        fstps   -16(%ebp)
        !          3096:        call    GetReg
        !          3097:        pushl   %eax
        !          3098:        xorl    %edx, %edx
        !          3099:        fld1
        !          3100:        fildl   (%esp)
        !          3101:        addl    $4, %esp
        !          3102:        fstps   -12(%ebp)
        !          3103:        .p2align 4,,15
        !          3104: .L462:
        !          3105:        xorl    %ecx, %ecx
        !          3106:        movl    $-1, %ebx
        !          3107:        xorl    %esi, %esi
        !          3108:        .p2align 4,,15
        !          3109: .L460:
        !          3110:        cmpl    %esi, %edx
        !          3111:        je      .L453
        !          3112:        flds    -36(%ebp,%edx,8)
        !          3113:        flds    -36(%ebp,%esi,8)
        !          3114:        fxch    %st(1)
        !          3115:        fucom   %st(1)
        !          3116:        fnstsw  %ax
        !          3117:        sahf
        !          3118:        jbe     .L456
        !          3119:        incl    %ecx
        !          3120: .L456:
        !          3121:        fucompp
        !          3122:        fnstsw  %ax
        !          3123:        sahf
        !          3124:        jne     .L453
        !          3125:        jp      .L453
        !          3126:        movl    %esi, %ebx
        !          3127:        .p2align 4,,15
        !          3128: .L453:
        !          3129:        incl    %esi
        !          3130:        cmpl    $3, %esi
        !          3131:        jle     .L460
        !          3132:        cmpl    $2, %ecx
        !          3133:        je      .L467
        !          3134: .L449:
        !          3135:        incl    %edx
        !          3136:        cmpl    $3, %edx
        !          3137:        jle     .L462
        !          3138:        fstp    %st(0)
        !          3139: .L448:
        !          3140:        movl    $8, (%esp)
        !          3141:        call    GetReg
        !          3142:        testl   %eax, %eax
        !          3143:        js      .L468
        !          3144: .L463:
        !          3145:        sarl    $2, %eax
        !          3146:        movl    $4, %ebx
        !          3147:        movl    %eax, 8(%esp)
        !          3148:        leal    -40(%ebp), %eax
        !          3149:        movl    %ebx, 4(%esp)
        !          3150:        movl    %eax, (%esp)
        !          3151:        call    DrawPoly
        !          3152:        addl    $48, %esp
        !          3153:        popl    %ebx
        !          3154:        popl    %esi
        !          3155:        popl    %ebp
        !          3156:        ret
        !          3157: .L468:
        !          3158:        addl    $3, %eax
        !          3159:        jmp     .L463
        !          3160: .L467:
        !          3161:        cmpl    $-1, %ebx
        !          3162:        je      .L449
        !          3163:        flds    -36(%ebp,%ebx,8)
        !          3164:        fsub    %st(1), %st
        !          3165:        fstps   -36(%ebp,%ebx,8)
        !          3166:        flds    -36(%ebp,%edx,8)
        !          3167:        fsubp   %st, %st(1)
        !          3168:        fstps   -36(%ebp,%edx,8)
        !          3169:        jmp     .L448
        !          3170:        .size   Call_DrawQuad, .-Call_DrawQuad
        !          3171:        .p2align 4,,15
        !          3172: .globl Call_DrawTriangle
        !          3173:        .type   Call_DrawTriangle, @function
        !          3174: Call_DrawTriangle:
        !          3175:        pushl   %ebp
        !          3176:        movl    %esp, %ebp
        !          3177:        pushl   %edi
        !          3178:        pushl   %esi
        !          3179:        pushl   %ebx
        !          3180:        subl    $44, %esp
        !          3181:        movl    $8, (%esp)
        !          3182:        call    GetReg
        !          3183:        cwtl
        !          3184:        testl   %eax, %eax
        !          3185:        js      .L471
        !          3186: .L470:
        !          3187:        movl    $5, (%esp)
        !          3188:        sarl    $2, %eax
        !          3189:        movl    %eax, -16(%ebp)
        !          3190:        call    GetReg
        !          3191:        movl    $4, (%esp)
        !          3192:        cwtl
        !          3193:        movl    %eax, -20(%ebp)
        !          3194:        call    GetReg
        !          3195:        movl    $3, (%esp)
        !          3196:        cwtl
        !          3197:        movl    %eax, -24(%ebp)
        !          3198:        call    GetReg
        !          3199:        movl    $2, (%esp)
        !          3200:        movswl  %ax,%ebx
        !          3201:        call    GetReg
        !          3202:        movl    $1, (%esp)
        !          3203:        movswl  %ax,%edi
        !          3204:        call    GetReg
        !          3205:        movl    $0, (%esp)
        !          3206:        movswl  %ax,%esi
        !          3207:        call    GetReg
        !          3208:        movl    %ebx, 12(%esp)
        !          3209:        movl    -16(%ebp), %edx
        !          3210:        cwtl
        !          3211:        movl    %edi, 8(%esp)
        !          3212:        movl    %esi, 4(%esp)
        !          3213:        movl    %edx, 24(%esp)
        !          3214:        movl    -20(%ebp), %edx
        !          3215:        movl    %eax, (%esp)
        !          3216:        movl    %edx, 20(%esp)
        !          3217:        movl    -24(%ebp), %edx
        !          3218:        movl    %edx, 16(%esp)
        !          3219:        call    DrawTriangle
        !          3220:        addl    $44, %esp
        !          3221:        popl    %ebx
        !          3222:        popl    %esi
        !          3223:        popl    %edi
        !          3224:        popl    %ebp
        !          3225:        ret
        !          3226:        .p2align 4,,7
        !          3227: .L471:
        !          3228:        addl    $3, %eax
        !          3229:        jmp     .L470
        !          3230:        .size   Call_DrawTriangle, .-Call_DrawTriangle
        !          3231:        .p2align 4,,15
        !          3232: .globl Call_HostUpdate
        !          3233:        .type   Call_HostUpdate, @function
        !          3234: Call_HostUpdate:
        !          3235:        pushl   %ebp
        !          3236:        movl    %esp, %ebp
        !          3237:        subl    $8, %esp
        !          3238:        call    Keymap_DebounceAllKeys
        !          3239:        call    ShortCut_CheckKeys
        !          3240:        movl    %ebp, %esp
        !          3241:        popl    %ebp
        !          3242:        jmp     Main_EventHandler
        !          3243:        .size   Call_HostUpdate, .-Call_HostUpdate
        !          3244:        .p2align 4,,15
        !          3245:        .type   SetExceptionHandler, @function
        !          3246: SetExceptionHandler:
        !          3247:        pushl   %ebp
        !          3248:        movl    %esp, %ebp
        !          3249:        subl    $8, %esp
        !          3250:        movl    $0, (%esp)
        !          3251:        movl    %ebx, -4(%ebp)
        !          3252:        call    GetReg
        !          3253:        movl    $8, (%esp)
        !          3254:        movl    %eax, %ebx
        !          3255:        andl    $31, %ebx
        !          3256:        call    GetReg
        !          3257:        movl    %eax, exception_handlers(,%ebx,4)
        !          3258:        movl    -4(%ebp), %ebx
        !          3259:        movl    %ebp, %esp
        !          3260:        popl    %ebp
        !          3261:        ret
        !          3262:        .size   SetExceptionHandler, .-SetExceptionHandler
        !          3263:        .section        .rodata.str1.32,"aMS",@progbits,1
        !          3264:        .align 32
        !          3265: .LC16:
        !          3266:        .string " $%x $%x $%x $%x $%x $%x $%x $%x*$%x $%x $%x $%x $%x $%x $%x $%x:%d\n"
        !          3267:        .text
        !          3268:        .p2align 4,,15
        !          3269: .globl DumpMess
        !          3270:        .type   DumpMess, @function
        !          3271: DumpMess:
        !          3272:        pushl   %ebp
        !          3273:        movl    %esp, %ebp
        !          3274:        pushl   %edi
        !          3275:        pushl   %esi
        !          3276:        pushl   %ebx
        !          3277:        subl    $124, %esp
        !          3278:        cmpb    $0, X
        !          3279:        jne     .L485
        !          3280: .L475:
        !          3281:        cmpb    $0, Z
        !          3282:        jne     .L486
        !          3283: .L477:
        !          3284:        cmpb    $0, N
        !          3285:        jne     .L487
        !          3286: .L479:
        !          3287:        cmpb    $0, V
        !          3288:        jne     .L488
        !          3289: .L481:
        !          3290:        cmpb    $0, C
        !          3291:        jne     .L489
        !          3292: .L483:
        !          3293:        movl    $15, (%esp)
        !          3294:        call    GetReg
        !          3295:        movl    %eax, -16(%ebp)
        !          3296:        movl    $14, (%esp)
        !          3297:        call    GetReg
        !          3298:        movl    %eax, -20(%ebp)
        !          3299:        movl    $13, (%esp)
        !          3300:        call    GetReg
        !          3301:        movl    %eax, -24(%ebp)
        !          3302:        movl    $12, (%esp)
        !          3303:        call    GetReg
        !          3304:        movl    %eax, -28(%ebp)
        !          3305:        movl    $11, (%esp)
        !          3306:        call    GetReg
        !          3307:        movl    %eax, -32(%ebp)
        !          3308:        movl    $10, (%esp)
        !          3309:        call    GetReg
        !          3310:        movl    %eax, -36(%ebp)
        !          3311:        movl    $9, (%esp)
        !          3312:        call    GetReg
        !          3313:        movl    %eax, -40(%ebp)
        !          3314:        movl    $8, (%esp)
        !          3315:        call    GetReg
        !          3316:        movl    %eax, -44(%ebp)
        !          3317:        movl    $7, (%esp)
        !          3318:        call    GetReg
        !          3319:        movl    %eax, -48(%ebp)
        !          3320:        movl    $6, (%esp)
        !          3321:        call    GetReg
        !          3322:        movl    %eax, -52(%ebp)
        !          3323:        movl    $5, (%esp)
        !          3324:        call    GetReg
        !          3325:        movl    %eax, -56(%ebp)
        !          3326:        movl    $4, (%esp)
        !          3327:        call    GetReg
        !          3328:        movl    %eax, -60(%ebp)
        !          3329:        movl    $3, (%esp)
        !          3330:        call    GetReg
        !          3331:        movl    $2, (%esp)
        !          3332:        movl    %eax, %edi
        !          3333:        call    GetReg
        !          3334:        movl    $1, (%esp)
        !          3335:        movl    %eax, %esi
        !          3336:        call    GetReg
        !          3337:        movl    $0, (%esp)
        !          3338:        movl    %eax, %ebx
        !          3339:        call    GetReg
        !          3340:        movl    %eax, 4(%esp)
        !          3341:        movl    line_no, %edx
        !          3342:        movl    %edi, 16(%esp)
        !          3343:        movl    %esi, 12(%esp)
        !          3344:        movl    %edx, 68(%esp)
        !          3345:        movl    -16(%ebp), %edx
        !          3346:        movl    %ebx, 8(%esp)
        !          3347:        movl    $.LC16, (%esp)
        !          3348:        movl    %edx, 64(%esp)
        !          3349:        movl    -20(%ebp), %edx
        !          3350:        movl    %edx, 60(%esp)
        !          3351:        movl    -24(%ebp), %edx
        !          3352:        movl    %edx, 56(%esp)
        !          3353:        movl    -28(%ebp), %edx
        !          3354:        movl    %edx, 52(%esp)
        !          3355:        movl    -32(%ebp), %edx
        !          3356:        movl    %edx, 48(%esp)
        !          3357:        movl    -36(%ebp), %edx
        !          3358:        movl    %edx, 44(%esp)
        !          3359:        movl    -40(%ebp), %edx
        !          3360:        movl    %edx, 40(%esp)
        !          3361:        movl    -44(%ebp), %edx
        !          3362:        movl    %edx, 36(%esp)
        !          3363:        movl    -48(%ebp), %edx
        !          3364:        movl    %edx, 32(%esp)
        !          3365:        movl    -52(%ebp), %edx
        !          3366:        movl    %edx, 28(%esp)
        !          3367:        movl    -56(%ebp), %edx
        !          3368:        movl    %edx, 24(%esp)
        !          3369:        movl    -60(%ebp), %edx
        !          3370:        movl    %edx, 20(%esp)
        !          3371:        call    printf
        !          3372:        addl    $124, %esp
        !          3373:        popl    %ebx
        !          3374:        popl    %esi
        !          3375:        popl    %edi
        !          3376:        popl    %ebp
        !          3377:        ret
        !          3378:        .p2align 4,,7
        !          3379: .L489:
        !          3380:        movl    $67, (%esp)
        !          3381:        movl    stdout, %eax
        !          3382:        movl    %eax, 4(%esp)
        !          3383:        call    _IO_putc
        !          3384:        jmp     .L483
        !          3385:        .p2align 4,,7
        !          3386: .L488:
        !          3387:        movl    $86, (%esp)
        !          3388:        movl    stdout, %eax
        !          3389:        movl    %eax, 4(%esp)
        !          3390:        call    _IO_putc
        !          3391:        jmp     .L481
        !          3392:        .p2align 4,,7
        !          3393: .L487:
        !          3394:        movl    $78, (%esp)
        !          3395:        movl    stdout, %eax
        !          3396:        movl    %eax, 4(%esp)
        !          3397:        call    _IO_putc
        !          3398:        jmp     .L479
        !          3399:        .p2align 4,,7
        !          3400: .L486:
        !          3401:        movl    $90, (%esp)
        !          3402:        movl    stdout, %eax
        !          3403:        movl    %eax, 4(%esp)
        !          3404:        call    _IO_putc
        !          3405:        jmp     .L477
        !          3406:        .p2align 4,,7
        !          3407: .L485:
        !          3408:        movl    $88, (%esp)
        !          3409:        movl    stdout, %eax
        !          3410:        movl    %eax, 4(%esp)
        !          3411:        call    _IO_putc
        !          3412:        jmp     .L475
        !          3413:        .size   DumpMess, .-DumpMess
        !          3414:        .local  PrevRegs.0
        !          3415:        .comm   PrevRegs.0,64,32
        !          3416:        .section        .rodata.str1.1
        !          3417: .LC17:
        !          3418:        .string " %c%d:%x"
        !          3419: .LC18:
        !          3420:        .string "(%d)\n"
        !          3421:        .text
        !          3422:        .p2align 4,,15
        !          3423: .globl DumpRegsChanged
        !          3424:        .type   DumpRegsChanged, @function
        !          3425: DumpRegsChanged:
        !          3426:        pushl   %ebp
        !          3427:        movl    %esp, %ebp
        !          3428:        pushl   %esi
        !          3429:        xorl    %esi, %esi
        !          3430:        pushl   %ebx
        !          3431:        subl    $16, %esp
        !          3432:        xorl    %ebx, %ebx
        !          3433:        .p2align 4,,15
        !          3434: .L510:
        !          3435:        movl    %ebx, (%esp)
        !          3436:        call    GetReg
        !          3437:        cmpl    %eax, PrevRegs.0(,%ebx,4)
        !          3438:        je      .L493
        !          3439:        testl   %esi, %esi
        !          3440:        jne     .L496
        !          3441:        cmpb    $0, Z
        !          3442:        jne     .L514
        !          3443: .L497:
        !          3444:        cmpb    $0, V
        !          3445:        jne     .L515
        !          3446: .L499:
        !          3447:        cmpb    $0, C
        !          3448:        jne     .L516
        !          3449: .L501:
        !          3450:        cmpb    $0, N
        !          3451:        jne     .L517
        !          3452: .L503:
        !          3453:        cmpb    $0, X
        !          3454:        jne     .L518
        !          3455: .L505:
        !          3456:        movl    $1, %esi
        !          3457: .L496:
        !          3458:        movl    %ebx, (%esp)
        !          3459:        call    GetReg
        !          3460:        movl    %eax, 12(%esp)
        !          3461:        cmpl    $7, %ebx
        !          3462:        movl    %ebx, %eax
        !          3463:        jle     .L507
        !          3464:        leal    -8(%ebx), %eax
        !          3465: .L507:
        !          3466:        movl    %eax, 8(%esp)
        !          3467:        xorl    %eax, %eax
        !          3468:        cmpl    $7, %ebx
        !          3469:        setle   %al
        !          3470:        movl    $.LC17, (%esp)
        !          3471:        leal    97(%eax,%eax,2), %eax
        !          3472:        movl    %eax, 4(%esp)
        !          3473:        call    printf
        !          3474:        movl    %ebx, (%esp)
        !          3475:        call    GetReg
        !          3476:        movl    %eax, PrevRegs.0(,%ebx,4)
        !          3477: .L493:
        !          3478:        incl    %ebx
        !          3479:        cmpl    $15, %ebx
        !          3480:        jle     .L510
        !          3481:        testl   %esi, %esi
        !          3482:        jne     .L519
        !          3483: .L490:
        !          3484:        addl    $16, %esp
        !          3485:        popl    %ebx
        !          3486:        popl    %esi
        !          3487:        popl    %ebp
        !          3488:        ret
        !          3489: .L519:
        !          3490:        movl    $.LC18, (%esp)
        !          3491:        movl    line_no, %eax
        !          3492:        movl    %eax, 4(%esp)
        !          3493:        call    printf
        !          3494:        jmp     .L490
        !          3495:        .p2align 4,,7
        !          3496: .L518:
        !          3497:        movl    $88, (%esp)
        !          3498:        movl    stdout, %eax
        !          3499:        movl    %eax, 4(%esp)
        !          3500:        call    _IO_putc
        !          3501:        jmp     .L505
        !          3502:        .p2align 4,,7
        !          3503: .L517:
        !          3504:        movl    $78, (%esp)
        !          3505:        movl    stdout, %eax
        !          3506:        movl    %eax, 4(%esp)
        !          3507:        call    _IO_putc
        !          3508:        jmp     .L503
        !          3509:        .p2align 4,,7
        !          3510: .L516:
        !          3511:        movl    $67, (%esp)
        !          3512:        movl    stdout, %eax
        !          3513:        movl    %eax, 4(%esp)
        !          3514:        call    _IO_putc
        !          3515:        jmp     .L501
        !          3516:        .p2align 4,,7
        !          3517: .L515:
        !          3518:        movl    $86, (%esp)
        !          3519:        movl    stdout, %eax
        !          3520:        movl    %eax, 4(%esp)
        !          3521:        call    _IO_putc
        !          3522:        jmp     .L499
        !          3523:        .p2align 4,,7
        !          3524: .L514:
        !          3525:        movl    $90, (%esp)
        !          3526:        movl    stdout, %eax
        !          3527:        movl    %eax, 4(%esp)
        !          3528:        call    _IO_putc
        !          3529:        jmp     .L497
        !          3530:        .size   DumpRegsChanged, .-DumpRegsChanged
        !          3531: .globl hcalls
        !          3532:        .data
        !          3533:        .align 32
        !          3534:        .type   hcalls, @object
        !          3535:        .size   hcalls, 324
        !          3536: hcalls:
        !          3537:        .long   SetExceptionHandler
        !          3538:        .long   Call_Memset
        !          3539:        .long   Call_MemsetBlue
        !          3540:        .long   Call_BlitCursor
        !          3541:        .long   Call_RestoreUnderCursor
        !          3542:        .long   Call_BlitBmp
        !          3543:        .long   Call_OldHLine
        !          3544:        .long   Call_HostUpdate
        !          3545:        .long   Call_Memcpy
        !          3546:        .long   Call_PutPix
        !          3547:        .long   Call_BackHLine
        !          3548:        .long   Call_FillLine
        !          3549:        .long   Call_SetMainPalette
        !          3550:        .long   Call_SetCtrlPalette
        !          3551:        .long   Call_SetScreenBase
        !          3552:        .long   Screen_Draw
        !          3553:        .long   Call_DumpRegs
        !          3554:        .long   Call_MakeExtPalette
        !          3555:        .long   Call_PlaySFX
        !          3556:        .long   Call_GetMouseInput
        !          3557:        .long   Call_GetKeyboardEvent
        !          3558:        .long   0
        !          3559:        .long   Call_HLine
        !          3560:        .long   Call_NotifyOfScrFlip
        !          3561:        .long   Call_NotifyMousePos
        !          3562:        .long   Call_InformScreens
        !          3563:        .long   GemDOS_SetDTA
        !          3564:        .long   Call_DrawStrShadowed
        !          3565:        .long   Call_DrawStr
        !          3566:        .long   Call_DrawTriangle
        !          3567:        .long   Call_DrawQuad
        !          3568:        .long   0
        !          3569:        .long   0
        !          3570:        .long   0
        !          3571:        .long   0
        !          3572:        .long   0
        !          3573:        .long   0
        !          3574:        .long   0
        !          3575:        .long   0
        !          3576:        .long   0
        !          3577:        .long   0
        !          3578:        .long   0
        !          3579:        .long   0
        !          3580:        .long   0
        !          3581:        .long   0
        !          3582:        .long   0
        !          3583:        .long   0
        !          3584:        .long   0
        !          3585:        .long   0
        !          3586:        .long   0
        !          3587:        .long   0
        !          3588:        .long   0
        !          3589:        .long   0
        !          3590:        .long   0
        !          3591:        .long   0
        !          3592:        .long   0
        !          3593:        .long   0
        !          3594:        .long   0
        !          3595:        .long   0
        !          3596:        .long   0
        !          3597:        .long   GemDOS_Create
        !          3598:        .long   GemDOS_Open
        !          3599:        .long   GemDOS_Close
        !          3600:        .long   GemDOS_Read
        !          3601:        .long   GemDOS_Write
        !          3602:        .long   GemDOS_UnLink
        !          3603:        .long   0
        !          3604:        .long   0
        !          3605:        .long   0
        !          3606:        .long   0
        !          3607:        .long   0
        !          3608:        .long   0
        !          3609:        .long   0
        !          3610:        .long   0
        !          3611:        .long   0
        !          3612:        .long   0
        !          3613:        .long   0
        !          3614:        .long   0
        !          3615:        .long   GemDOS_SFirst
        !          3616:        .long   GemDOS_SNext
        !          3617:        .long   0
        !          3618:        .comm   emudrive,516,32
        !          3619:        .comm   FileHandles,8448,32
        !          3620:        .comm   InternalDTAs,69632,32
        !          3621:        .comm   DTAIndex,4,4
        !          3622:        .comm   pDTA,4,4
        !          3623:        .comm   under_mouse,256,32
        !          3624:        .comm   len_working_ext_pal,4,4
        !          3625:        .comm   working_ext_pal,480,32
        !          3626:        .section        .note.GNU-stack,"",@progbits
        !          3627:        .ident  "GCC: (GNU) 3.3.5 (Debian 1:3.3.5-8)"

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.