; generated by Norcroft RISC OS ARM C vsn 5.09 (Acorn Computers Ltd)  [Sep  3 1998]

        AREA |C$$code|, CODE, READONLY
|x$codeseg|

        EXPORT  D_WarpScreen
D_WarpScreen
        STMDB    sp!,{v1-v6,lr}
        LDR      v2,[pc, #L0001d4-.-8]
        LDR      a1,[v2,#&c]
        LDR      a2,[v2,#8]
        STR      a1,[sp,#-4]!
        LDR      a1,[pc, #L0001d8-.-8]
        LDR      a3,[a1,#&20]
        LDR      v1,[pc, #L0001dc-.-8]
        LDR      a4,[pc, #L0001e0-.-8]
        TEQ      a2,a3
        LDREQ    ip,[sp,#0]
        LDREQ    a3,[a1,#&24]
        TEQEQ    ip,a3
        BEQ      |L0000dc.J4.D_WarpScreen|
        STR      a2,[a1,#&20]
        LDR      a3,[sp,#0]
        STR      a3,[a1,#&24]!
        MOV      a1,#0
        LDR      a3,[sp,#0]
        ADD      a3,a3,#6
        LDR      lr,[pc, #L0001e4-.-8]
        CMP      a3,#0
        BLE      |L00009c.J9.D_WarpScreen|
        LDR      ip,[sp,#0]
        ADD      ip,ip,#6
        FLTS     f1,ip
        LDR      v3,[pc, #L0001e8-.-8]
        LDR      ip,[lr,#&c]
        FLTS     f0,ip
|L000074.J8.D_WarpScreen|
        FLTS     f2,a1
        DVFS     f2,f2,f1
        MUFS     f2,f2,f0
        FIXSZ    v4,f2
        ADD      ip,v4,v4,LSL #2
        ADD      ip,v3,ip,LSL #6
        STR      ip,[v1,a1,LSL #2]
        ADD      a1,a1,#1
        CMP      a3,a1
        BGT      |L000074.J8.D_WarpScreen|
|L00009c.J9.D_WarpScreen|
        MOV      a3,#0
        ADD      a1,a2,#6
        CMP      a1,#0
        BLE      |L0000dc.J4.D_WarpScreen|
        ADD      ip,a2,#6
        FLTS     f1,ip
        LDR      ip,[lr,#8]!
        FLTS     f0,ip
|L0000bc.J12.D_WarpScreen|
        FLTS     f2,a3
        DVFS     f2,f2,f1
        MUFS     f2,f2,f0
        FIXSZ    ip,f2
        STR      ip,[a4,a3,LSL #2]
        ADD      a3,a3,#1
        CMP      a1,a3
        BGT      |L0000bc.J12.D_WarpScreen|
|L0000dc.J4.D_WarpScreen|
        LDFS     f1,[v2,#&40]
        LDFS     f0,[pc, #L0001ec-.-8]
        MUFS     f0,f1,f0
        FIXSZ    a1,f0
        AND      a3,a1,#&7f
        LDR      a1,[pc, #L0001f0-.-8]
        ADD      lr,a1,a3,LSL #2
        LDR      ip,[v2,#4]
        LDR      a3,[pc, #L0001f4-.-8]
        LDR      a1,[a3,#&c]
        MUL      ip,a1,ip
        LDR      a1,[a3,#0]
        ADD      a1,ip,a1
        LDR      ip,[v2,#0]
        ADD      ip,a1,ip
        MOV      a1,#0
        LDR      v2,[sp,#0]
        CMP      v2,#0
        BLE      |L0001cc.J17.D_WarpScreen|
|L000128.J16.D_WarpScreen|
        LDR      a3,[lr,a1,LSL #2]
        LDR      a4,[pc, #L0001e0-.-8]
        ADD      v3,a4,a3,LSL #2
        LDR      a3,[pc, #L0001dc-.-8]
        ADD      a4,a3,a1,LSL #2
        MOV      a3,#0
        CMP      a2,#0
        BLE      |L0001b0.J20.D_WarpScreen|
|L000148.J19.D_WarpScreen|
        LDR      v1,[lr,a3,LSL #2]
        LDR      v1,[a4,v1,LSL #2]
        LDR      v2,[v3,a3,LSL #2]
        LDRB     v1,[v1,v2]
        STRB     v1,[ip,a3]
        ADD      v4,lr,a3,LSL #2
        LDR      v1,[v4,#4]
        LDR      v1,[a4,v1,LSL #2]
        ADD      v2,v3,a3,LSL #2
        LDR      v5,[v2,#4]
        LDRB     v5,[v1,v5]
        ADD      v1,ip,a3
        STRB     v5,[v1,#1]
        LDR      v5,[v4,#8]
        LDR      v5,[a4,v5,LSL #2]
        LDR      v6,[v2,#8]
        LDRB     v5,[v5,v6]
        STRB     v5,[v1,#2]
        LDR      v4,[v4,#&c]
        LDR      v4,[a4,v4,LSL #2]
        LDR      v2,[v2,#&c]
        LDRB     v2,[v4,v2]
        STRB     v2,[v1,#3]
        ADD      a3,a3,#4
        CMP      a3,a2
        BLT      |L000148.J19.D_WarpScreen|
|L0001b0.J20.D_WarpScreen|
        ADD      a1,a1,#1
        LDR      a3,[pc, #L0001f4-.-8]
        LDR      a3,[a3,#&c]
        ADD      ip,ip,a3
        LDR      a3,[sp,#0]
        CMP      a1,a3
        BLT      |L000128.J16.D_WarpScreen|
|L0001cc.J17.D_WarpScreen|
        ADD      sp,sp,#4
        LDMIA    sp!,{v1-v6,pc}^
L0001d4
        IMPORT  r_newrefdef
        DCD     r_newrefdef
L0001d8
        DCD     |x$dataseg|
L0001dc
        DCD     |x$bssseg|
L0001e0
        DCD     |x$bssseg|+&12d8
L0001e4
        IMPORT  r_refdef
        DCD     r_refdef
L0001e8
        IMPORT  r_warpbuffer
        DCD     r_warpbuffer
L0001ec
        DCFS    20.0
L0001f0
        IMPORT  intsintable
        DCD     intsintable
L0001f4
        IMPORT  vid
        DCD     vid

        EXPORT  D_DrawTurbulent8Span
D_DrawTurbulent8Span
        STMDB    sp!,{v1,lr}
        LDR      a1,[pc, #L0001d8-.-8]
        MOV      a3,#&7f
        MOV      a2,#&3f
|L000208.J4.D_DrawTurbulent8Span|
        LDR      lr,[a1,#&c]
        AND      a4,a3,lr,ASR #16
        LDR      ip,[a1,#&18]
        LDR      v1,[ip,a4,LSL #2]
        LDR      a4,[a1,#8]
        ADD      v1,v1,a4
        AND      v1,a2,v1,ASR #16
        AND      a4,a3,a4,ASR #16
        LDR      a4,[ip,a4,LSL #2]
        ADD      a4,a4,lr
        AND      a4,a2,a4,ASR #16
        LDR      ip,[a1,#0]
        ADD      a4,ip,a4,LSL #6
        LDRB     ip,[a4,v1]
        LDR      a4,[a1,#4]
        STRB     ip,[a4],#1
        STR      a4,[a1,#4]
        LDR      a4,[a1,#8]
        LDR      ip,[a1,#&10]
        ADD      a4,a4,ip
        STR      a4,[a1,#8]
        LDR      a4,[a1,#&14]
        LDR      ip,[a1,#&c]
        ADD      a4,ip,a4
        STR      a4,[a1,#&c]
        LDR      a4,[a1,#&1c]
        SUB      a4,a4,#1
        STR      a4,[a1,#&1c]
        CMP      a4,#0
        BGT      |L000208.J4.D_DrawTurbulent8Span|
        LDMIA    sp!,{v1,pc}^

        DCB     &54,&75,&72,&62
        DCB     &75,&6c,&65,&6e
        DCB     &74,&38,&00,&00
        DCD     &ff00000c

        IMPORT  __rt_stkovf_split_small
        IMPORT  __rt_sdiv
        EXPORT  Turbulent8
Turbulent8
        MOV      ip,sp
        STMDB    sp!,{a1,v1-v6,fp,ip,lr,pc}
        SUB      fp,ip,#4
        STFE     f7,[sp,#-&c]!
        STFE     f6,[sp,#-&c]!
        STFE     f5,[sp,#-&c]!
        STFE     f4,[sp,#-&c]!
        CMP      sp,sl
        BLLT     __rt_stkovf_split_small
        MOV      v1,a1
        SUB      sp,sp,#&c
        LDR      a1,[pc, #L0001d4-.-8]
        LDFS     f1,[a1,#&40]
        LDFS     f0,[pc, #L0001ec-.-8]
        MUFS     f0,f1,f0
        FIXSZ    a1,f0
        AND      a2,a1,#&7f
        LDR      a1,[pc, #L00041c-.-8]
        ADD      a1,a1,a2,LSL #2
        LDR      v5,[pc, #L0001d8-.-8]
        MOV      a4,#0
        STR      a1,[v5,#&18]
        STR      a4,[v5,#&10]
        STR      a4,[v5,#&14]
        LDR      a1,[pc, #L000420-.-8]
        LDR      a1,[a1,#0]
        STR      a1,[v5,#0]
        LDR      a3,[pc, #L000424-.-8]
        LDFS     f1,[a3,#0]
        LDFS     f0,[pc, #L000428-.-8]
        MUFS     f1,f1,f0
        STFS     f1,[sp,#8]
        LDR      a2,[pc, #L00042c-.-8]
        LDFS     f1,[a2,#0]
        MUFS     f1,f1,f0
        STFS     f1,[sp,#4]
        LDR      a1,[pc, #L000430-.-8]
        LDFS     f1,[a1,#0]
        MUFS     f0,f1,f0
        STFS     f0,[sp,#0]
        LDFS     f7,[pc, #L000434-.-8]
|L000338.J4.Turbulent8|
        LDR      a1,[pc, #L000438-.-8]
        LDR      a1,[a1,#0]
        LDR      a2,[v1,#4]
        MUL      a1,a2,a1
        LDR      a2,[pc, #L00043c-.-8]
        LDR      a2,[a2,#0]
        ADD      a1,a1,a2
        LDR      a2,[v1,#0]
        ADD      a1,a1,a2
        STR      a1,[v5,#4]
        LDR      a1,[v1,#0]
        FLTS     f0,a1
        LDMIB    v1,{a1,v4}
        FLTS     f1,a1
        LDR      a1,[pc, #L000440-.-8]
        LDFS     f2,[a1,#0]
        MUFS     f2,f1,f2
        LDR      a1,[pc, #L000444-.-8]
        LDFS     f3,[a1,#0]
        ADFS     f3,f2,f3
        LDR      v2,[pc, #L000424-.-8]
        LDFS     f2,[v2,#0]
        MUFS     f2,f0,f2
        ADFS     f5,f3,f2
        LDR      a1,[pc, #L000448-.-8]
        LDFS     f2,[a1,#0]
        MUFS     f3,f1,f2
        LDR      a1,[pc, #L00044c-.-8]
        LDFS     f2,[a1,#0]
        ADFS     f3,f3,f2
        LDR      lr,[pc, #L00042c-.-8]
        LDFS     f2,[lr,#0]
        MUFS     f2,f0,f2
        ADFS     f4,f3,f2
        LDR      a1,[pc, #L000450-.-8]
        LDFS     f2,[a1,#0]
        MUFS     f2,f1,f2
        LDR      a1,[pc, #L000454-.-8]
        LDFS     f1,[a1,#0]
        ADFS     f1,f2,f1
        LDR      ip,[pc, #L000430-.-8]
        LDFS     f2,[ip,#0]
        MUFS     f0,f0,f2
        ADFS     f6,f1,f0
        DVFS     f0,f7,f6
        MUFS     f1,f5,f0
        FIXSZ    a1,f1
        LDR      a4,[pc, #L000458-.-8]
        LDR      a2,[a4,#0]
        ADD      a2,a1,a2
        STR      a2,[v5,#8]
        LDR      a3,[pc, #L00045c-.-8]
        LDR      a1,[a3,#0]
        CMP      a2,a1
        BLE      |L000460.J5.Turbulent8|
|L000414.J6.Turbulent8|
        STR      a1,[v5,#8]
        B        |L00046c.J7.Turbulent8|
L00041c
        IMPORT  sintable
        DCD     sintable
L000420
        IMPORT  cacheblock
        DCD     cacheblock
L000424
        IMPORT  d_sdivzstepu
        DCD     d_sdivzstepu
L000428
        DCFS    16.0
L00042c
        IMPORT  d_tdivzstepu
        DCD     d_tdivzstepu
L000430
        IMPORT  d_zistepu
        DCD     d_zistepu
L000434
        DCFS    65536.0
L000438
        IMPORT  r_screenwidth
        DCD     r_screenwidth
L00043c
        IMPORT  d_viewbuffer
        DCD     d_viewbuffer
L000440
        IMPORT  d_sdivzstepv
        DCD     d_sdivzstepv
L000444
        IMPORT  d_sdivzorigin
        DCD     d_sdivzorigin
L000448
        IMPORT  d_tdivzstepv
        DCD     d_tdivzstepv
L00044c
        IMPORT  d_tdivzorigin
        DCD     d_tdivzorigin
L000450
        IMPORT  d_zistepv
        DCD     d_zistepv
L000454
        IMPORT  d_ziorigin
        DCD     d_ziorigin
L000458
        IMPORT  sadjust
        DCD     sadjust
L00045c
        IMPORT  bbextents
        DCD     bbextents
|L000460.J5.Turbulent8|
        CMP      a2,#0
        MOVLT    a1,#0
        BLT      |L000414.J6.Turbulent8|
|L00046c.J7.Turbulent8|
        MUFS     f0,f4,f0
        FIXSZ    a1,f0
        LDR      a2,[pc, #L00049c-.-8]
        LDR      v3,[a2,#0]
        ADD      v6,a1,v3
        STR      v6,[v5,#&c]
        LDR      a1,[pc, #L0004a0-.-8]
        LDR      v3,[a1,#0]
        CMP      v6,v3
        BLE      |L0004a4.J10.Turbulent8|
|L000494.J11.Turbulent8|
        STR      v3,[v5,#&c]
        B        |L0004b0.J15.Turbulent8|
L00049c
        IMPORT  tadjust
        DCD     tadjust
L0004a0
        IMPORT  bbextentt
        DCD     bbextentt
|L0004a4.J10.Turbulent8|
        CMP      v6,#0
        MOVLT    v3,#0
        BLT      |L000494.J11.Turbulent8|
|L0004b0.J15.Turbulent8|
        CMP      v4,#&10
        STRLT    v4,[v5,#&1c]
        MOVGE    a1,#&10
        STRGE    a1,[v5,#&1c]
        LDR      a1,[v5,#&1c]
        SUBS     v4,v4,a1
        BEQ      |L000568.J19.Turbulent8|
        LDFS     f0,[sp,#8]
        ADFS     f5,f5,f0
        LDFS     f0,[sp,#4]
        ADFS     f4,f4,f0
        LDFS     f0,[sp,#0]
        ADFS     f6,f6,f0
        DVFS     f0,f7,f6
        MUFS     f1,f5,f0
        FIXSZ    a2,f1
        LDR      a1,[pc, #L000458-.-8]
        LDR      a1,[a1,#0]
        ADD      v3,a2,a1
        LDR      a1,[pc, #L00045c-.-8]
        LDR      a1,[a1,#0]
        CMP      v3,a1
        MOVGT    v3,a1
        BGT      |L000518.J23.Turbulent8|
        CMP      v3,#&10
        MOVLT    v3,#&10
|L000518.J23.Turbulent8|
        MUFS     f0,f4,f0
        FIXSZ    a2,f0
        LDR      a1,[pc, #L00049c-.-8]
        LDR      a1,[a1,#0]
        ADD      v2,a2,a1
        LDR      a1,[pc, #L0004a0-.-8]
        LDR      a1,[a1,#0]
        CMP      v2,a1
        MOVGT    v2,a1
        BGT      |L000548.J28.Turbulent8|
        CMP      v2,#&10
        MOVLT    v2,#&10
|L000548.J28.Turbulent8|
        LDR      a1,[v5,#8]
        SUB      a1,v3,a1
        MOV      a1,a1,ASR #4
        STR      a1,[v5,#&10]
        LDR      a1,[v5,#&c]
        SUB      a1,v2,a1
        MOV      a1,a1,ASR #4
        B        |L000630.J50.Turbulent8|
|L000568.J19.Turbulent8|
        SUB      v6,a1,#1
        FLTS     f0,v6
        LDR      a2,[pc, #L000424-.-8]
        LDFS     f1,[a2,#0]
        MUFS     f1,f1,f0
        ADFS     f5,f1,f5
        LDR      a2,[pc, #L00042c-.-8]
        LDFS     f1,[a2,#0]
        MUFS     f1,f1,f0
        ADFS     f4,f1,f4
        LDR      a2,[pc, #L000430-.-8]
        LDFS     f1,[a2,#0]
        MUFS     f0,f1,f0
        ADFS     f6,f0,f6
        DVFS     f0,f7,f6
        MUFS     f1,f5,f0
        FIXSZ    a3,f1
        LDR      a2,[pc, #L000458-.-8]
        LDR      a2,[a2,#0]
        ADD      v3,a3,a2
        LDR      a2,[pc, #L00045c-.-8]
        LDR      a2,[a2,#0]
        CMP      v3,a2
        MOVGT    v3,a2
        BGT      |L0005d4.J34.Turbulent8|
        CMP      v3,#&10
        MOVLT    v3,#&10
|L0005d4.J34.Turbulent8|
        MUFS     f0,f4,f0
        FIXSZ    a3,f0
        LDR      a2,[pc, #L00049c-.-8]
        LDR      a2,[a2,#0]
        ADD      v2,a3,a2
        LDR      a2,[pc, #L0004a0-.-8]
        LDR      a2,[a2,#0]
        CMP      v2,a2
        MOVGT    v2,a2
        BGT      |L000604.J39.Turbulent8|
        CMP      v2,#&10
        MOVLT    v2,#&10
|L000604.J39.Turbulent8|
        CMP      a1,#1
        BLE      |L000634.J31.Turbulent8|
        LDR      a1,[v5,#8]
        SUB      a2,v3,a1
        MOV      a1,v6
        BL       __rt_sdiv
        STR      a1,[v5,#&10]
        LDR      a1,[v5,#&c]
        SUB      a2,v2,a1
        MOV      a1,v6
        BL       __rt_sdiv
|L000630.J50.Turbulent8|
        STR      a1,[v5,#&14]
|L000634.J31.Turbulent8|
        LDR      a1,[v5,#8]
        MOV      a1,a1,LSL #9
        MOV      a1,a1,LSR #9
        STR      a1,[v5,#8]
        LDR      a1,[v5,#&c]
        MOV      a1,a1,LSL #9
        MOV      a1,a1,LSR #9
        STR      a1,[v5,#&c]
        BL       D_DrawTurbulent8Span
        CMP      v4,#0
        STR      v2,[v5,#&c]
        STR      v3,[v5,#8]
        BGT      |L0004b0.J15.Turbulent8|
        LDR      v1,[v1,#&c]
        TEQ      v1,#0
        BNE      |L000338.J4.Turbulent8|
        LDFE     f4,[fp,#-&58]
        LDFE     f5,[fp,#-&4c]
        LDFE     f6,[fp,#-&40]
        LDFE     f7,[fp,#-&34]
        LDMDB    fp,{v1-v6,fp,sp,pc}^

        DCB     &4e,&6f,&6e,&54
        DCB     &75,&72,&62,&75
        DCB     &6c,&65,&6e,&74
        DCB     &38,&00,&00,&00
        DCD     &ff000010

        EXPORT  NonTurbulent8
NonTurbulent8
        MOV      ip,sp
        STMDB    sp!,{a1,v1-v6,fp,ip,lr,pc}
        SUB      fp,ip,#4
        STFE     f7,[sp,#-&c]!
        STFE     f6,[sp,#-&c]!
        STFE     f5,[sp,#-&c]!
        STFE     f4,[sp,#-&c]!
        CMP      sp,sl
        BLLT     __rt_stkovf_split_small
        MOV      v1,a1
        SUB      sp,sp,#&c
        LDR      a1,[pc, #L000840-.-8]
        LDR      v5,[pc, #L0001d8-.-8]
        MOV      a4,#0
        STR      a1,[v5,#&18]
        STR      a4,[v5,#&10]
        STR      a4,[v5,#&14]
        LDR      a1,[pc, #L000420-.-8]
        LDR      a1,[a1,#0]
        STR      a1,[v5,#0]
        LDR      a3,[pc, #L000424-.-8]
        LDFS     f1,[a3,#0]
        LDFS     f0,[pc, #L000428-.-8]
        MUFS     f1,f1,f0
        STFS     f1,[sp,#8]
        LDR      a2,[pc, #L00042c-.-8]
        LDFS     f1,[a2,#0]
        MUFS     f1,f1,f0
        STFS     f1,[sp,#4]
        LDR      a1,[pc, #L000430-.-8]
        LDFS     f1,[a1,#0]
        MUFS     f0,f1,f0
        STFS     f0,[sp,#0]
        LDFS     f7,[pc, #L000434-.-8]
|L000724.J4.NonTurbulent8|
        LDR      a1,[pc, #L000438-.-8]
        LDR      a1,[a1,#0]
        LDR      a2,[v1,#4]
        MUL      a1,a2,a1
        LDR      a2,[pc, #L00043c-.-8]
        LDR      a2,[a2,#0]
        ADD      a1,a1,a2
        LDR      a2,[v1,#0]
        ADD      a1,a1,a2
        STR      a1,[v5,#4]
        LDR      a1,[v1,#0]
        FLTS     f0,a1
        LDMIB    v1,{a1,v4}
        FLTS     f1,a1
        LDR      a1,[pc, #L000440-.-8]
        LDFS     f2,[a1,#0]
        MUFS     f3,f1,f2
        LDR      a1,[pc, #L000444-.-8]
        LDFS     f2,[a1,#0]
        ADFS     f3,f3,f2
        LDR      v2,[pc, #L000424-.-8]
        LDFS     f2,[v2,#0]
        MUFS     f2,f0,f2
        ADFS     f5,f3,f2
        LDR      a1,[pc, #L000448-.-8]
        LDFS     f2,[a1,#0]
        MUFS     f3,f1,f2
        LDR      a1,[pc, #L00044c-.-8]
        LDFS     f2,[a1,#0]
        ADFS     f3,f3,f2
        LDR      lr,[pc, #L00042c-.-8]
        LDFS     f2,[lr,#0]
        MUFS     f2,f0,f2
        ADFS     f4,f3,f2
        LDR      a1,[pc, #L000450-.-8]
        LDFS     f2,[a1,#0]
        MUFS     f2,f1,f2
        LDR      a1,[pc, #L000454-.-8]
        LDFS     f1,[a1,#0]
        ADFS     f1,f2,f1
        LDR      ip,[pc, #L000430-.-8]
        LDFS     f2,[ip,#0]
        MUFS     f0,f0,f2
        ADFS     f6,f1,f0
        DVFS     f0,f7,f6
        MUFS     f1,f5,f0
        FIXSZ    a2,f1
        LDR      a4,[pc, #L000458-.-8]
        LDR      a1,[a4,#0]
        ADD      a1,a2,a1
        STR      a1,[v5,#8]
        LDR      a3,[pc, #L00045c-.-8]
        LDR      a2,[a3,#0]
        CMP      a1,a2
        STRGT    a2,[v5,#8]
        BGT      |L000810.J7.NonTurbulent8|
        CMP      a1,#0
        MOVLT    a1,#0
        STRLT    a1,[v5,#8]
|L000810.J7.NonTurbulent8|
        MUFS     f0,f4,f0
        FIXSZ    a1,f0
        LDR      a2,[pc, #L00049c-.-8]
        LDR      v3,[a2,#0]
        ADD      v6,a1,v3
        STR      v6,[v5,#&c]
        LDR      a1,[pc, #L0004a0-.-8]
        LDR      v3,[a1,#0]
        CMP      v6,v3
        BLE      |L000844.J10.NonTurbulent8|
|L000838.J11.NonTurbulent8|
        STR      v3,[v5,#&c]
        B        |L000850.J15.NonTurbulent8|
L000840
        IMPORT  blanktable
        DCD     blanktable
|L000844.J10.NonTurbulent8|
        CMP      v6,#0
        MOVLT    v3,#0
        BLT      |L000838.J11.NonTurbulent8|
|L000850.J15.NonTurbulent8|
        CMP      v4,#&10
        STRLT    v4,[v5,#&1c]
        MOVGE    a1,#&10
        STRGE    a1,[v5,#&1c]
        LDR      a1,[v5,#&1c]
        SUBS     v4,v4,a1
        BEQ      |L000908.J19.NonTurbulent8|
        LDFS     f0,[sp,#8]
        ADFS     f5,f5,f0
        LDFS     f0,[sp,#4]
        ADFS     f4,f4,f0
        LDFS     f0,[sp,#0]
        ADFS     f6,f6,f0
        DVFS     f0,f7,f6
        MUFS     f1,f5,f0
        FIXSZ    a1,f1
        LDR      a2,[pc, #L000458-.-8]
        LDR      a2,[a2,#0]
        ADD      v3,a1,a2
        LDR      a1,[pc, #L00045c-.-8]
        LDR      a1,[a1,#0]
        CMP      v3,a1
        MOVGT    v3,a1
        BGT      |L0008b8.J23.NonTurbulent8|
        CMP      v3,#&10
        MOVLT    v3,#&10
|L0008b8.J23.NonTurbulent8|
        MUFS     f0,f4,f0
        FIXSZ    a1,f0
        LDR      a2,[pc, #L00049c-.-8]
        LDR      a2,[a2,#0]
        ADD      v2,a1,a2
        LDR      a1,[pc, #L0004a0-.-8]
        LDR      a1,[a1,#0]
        CMP      v2,a1
        MOVGT    v2,a1
        BGT      |L0008e8.J28.NonTurbulent8|
        CMP      v2,#&10
        MOVLT    v2,#&10
|L0008e8.J28.NonTurbulent8|
        LDR      a1,[v5,#8]
        SUB      a1,v3,a1
        MOV      a1,a1,ASR #4
        STR      a1,[v5,#&10]
        LDR      a1,[v5,#&c]
        SUB      a1,v2,a1
        MOV      a1,a1,ASR #4
        B        |L0009d0.J50.NonTurbulent8|
|L000908.J19.NonTurbulent8|
        SUB      v6,a1,#1
        FLTS     f0,v6
        LDR      a2,[pc, #L000424-.-8]
        LDFS     f1,[a2,#0]
        MUFS     f1,f1,f0
        ADFS     f5,f1,f5
        LDR      a2,[pc, #L00042c-.-8]
        LDFS     f1,[a2,#0]
        MUFS     f1,f1,f0
        ADFS     f4,f1,f4
        LDR      a2,[pc, #L000430-.-8]
        LDFS     f1,[a2,#0]
        MUFS     f0,f1,f0
        ADFS     f6,f0,f6
        DVFS     f0,f7,f6
        MUFS     f1,f5,f0
        FIXSZ    a3,f1
        LDR      a2,[pc, #L000458-.-8]
        LDR      a2,[a2,#0]
        ADD      v3,a3,a2
        LDR      a2,[pc, #L00045c-.-8]
        LDR      a2,[a2,#0]
        CMP      v3,a2
        MOVGT    v3,a2
        BGT      |L000974.J34.NonTurbulent8|
        CMP      v3,#&10
        MOVLT    v3,#&10
|L000974.J34.NonTurbulent8|
        MUFS     f0,f4,f0
        FIXSZ    a2,f0
        LDR      a3,[pc, #L00049c-.-8]
        LDR      a3,[a3,#0]
        ADD      v2,a2,a3
        LDR      a2,[pc, #L0004a0-.-8]
        LDR      a2,[a2,#0]
        CMP      v2,a2
        MOVGT    v2,a2
        BGT      |L0009a4.J39.NonTurbulent8|
        CMP      v2,#&10
        MOVLT    v2,#&10
|L0009a4.J39.NonTurbulent8|
        CMP      a1,#1
        BLE      |L0009d4.J31.NonTurbulent8|
        LDR      a1,[v5,#8]
        SUB      a2,v3,a1
        MOV      a1,v6
        BL       __rt_sdiv
        STR      a1,[v5,#&10]
        LDR      a1,[v5,#&c]
        SUB      a2,v2,a1
        MOV      a1,v6
        BL       __rt_sdiv
|L0009d0.J50.NonTurbulent8|
        STR      a1,[v5,#&14]
|L0009d4.J31.NonTurbulent8|
        LDR      a1,[v5,#8]
        MOV      a1,a1,LSL #9
        MOV      a1,a1,LSR #9
        STR      a1,[v5,#8]
        LDR      a1,[v5,#&c]
        MOV      a1,a1,LSL #9
        MOV      a1,a1,LSR #9
        STR      a1,[v5,#&c]
        BL       D_DrawTurbulent8Span
        CMP      v4,#0
        STR      v2,[v5,#&c]
        STR      v3,[v5,#8]
        BGT      |L000850.J15.NonTurbulent8|
        LDR      v1,[v1,#&c]
        TEQ      v1,#0
        BNE      |L000724.J4.NonTurbulent8|
        LDFE     f4,[fp,#-&58]
        LDFE     f5,[fp,#-&4c]
        LDFE     f6,[fp,#-&40]
        LDFE     f7,[fp,#-&34]
        LDMDB    fp,{v1-v6,fp,sp,pc}^

        DCB     &55,&70,&64,&61
        DCB     &74,&65,&46,&69
        DCB     &78,&65,&64,&50
        DCB     &6f,&69,&6e,&74
        DCB     &56,&61,&72,&73
        DCB     &00,&00,&00,&00
        DCD     &ff000018

        IMPORT  FIX_FLOAT_MEM_SL
        EXPORT  UpdateFixedPointVars
UpdateFixedPointVars
        MOV      ip,sp
        STMDB    sp!,{a1,v1,fp,ip,lr,pc}
        SUB      fp,ip,#4
        CMP      sp,sl
        BLLT     __rt_stkovf_split_small
        LDR      v1,[pc, #L0001d8-.-8]
        TEQ      a1,#0
        BEQ      |L000ad8.J4.UpdateFixedPointVars|
        LDR      a1,[pc, #L000444-.-8]
        MOV      a2,#&16
        BL       FIX_FLOAT_MEM_SL
        STR      a1,[v1,#&34]
        LDR      a1,[pc, #L00044c-.-8]
        MOV      a2,#&16
        BL       FIX_FLOAT_MEM_SL
        STR      a1,[v1,#&44]
        LDR      a1,[pc, #L000440-.-8]
        MOV      a2,#&16
        BL       FIX_FLOAT_MEM_SL
        STR      a1,[v1,#&38]
        LDR      a1,[pc, #L000448-.-8]
        MOV      a2,#&16
        BL       FIX_FLOAT_MEM_SL
        STR      a1,[v1,#&48]
        LDR      a1,[pc, #L000424-.-8]
        MOV      a2,#&16
        BL       FIX_FLOAT_MEM_SL
        STR      a1,[v1,#&3c]
        LDR      a1,[pc, #L00042c-.-8]
        MOV      a2,#&16
        BL       FIX_FLOAT_MEM_SL
        STR      a1,[v1,#&4c]
        LDR      a2,[v1,#&3c]
        MOV      a2,a2,LSL #4
        MOV      a1,a1,LSL #4
        STR      a1,[v1,#&50]
        STR      a2,[v1,#&40]
|L000ad8.J4.UpdateFixedPointVars|
        LDR      a1,[pc, #L000454-.-8]
        MOV      a2,#&16
        BL       FIX_FLOAT_MEM_SL
        STR      a1,[v1,#&30]
        LDR      a1,[pc, #L000450-.-8]
        MOV      a2,#&16
        BL       FIX_FLOAT_MEM_SL
        STR      a1,[v1,#&2c]
        LDR      a1,[pc, #L000430-.-8]
        MOV      a2,#&16
        BL       FIX_FLOAT_MEM_SL
        STR      a1,[v1,#&28]
        MOV      a1,a1,LSL #4
        STR      a1,[v1,#&54]!
        LDMDB    fp,{v1,fp,sp,pc}^

        DCB     &44,&5f,&44,&72
        DCB     &61,&77,&53,&70
        DCB     &61,&6e,&73,&31
        DCB     &36,&00,&00,&00
        DCD     &ff000010

        EXPORT  D_DrawSpans16
D_DrawSpans16
        MOV      ip,sp
        STMDB    sp!,{a1,v1-v6,fp,ip,lr,pc}
        SUB      fp,ip,#4
        CMP      sp,sl
        BLLT     __rt_stkovf_split_small
        SUB      sp,sp,#&20
        LDR      a1,[pc, #L000420-.-8]
        LDR      a1,[a1,#0]
        STR      a1,[sp,#&14]
        MOV      a1,#1
        BL       UpdateFixedPointVars
|L000b54.J4.D_DrawSpans16|
        LDR      a1,[pc, #L000438-.-8]
        LDR      a1,[a1,#0]
        LDR      a2,[fp,#-&28]
        LDR      a2,[a2,#4]
        MUL      a1,a2,a1
        LDR      a3,[pc, #L00043c-.-8]
        LDR      a3,[a3,#0]
        ADD      a3,a1,a3
        LDR      a1,[fp,#-&28]
        LDR      a1,[a1,#0]
        ADD      a3,a3,a1
        STR      a3,[sp,#&10]
        LDR      a3,[fp,#-&28]
        LDR      a3,[a3,#8]
        STR      a3,[sp,#&18]
        LDR      v6,[pc, #L0001d8-.-8]
        LDR      a4,[v6,#&38]
        MUL      a3,a4,a2
        LDR      a4,[v6,#&34]
        ADD      ip,a3,a4
        LDR      a4,[v6,#&3c]
        MLA      a3,a4,a1,ip
        STR      a3,[sp,#&c]
        LDR      a4,[v6,#&48]
        MUL      a3,a4,a2
        LDR      a4,[v6,#&44]
        ADD      ip,a3,a4
        LDR      a4,[v6,#&4c]
        MLA      a3,a4,a1,ip
        STR      a3,[sp,#8]
        LDR      a3,[v6,#&2c]
        MUL      a2,a3,a2
        LDR      a3,[v6,#&30]
        ADD      a2,a2,a3
        LDR      a3,[v6,#&28]
        MLAS     v1,a3,a1,a2
        MOVEQ    v1,#1
        LDR      a1,[sp,#&c]
        MOV      a2,a1,LSL #8
        MOV      a1,v1
        BL       __rt_sdiv
        LDR      v3,[pc, #L000458-.-8]
        LDR      a2,[v3,#0]
        ADD      v5,a2,a1,LSL #8
        LDR      v2,[pc, #L00045c-.-8]
        LDR      a1,[v2,#0]
        CMP      v5,a1
        MOVGT    v5,a1
        BGT      |L000c20.J9.D_DrawSpans16|
        CMP      v5,#0
        MOVLT    v5,#0
|L000c20.J9.D_DrawSpans16|
        LDR      a1,[sp,#8]
        MOV      a2,a1,LSL #8
        MOV      a1,v1
        BL       __rt_sdiv
        LDR      a2,[pc, #L00049c-.-8]
        LDR      a3,[a2,#0]
        ADD      v4,a3,a1,LSL #8
        LDR      a1,[pc, #L0004a0-.-8]
        LDR      a3,[a1,#0]
        CMP      v4,a3
        MOVGT    v4,a3
        BGT      |L000c58.J17.D_DrawSpans16|
        CMP      v4,#0
        MOVLT    v4,#0
|L000c58.J17.D_DrawSpans16|
        LDR      a1,[sp,#&18]
        CMP      a1,#&10
        LDRLT    v6,[sp,#&18]
        MOVGE    v6,#&10
        LDR      a1,[sp,#&18]
        SUBS     a1,a1,v6
        STR      a1,[sp,#&18]
        BEQ      |L000d3c.J21.D_DrawSpans16|
        LDR      a1,[sp,#&c]
        LDR      a3,[pc, #L0001d8-.-8]
        LDR      a2,[a3,#&40]
        ADD      a1,a1,a2
        STR      a1,[sp,#&c]
        LDR      a1,[sp,#8]
        LDR      a2,[a3,#&50]
        ADD      a1,a1,a2
        STR      a1,[sp,#8]
        LDR      a1,[a3,#&54]!
        ADDS     v1,v1,a1
        MOVEQ    v1,#1
        LDR      a1,[sp,#&c]
        MOV      a2,a1,LSL #7
        MOV      a1,v1
        BL       __rt_sdiv
        LDR      a2,[pc, #L000458-.-8]
        LDR      a2,[a2,#0]
        ADD      v3,a2,a1,LSL #9
        LDR      a1,[pc, #L00045c-.-8]
        LDR      a1,[a1,#0]
        CMP      v3,a1
        MOVGT    v3,a1
        BGT      |L000ce0.J27.D_DrawSpans16|
        CMP      v3,#&10
        MOVLT    v3,#&10
|L000ce0.J27.D_DrawSpans16|
        LDR      a1,[sp,#8]
        MOV      a2,a1,LSL #7
        MOV      a1,v1
        BL       __rt_sdiv
        LDR      a2,[pc, #L00049c-.-8]
        LDR      a2,[a2,#0]
        ADD      v2,a2,a1,LSL #9
        LDR      a1,[pc, #L0004a0-.-8]
        LDR      a1,[a1,#0]
        CMP      v2,a1
        MOVGT    v2,a1
        BGT      |L000d18.J32.D_DrawSpans16|
        CMP      v2,#&10
        MOVLT    v2,#&10
|L000d18.J32.D_DrawSpans16|
        SUB      a1,v3,v5
        MOV      a1,a1,ASR #4
        STR      a1,[sp,#4]
        SUB      a1,v2,v4
        MOV      a1,a1,ASR #4
        B        |L000e10.J59.D_DrawSpans16|
|L000d30.J54.D_DrawSpans16|
        LDR      a4,[pc, #L000d38-.-8]
        B        |L000e18.J50.D_DrawSpans16|
L000d38
        IMPORT  cachewidth
        DCD     cachewidth
|L000d3c.J21.D_DrawSpans16|
        SUB      a1,v6,#1
        STR      a1,[sp,#&1c]
        LDR      a3,[pc, #L0001d8-.-8]
        LDR      a2,[a3,#&3c]
        MUL      a2,a1,a2
        LDR      a4,[sp,#&c]
        ADD      a2,a2,a4
        STR      a2,[sp,#&c]
        LDR      a2,[a3,#&4c]
        MUL      a2,a1,a2
        LDR      a4,[sp,#8]
        ADD      a2,a2,a4
        STR      a2,[sp,#8]
        LDR      a2,[a3,#&28]!
        MLAS     v1,a1,a2,v1
        MOVEQ    v1,#1
        LDR      a1,[sp,#&c]
        MOV      a2,a1,LSL #7
        MOV      a1,v1
        BL       __rt_sdiv
        LDR      a2,[pc, #L000458-.-8]
        LDR      a2,[a2,#0]
        ADD      v3,a2,a1,LSL #9
        LDR      a1,[pc, #L00045c-.-8]
        LDR      a1,[a1,#0]
        CMP      v3,a1
        MOVGT    v3,a1
        BGT      |L000db4.J40.D_DrawSpans16|
        CMP      v3,#&10
        MOVLT    v3,#&10
|L000db4.J40.D_DrawSpans16|
        LDR      a1,[sp,#8]
        MOV      a2,a1,LSL #7
        MOV      a1,v1
        BL       __rt_sdiv
        LDR      a2,[pc, #L00049c-.-8]
        LDR      a2,[a2,#0]
        ADD      v2,a2,a1,LSL #9
        LDR      a1,[pc, #L0004a0-.-8]
        LDR      a1,[a1,#0]
        CMP      v2,a1
        MOVGT    v2,a1
        BGT      |L000dec.J45.D_DrawSpans16|
        CMP      v2,#&10
        MOVLT    v2,#&10
|L000dec.J45.D_DrawSpans16|
        CMP      v6,#1
        BLE      |L000d30.J54.D_DrawSpans16|
        SUB      a2,v3,v5
        LDR      a1,[sp,#&1c]
        BL       __rt_sdiv
        SUB      a2,v2,v4
        STR      a1,[sp,#4]
        LDR      a1,[sp,#&1c]
        BL       __rt_sdiv
|L000e10.J59.D_DrawSpans16|
        STR      a1,[sp,#0]
        B        |L000d30.J54.D_DrawSpans16|
|L000e18.J50.D_DrawSpans16|
        LDR      a1,[sp,#&14]
        ADD      a2,a1,v5,ASR #16
        MOV      a3,v4,ASR #16
        LDR      a1,[a4,#0]
        MUL      a3,a1,a3
        LDRB     a1,[a2,a3]
        LDR      a2,[sp,#&10]
        STRB     a1,[a2],#1
        STR      a2,[sp,#&10]
        LDR      a1,[sp,#4]
        ADD      v5,v5,a1
        LDR      a1,[sp,#0]
        ADD      v4,v4,a1
        SUBS     v6,v6,#1
        BNE      |L000e18.J50.D_DrawSpans16|
        MOV      v5,v3
        MOV      v4,v2
        LDR      a1,[sp,#&18]
        CMP      a1,#0
        BGT      |L000c58.J17.D_DrawSpans16|
        LDR      a1,[fp,#-&28]
        LDR      a1,[a1,#&c]
        STR      a1,[fp,#-&28]
        TEQ      a1,#0
        BNE      |L000b54.J4.D_DrawSpans16|
        LDMDB    fp,{v1-v6,fp,sp,pc}^

        EXPORT  D_DrawZSpans
D_DrawZSpans
        STMDB    sp!,{v1-v5,lr}
        LDR      v2,[pc, #L0001d8-.-8]
        LDR      a2,[v2,#&28]
        MOV      ip,a2,LSL #9
        LDR      v4,[pc, #L000f54-.-8]
        LDR      v3,[pc, #L000f58-.-8]
|L000e98.J4.D_DrawZSpans|
        LDR      a2,[v4,#0]
        LDR      lr,[a1,#4]
        MUL      a2,lr,a2
        LDR      a3,[v3,#0]
        ADD      a3,a3,a2,LSL #1
        LDR      a2,[a1,#0]
        ADD      a3,a3,a2,LSL #1
        LDR      a4,[a1,#8]
        LDR      v1,[v2,#&2c]
        MUL      lr,v1,lr
        LDR      v1,[v2,#&30]
        ADD      lr,lr,v1
        LDR      v1,[v2,#&28]
        MLA      a2,v1,a2,lr
        MOV      a2,a2,LSL #9
        TST      a3,#2
        BEQ      |L000ef8.J5.D_DrawZSpans|
        MOV      lr,a2,ASR #16
        STRB     lr,[a3,#0]
        MOV      lr,lr,ASR #8
        STRB     lr,[a3,#1]
        ADD      a3,a3,#2
        ADD      a2,a2,ip
        SUB      a4,a4,#1
|L000ef8.J5.D_DrawZSpans|
        MOV      lr,a4,ASR #1
        CMP      lr,#0
        BLE      |L000f2c.J7.D_DrawZSpans|
|L000f04.J9.D_DrawZSpans|
        MOV      v1,a2,ASR #16
        ADD      a2,a2,ip
        MOV      v5,a2,LSR #16
        MOV      v5,v5,LSL #16
        ORR      v1,v5,v1
        ADD      a2,a2,ip
        SUB      lr,lr,#1
        CMP      lr,#0
        STR      v1,[a3],#4
        BGT      |L000f04.J9.D_DrawZSpans|
|L000f2c.J7.D_DrawZSpans|
        TST      a4,#1
        BEQ      |L000f44.J11.D_DrawZSpans|
        MOV      a2,a2,ASR #16
        STRB     a2,[a3,#0]
        MOV      a2,a2,ASR #8
        STRB     a2,[a3,#1]
|L000f44.J11.D_DrawZSpans|
        LDR      a1,[a1,#&c]
        TEQ      a1,#0
        BNE      |L000e98.J4.D_DrawZSpans|
        LDMIA    sp!,{v1-v5,pc}^
L000f54
        IMPORT  d_zwidth
        DCD     d_zwidth
L000f58
        IMPORT  d_pzbuffer
        DCD     d_pzbuffer

        AREA |C$$data|,DATA

|x$dataseg|

        EXPORT  r_turb_pbase
r_turb_pbase
        DCD     &00000000

        EXPORT  r_turb_pdest
r_turb_pdest
        DCD     &00000000

        EXPORT  r_turb_s
r_turb_s
        DCD     &00000000

        EXPORT  r_turb_t
r_turb_t
        DCD     &00000000

        EXPORT  r_turb_sstep
r_turb_sstep
        DCD     &00000000

        EXPORT  r_turb_tstep
r_turb_tstep
        DCD     &00000000

        EXPORT  r_turb_turb
r_turb_turb
        DCD     &00000000

        EXPORT  r_turb_spancount
r_turb_spancount
        DCD     &00000000
        DCD     &00000000
        DCD     &00000000

d_zistepu_fxp
        DCD     &00000000

d_zistepv_fxp
        DCD     &00000000

d_ziorigin_fxp
        DCD     &00000000

sdivzorig
        DCD     &00000000

sdivzstepv
        DCD     &00000000

sdivzstepu
        DCD     &00000000

sdivz8stepu
        DCD     &00000000

tdivzorig
        DCD     &00000000

tdivzstepv
        DCD     &00000000

tdivzstepu
        DCD     &00000000

tdivz8stepu
        DCD     &00000000

zi8stepu
        DCD     &00000000

        AREA |C$$zidata|,NOINIT
|x$bssseg|
        % 11248

        END
