Files
CydandClaude Fable 5 db7745fcd0 sda4: commit the Glaze developer hard-drive dump
Un-ignored: the dev drive is the ground truth the restoration and
emulator work constantly reference (DPL3/LIBDPL + VRENDER i860 renderer
source, BT/RP live+dev game trees, VGL_LABS pod boot, scene/audio
content). Kept in-repo for the pod-owner community.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 19:41:15 -05:00

2922 lines
55 KiB
ArmAsm

.file "vr_cull.c"
// PGC Rel 2.0a -opt 4
.text
.globl _printf_matrix
.align 8
_printf_matrix:
.a1 = 80
.f1 = 32
addu -(.a1+.f1), sp, sp
st.l fp,(.f1-16)(sp)
addu (.f1-16), sp, fp
st.l r1, 4(fp)
st.l r16, 48(fp)
// lineno: 38
ld.l 48(fp), r28
fld.l r0(r28), f16
orh h%.S00661, r0, r31
or l%.S00661, r31, r16
fmov.sd f16, f8
fld.l 4(r28), f17
fld.l 8(r28), f18
fld.l 12(r28), f19
fmov.sd f17, f10
fmov.sd f18, f12
call _printf
fmov.sd f19, f14
ld.l 48(fp), r28
fld.l 16(r28), f16
orh h%.S00665, r0, r31
or l%.S00665, r31, r16
fmov.sd f16, f8
fld.l 20(r28), f17
fld.l 24(r28), f18
fld.l 28(r28), f19
fmov.sd f17, f10
fmov.sd f18, f12
call _printf
fmov.sd f19, f14
ld.l 48(fp), r28
fld.l 32(r28), f16
orh h%.S00667, r0, r31
or l%.S00667, r31, r16
fmov.sd f16, f8
fld.l 36(r28), f17
fld.l 40(r28), f18
fld.l 44(r28), f19
fmov.sd f17, f10
fmov.sd f18, f12
call _printf
fmov.sd f19, f14
ld.l 48(fp), r28
fld.l 48(r28), f16
orh h%.S00669, r0, r31
or l%.S00669, r31, r16
fmov.sd f16, f8
fld.l 52(r28), f17
fld.l 56(r28), f18
fld.l 60(r28), f19
fmov.sd f17, f10
fmov.sd f18, f12
call _printf
fmov.sd f19, f14
// lineno: 47
adds .a1+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.align 8
_dbl_plane_term:
.a2 = 0
.f2 = 32
addu -(.a2+.f2), sp, sp
st.l fp,(.f2-16)(sp)
addu (.f2-16), sp, fp
st.l r1, 4(fp)
// lineno: 70
fld.d 8(r28), f16
fld.d r0(r28), f18
fsub.dd f18, f16, f20
fmul.dd f20, f8, f22
fsub.dd f16, f14, f24
fmul.dd f24, f10, f26
fadd.dd f26, f22, f28
fsub.dd f14, f18, f30
fmul.dd f30, f12, f20
fadd.dd f20, f28, f16
fmov.ds f16, f8
// lineno: 74
adds .a2+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.globl _compute_plane_eqn
.align 8
_compute_plane_eqn:
.a3 = 80
.f3 = 128
addu -(.a3+.f3), sp, sp
st.l fp,(.f3-16)(sp)
addu (.f3-16), sp, fp
st.l r1, 4(fp)
st.l r16, 48(fp)
// lineno: 80
fld.l 4(r17), f16
fld.l 4(r18), f17
fld.l 4(r19), f18
fmov.sd f16, f8
fld.l 8(r17), f19
fld.l r0(r17), f20
fmov.sd f17, f10
fld.l r0(r18), f21
fld.l 8(r18), f26
fmov.sd f18, f12
fld.l r0(r19), f27
fld.l 8(r19), f16
fmov.sd f19, f14
adds -88, fp, r28
fmov.sd f20, f22
fst.d f22, -8(fp)
fst.d f8, -16(fp)
fst.d f14, -24(fp)
fmov.sd f21, f24
fst.d f24, -32(fp)
fst.d f10, -40(fp)
fmov.sd f26, f28
fst.d f28, -48(fp)
fmov.sd f27, f30
fst.d f30, -56(fp)
fst.d f12, -64(fp)
fmov.sd f16, f18
fst.d f18, -72(fp)
fst.d f28, -88(fp)
call _dbl_plane_term
fst.d f18, -80(fp)
fiadd.ss f8, f0, f16
fld.d -24(fp), f8
fld.d -48(fp), f10
fld.d -72(fp), f12
fld.d -8(fp), f14
fld.d -32(fp), f18
fld.d -56(fp), f20
ld.l 48(fp), r28
fst.d f18, -88(fp)
fst.d f20, -80(fp)
fst.l f16, r0(r28)
adds -88, fp, r29
call _dbl_plane_term
mov r29, r28
fiadd.ss f8, f0, f16
fld.d -8(fp), f8
fld.d -32(fp), f10
fld.d -56(fp), f12
fld.d -16(fp), f14
fld.d -40(fp), f18
fld.d -64(fp), f20
ld.l 48(fp), r28
fst.d f18, -88(fp)
fst.d f20, -80(fp)
fst.l f16, 4(r28)
adds -88, fp, r29
call _dbl_plane_term
mov r29, r28
fld.d -48(fp), f16
fld.d -64(fp), f18
fld.d -72(fp), f22
fld.d -40(fp), f24
fmul.dd f18, f16, f20
fld.d -8(fp), f30
fld.d -16(fp), f12
ld.l 48(fp), r28
fmul.dd f24, f22, f26
fsub.dd f26, f20, f28
fld.d -24(fp), f20
fmul.dd f30, f28, f10
fld.d -32(fp), f30
fmul.dd f12, f22, f14
fmul.dd f18, f20, f26
fsub.dd f26, f14, f28
fmul.dd f30, f28, f22
fld.d -56(fp), f30
fadd.dd f22, f10, f18
fmul.dd f24, f20, f14
fmul.dd f12, f16, f26
fsub.dd f26, f14, f28
fmul.dd f30, f28, f10
fadd.dd f10, f18, f22
fsub.dd f0, f22, f20
fmov.ds f20, f9
fst.l f9, 12(r28)
fst.d f20, -96(fp)
fst.l f8, 8(r28)
// lineno: 111
adds .a3+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.align 8
_cull_view:
.a4 = 80
.f4 = 80
addu -(.a4+.f4), sp, sp
st.l fp,(.f4-16)(sp)
addu (.f4-16), sp, fp
st.l r1, 4(fp)
st.l r16, 48(fp)
st.l r17, 52(fp)
// lineno: 132
fld.l 100(r17), f16
orh ha%.C00037, r0, r31
fld.l l%.C00037(r31), f19
frcp.ss f16, f17
fmul.ss f16, f17, f18
fld.l 96(r17), f25
ld.l 52(fp), r28
fsub.ss f19, f18, f20
adds 64, r0, r18
fmul.ss f17, f20, f21
fmul.ss f16, f21, f22
fsub.ss f19, f22, f23
fmul.ss f23, f21, f24
fmul.ss f25, f24, f26
fst.l f26, 168(r16)
fld.l 80(r17), f27
fld.l 88(r17), f28
fld.l 92(r17), f13
addu 8, r28, r17
fsub.ss f28, f27, f29
frcp.ss f29, f30
fmul.ss f29, f30, f31
fsub.ss f19, f31, f8
fmul.ss f30, f8, f9
fmul.ss f29, f9, f10
fsub.ss f19, f10, f11
fmul.ss f11, f9, f12
fadd.ss f13, f13, f14
fmul.ss f14, f12, f15
call _memcpy
fst.l f15, 128(r16)
ld.l 48(fp), r28
addu 64, r28, r16
call _dpl_Invert
mov r28, r17
ld.l 52(fp), r28
ld.l 48(fp), r29
fld.l 108(r28), f16
orh ha%.C00037, r0, r31
fld.l l%.C00037(r31), f19
frcp.ss f16, f17
fmul.ss f16, f17, f18
orh ha%.C00036, r0, r31
fld.l l%.C00036(r31), f27
fsub.ss f19, f18, f20
orh ha%.C00038, r0, r31
fld.l l%.C00038(r31), f15
fmul.ss f17, f20, f21
addu 196, r29, r16
adds -16, fp, r17
fmul.ss f16, f21, f22
adds -32, fp, r18
adds -48, fp, r19
fsub.ss f19, f22, f23
fld.l 128(r29), f22
fmul.ss f23, f21, f24
fst.l f16, 136(r29)
frcp.ss f22, f21
fld.l 104(r28), f25
fmul.ss f25, f24, f26
fsub.ss f27, f26, f28
frcp.ss f28, f29
fmul.ss f28, f29, f30
fsub.ss f19, f30, f31
fmul.ss f29, f31, f8
fmul.ss f28, f8, f9
fsub.ss f19, f9, f10
fmul.ss f10, f8, f11
fst.l f25, 132(r29)
fmul.ss f22, f21, f23
fld.l 96(r28), f12
fst.l f12, 140(r29)
fsub.ss f19, f23, f16
fld.l 100(r28), f13
fst.l f13, 148(r29)
fmul.ss f21, f16, f24
fld.l 96(r28), f14
fmul.ss f14, f15, f18
fst.l f18, 144(r29)
fld.l 100(r28), f20
fst.l f11, 160(r29)
fst.l f0, 172(r29)
fmul.ss f20, f15, f17
fst.l f17, 152(r29)
fst.l f0, 176(r29)
fmul.ss f22, f24, f27
fsub.ss f19, f27, f30
fmul.ss f30, f24, f31
fmul.ss f25, f31, f29
fst.l f29, 164(r29)
fst.l f26, 156(r29)
fst.l f0, -16(fp)
fst.l f0, -12(fp)
fst.l f0, -8(fp)
fld.l 84(r28), f9
fst.l f9, -32(fp)
fld.l 88(r28), f8
fst.l f8, -28(fp)
fld.l 92(r28), f10
fst.l f10, -24(fp)
fld.l 84(r28), f28
fst.l f28, -48(fp)
fld.l 80(r28), f12
fst.l f12, -44(fp)
fld.l 92(r28), f23
call _compute_plane_eqn
fst.l f23, -40(fp)
ld.l 52(fp), r28
ld.l 48(fp), r29
fld.l 76(r28), f16
addu 228, r29, r16
adds -16, fp, r17
fst.l f16, -48(fp)
adds -48, fp, r18
fld.l 88(r28), f17
adds -32, fp, r19
call _compute_plane_eqn
fst.l f17, -44(fp)
ld.l 52(fp), r28
ld.l 48(fp), r29
fld.l 76(r28), f16
addu 180, r29, r16
adds -16, fp, r17
fst.l f16, -32(fp)
adds -32, fp, r18
fld.l 80(r28), f17
adds -48, fp, r19
call _compute_plane_eqn
fst.l f17, -28(fp)
ld.l 52(fp), r28
ld.l 48(fp), r29
fld.l 84(r28), f16
addu 212, r29, r16
adds -16, fp, r17
fst.l f16, -48(fp)
adds -48, fp, r18
fld.l 80(r28), f17
adds -32, fp, r19
call _compute_plane_eqn
fst.l f17, -44(fp)
orh ha%_eof_FOG_far, r0, r31
fld.l l%_eof_FOG_far(r31), f16
orh ha%.C00037, r0, r31
fld.l l%.C00037(r31), f19
frcp.ss f16, f17
fmul.ss f16, f17, f18
ld.l 48(fp), r28
fsub.ss f19, f18, f20
fld.l 164(r28), f25
fld.l 128(r28), f26
fmul.ss f17, f20, f21
orh ha%_Czscale, r0, r31
fld.l l%_Czscale(r31), f28
fmul.ss f16, f21, f22
orh ha%_eof_FOG_near, r0, r31
fld.l l%_eof_FOG_near(r31), f31
fsub.ss f19, f22, f23
fmul.ss f23, f21, f24
fmul.ss f26, f25, f27
fmul.ss f28, f27, f29
fmul.ss f29, f24, f30
ftrunc.sd f30, f8
orh ha%_eof_Z_far, r0, r31
fst.l f8, l%_eof_Z_far(r31)
frcp.ss f31, f10
fmul.ss f31, f10, f11
fsub.ss f19, f11, f12
fmul.ss f10, f12, f13
fmul.ss f31, f13, f14
fsub.ss f19, f14, f15
fmul.ss f15, f13, f18
fmul.ss f29, f18, f20
ftrunc.sd f20, f16
orh ha%_eof_Z_near, r0, r31
fst.l f16, l%_eof_Z_near(r31)
fld.l 136(r28), f22
frcp.ss f22, f21
fmul.ss f22, f21, f23
fsub.ss f19, f23, f25
fmul.ss f21, f25, f26
fmul.ss f22, f26, f27
fsub.ss f19, f27, f28
fmul.ss f28, f26, f24
fmul.ss f24, f29, f30
ftrunc.sd f30, f8
orh ha%_eof_farZ, r0, r31
fst.l f8, l%_eof_farZ(r31)
// lineno: 176
adds .a4+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.align 8
_new_draw_item:
.a5 = 80
.f5 = 48
addu -(.a5+.f5), sp, sp
st.l fp,(.f5-16)(sp)
addu (.f5-16), sp, fp
st.l r1, 4(fp)
st.l r4, -24(fp)
st.l r5, -20(fp)
st.l r6, -16(fp)
st.l r7, -12(fp)
st.l r8, -8(fp)
st.l r17, 52(fp)
mov r16, r4
// lineno: 0
orh h%_chunk_active, r0, r31
or l%_chunk_active, r31, r5
orh h%_chunk_usage, r0, r31
or l%_chunk_usage, r31, r6
orh h%_chunk_free_ptr, r0, r31
or l%_chunk_free_ptr, r31, r8
// lineno: 190
ld.l r0(r6), r28
adds r16, r28, r29
adds -4064, r29, r0
bc .B730
ld.l r0(r5), r30
ld.l 4(r30), r17
btne 0x0000, r17, .B732
call _malloc
adds 4096, r0, r16
ld.l r0(r5), r28
st.l r16, 4(r28)
btne 0x0000, r16, .B735
orh h%.S00736, r0, r31
call _printf
or l%.S00736, r31, r16
br .B1131
mov r0, r16
// lineno: 198
.B735: //.B0002
ld.l r0(r5), r28
.DB.B735735:
ld.l 4(r28), r29
st.l r0, 4(r29)
// lineno: 200
.B732: //.B0001
ld.l r0(r5), r28
.DB.B732732:
adds 1, r0, r17
ld.l 4(r28), r29
st.l r0, 12(r28)
addu 16, r29, r30
st.l r30, 0(r8)
st.l r29, 0(r5)
st.l r17, 12(r29)
st.l r0, 8(r29)
st.l r0, 0(r6)
// lineno: 209
.B730: //.B0000
ld.l r0(r5), r28
.DB.B730730:
ld.l r0(r8), r16
ld.l 8(r28), r29
ld.l 52(fp), r17
adds 1, r29, r30
st.l r30, 8(r28)
st.l r17, 0(r16)
adds r4, r16, r20
ld.l r0(r6), r18
st.l r20, 0(r8)
adds r18, r4, r19
st.l r19, 0(r6)
// lineno: 0
.B1131: //.R0001
// lineno: 215
ld.l -24(fp), r4
ld.l -20(fp), r5
ld.l -16(fp), r6
ld.l -12(fp), r7
ld.l -8(fp), r8
adds .a5+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.align 8
_bbox_plane:
.a6 = 0
.f6 = 32
orh h%.STACK+.f6-16, r0, r28
or l%.STACK+.f6-16, r28, r28
st.l r4, -8(r28)
st.l r5, -4(r28)
// lineno: 0
adds -1, r0, r18
// lineno: 226
fld.l r0(r17), f11
fld.l 4(r17), f12
fld.l 8(r17), f13
fld.l 12(r17), f14
mov r0, r20
mov r0, r20
mov r16, r21
mov r16, r21
adds 1, r0, r19
addu -12, r16, r4
addu -8, r16, r5
bla r18, r19,.B1159
pfmul.dd f0, f0, f0
// lineno: 236
.B1159: //.M0000
.align 8
d.pfadd.dd f0, f0, f0
nop
.align 8
.PD0.B1159105:
d.fnop
mov r4, r29
.DB.B11591159:
d.fnop
fld.l 16(r29)++, f17
d.fnop
fld.l 16(r29)++, f18
d.fnop
fld.l 16(r29)++, f19
d.fnop
addu 16, r29, r4
d.fnop
fld.l r0(r4), f9
d.pfmul.ss f19, f12, f0
mov r21, r30
d.pfmul.ss f0, f0, f0
mov r30, r22
d.pfmul.ss f9, f12, f0
fld.l 16(r30)++, f23
d.pfmul.ss f0, f0, f21
fld.l 16(r30)++, f24
d.pfmul.ss f0, f0, f0
fld.l r0(r22), f25
d.pfmul.ss f0, f0, f20
fld.l 16(r30)++, f10
d.pfmul.ss f24, f11, f0
mov r5, r23
d.pfmul.ss f0, f0, f0
fld.l 16(r23)++, f29
d.pfmul.ss f10, f11, f0
fld.l 16(r23)++, f30
d.mi2p1.ss f21, f0, f16
fld.l 16(r23)++, f31
d.mm12msm.ss f18, f12, f0
addu 16, r23, r5
d.mi2p1.ss f20, f0, f26
fld.l r0(r5), f8
d.m12tpa.ss f31, f13, f19
addu 16, r30, r21
d.mm12msm.ss f23, f11, f26
nop
d.m12tpa.ss f8, f13, f27
nop
d.mi2p1.ss f19, f0, f24
nop
d.mi2p1.ss f26, f0, f18
nop
d.mi2p1.ss f27, f0, f15
nop
d.pfadd.ss f14, f16, f16
nop
d.m12tpa.ss f30, f13, f20
nop
d.ia1p2.ss f14, f28, f28
nop
d.ia1p2.ss f0, f0, f21
nop
d.mm12msm.ss f0, f0, f31
nop
d.pfadd.ss f0, f0, f22
nop
d.pfgt.ss f22, f0, f0
nop
d.fnop
shl r0, r0, r24
d.fnop
bnc ..L3
d.fnop
adds 1, r0, r24
..L3:
d.pfgt.ss f21, f0, f0
nop
d.fnop
shl r0, r0, r25
d.fnop
bnc ..L2
d.fnop
adds 1, r0, r25
..L2:
d.pfadd.ss f20, f31, f0
nop
d.mm12msm.ss f25, f11, f0
nop
d.mm12msm.ss f17, f12, f0
nop
d.ia1p2.ss f14, f23, f23
nop
d.mm12msm.ss f0, f0, f19
nop
d.mm12msm.ss f0, f0, f18
nop
d.pfadd.ss f0, f0, f24
nop
d.pfgt.ss f24, f0, f0
nop
d.fnop
shl r0, r0, r26
d.fnop
bnc ..L1
d.fnop
adds 1, r0, r26
..L1:
d.pfadd.ss f19, f18, f0
nop
d.mm12msm.ss f29, f13, f0
nop
d.mm12msm.ss f0, f0, f0
nop
d.ia1p2.ss f0, f0, f26
nop
d.mi2p1.ss f26, f0, f15
nop
d.pfadd.ss f0, f0, f0
nop
d.pfadd.ss f0, f0, f0
nop
d.pfadd.ss f14, f27, f27
nop
d.pfadd.ss f0, f0, f0
nop
d.pfadd.ss f0, f0, f0
nop
d.pfadd.ss f0, f0, f16
nop
d.pfgt.ss f16, f0, f0
nop
d.fnop
shl r0, r0, r27
d.fnop
bnc ..L0
d.fnop
adds 1, r0, r27
..L0:
d.fnop
adds r20, r27, r29
d.fnop
adds r29, r26, r22
d.fnop
adds r22, r25, r23
d.fnop
adds r23, r24, r20
d.fnop
bla r18, r19, .PD0.B1159105
d.fnop
nop
.align 8
fnop
nop
fnop
nop
// lineno: 0
mov r20, r16
// lineno: 0
// lineno: 247
ld.l -8(r28), r4
ld.l -4(r28), r5
bri r1
nop
.align 8
_scale_from_matrix:
.a7 = 80
.f7 = 32
addu -(.a7+.f7), sp, sp
st.l fp,(.f7-16)(sp)
addu (.f7-16), sp, fp
st.l r1, 4(fp)
// lineno: 255
fld.l 32(r16), f16
fld.l 36(r16), f18
fld.l 40(r16), f21
fmul.ss f16, f16, f17
fmul.ss f18, f18, f19
fadd.ss f19, f17, f20
fmul.ss f21, f21, f22
fadd.ss f22, f20, f23
fmov.sd f23, f8
fst.l f18, -4(fp)
call _sqrt
fst.l f21, -8(fp)
fmov.ds f8, f8
// lineno: 261
adds .a7+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.align 8
_visibility:
.a8 = 80
.f8 = 64
addu -(.a8+.f8), sp, sp
st.l fp,(.f8-16)(sp)
addu (.f8-16), sp, fp
st.l r1, 4(fp)
fst.d f2, -40(fp)
fst.d f4, -32(fp)
fst.d f6, -24(fp)
st.l r4, -16(fp)
st.l r5, -12(fp)
st.l r6, -8(fp)
st.l r16, 48(fp)
st.l r17, 52(fp)
// lineno: 0
// lineno: 274
fld.l 8(r16), f3
addu 16, r16, r6
fld.l 8(r6), f2
fiadd.ss f3, f0, f4
fld.l 132(r17), f6
fld.l 136(r17), f5
mov r0, r4
pfle.ss f3, f2, f0
bnc .B767
br .B768
fiadd.ss f2, f0, f3
// lineno: 298
.B767: //.B0005
pfle.ss f2, f4, f0
.DB.B767767:
bnc .B769
fiadd.ss f2, f0, f4
// lineno: 0
.B769: //.B0007
// lineno: 301
.B768: //.B0006
addu 16, r6, r6
.DB.B768768:
fld.l 8(r6), f2
pfle.ss f3, f2, f0
bnc .B770
br .B771
fiadd.ss f2, f0, f3
// lineno: 304
.B770: //.B0008
pfle.ss f2, f4, f0
.DB.B770770:
bnc .B772
fiadd.ss f2, f0, f4
// lineno: 0
.B772: //.B0010
// lineno: 307
.B771: //.B0009
addu 16, r6, r6
.DB.B771771:
fld.l 8(r6), f2
pfle.ss f3, f2, f0
bnc .B773
br .B774
fiadd.ss f2, f0, f3
// lineno: 310
.B773: //.B0011
pfle.ss f2, f4, f0
.DB.B773773:
bnc .B775
fiadd.ss f2, f0, f4
// lineno: 0
.B775: //.B0013
// lineno: 313
.B774: //.B0012
addu 16, r6, r6
.DB.B774774:
fld.l 8(r6), f2
pfle.ss f3, f2, f0
bnc .B776
br .B777
fiadd.ss f2, f0, f3
// lineno: 316
.B776: //.B0014
pfle.ss f2, f4, f0
.DB.B776776:
bnc .B778
fiadd.ss f2, f0, f4
// lineno: 0
.B778: //.B0016
// lineno: 319
.B777: //.B0015
addu 16, r6, r6
.DB.B777777:
fld.l 8(r6), f2
pfle.ss f3, f2, f0
bnc .B779
br .B780
fiadd.ss f2, f0, f3
// lineno: 322
.B779: //.B0017
pfle.ss f2, f4, f0
.DB.B779779:
bnc .B781
fiadd.ss f2, f0, f4
// lineno: 0
.B781: //.B0019
// lineno: 325
.B780: //.B0018
addu 16, r6, r6
.DB.B780780:
fld.l 8(r6), f2
pfle.ss f3, f2, f0
bnc .B782
br .B783
fiadd.ss f2, f0, f3
// lineno: 328
.B782: //.B0020
pfle.ss f2, f4, f0
.DB.B782782:
bnc .B784
fiadd.ss f2, f0, f4
// lineno: 0
.B784: //.B0022
// lineno: 331
.B783: //.B0021
addu 16, r6, r6
.DB.B783783:
fld.l 8(r6), f2
pfle.ss f3, f2, f0
bnc .B785
br .B786
fiadd.ss f2, f0, f3
// lineno: 334
.B785: //.B0023
pfle.ss f2, f4, f0
.DB.B785785:
bnc .B787
fiadd.ss f2, f0, f4
// lineno: 0
.B787: //.B0025
// lineno: 339
.B786: //.B0024
pfle.ss f6, f4, f0
.DB.B786786:
bnc .B788
br .B1177
adds 64, r0, r16
// lineno: 345
.B788: //.B0026
pfle.ss f3, f5, f0
.DB.B788788:
bnc .B791
br .B1177
adds 64, r0, r16
// lineno: 356
.B791: //.B0028
pfle.ss f4, f5, f0
.DB.B791791:
bnc .B793
adds 32, r0, r4
// lineno: 357
.B793: //.B0029
pfle.ss f6, f3, f0
.DB.B793793:
bnc .B795
or 0x0010, r4, r4
// lineno: 361
.B795: //.B0030
ld.l 48(fp), r16
.DB.B795795:
ld.l 52(fp), r28
call _bbox_plane
addu 212, r28, r17
mov r16, r5
btne 0x0008, r16, .B798
br .B1177
adds 64, r0, r16
// lineno: 366
.B798: //.B0031
bte 0x0000, r5, .B801
or 0x0004, r4, r4
// lineno: 371
.B801: //.B0033
ld.l 48(fp), r16
.DB.B801801:
ld.l 52(fp), r28
call _bbox_plane
addu 228, r28, r17
mov r16, r5
btne 0x0008, r16, .B803
br .B1177
adds 64, r0, r16
// lineno: 376
.B803: //.B0034
bte 0x0000, r5, .B806
or 0x0008, r4, r4
// lineno: 381
.B806: //.B0036
ld.l 48(fp), r16
.DB.B806806:
ld.l 52(fp), r28
call _bbox_plane
addu 180, r28, r17
mov r16, r5
btne 0x0008, r16, .B808
br .B1177
adds 64, r0, r16
// lineno: 387
.B808: //.B0037
bte 0x0000, r5, .B811
or 0x0001, r4, r4
// lineno: 392
.B811: //.B0039
ld.l 48(fp), r16
.DB.B811811:
ld.l 52(fp), r28
call _bbox_plane
addu 196, r28, r17
mov r16, r5
btne 0x0008, r16, .B813
br .B1177
adds 64, r0, r16
// lineno: 398
.B813: //.B0040
bte 0x0000, r5, .B816
or 0x0002, r4, r4
// lineno: 403
.B816: //.B0042
mov r4, r16
.DB.B816816:
// lineno: 0
.B1177: //.R0004
// lineno: 404
fld.d -40(fp), f2
fld.d -32(fp), f4
fld.d -24(fp), f6
ld.l -16(fp), r4
ld.l -12(fp), r5
ld.l -8(fp), r6
adds .a8+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.align 8
_build_bound:
.a9 = 0
.f9 = 48
orh h%.STACK+.f9-16, r0, r28
or l%.STACK+.f9-16, r28, r28
// lineno: 885
fld.l r0(r17), f16
fld.l 4(r17), f17
fld.l 8(r17), f18
fld.l 16(r17), f19
fst.l f17, -4(r28)
fst.l f18, -8(r28)
fst.l f19, -12(r28)
fld.l 20(r17), f20
fld.l 24(r17), f21
fst.l f16, r0(r16)
fst.l f20, -16(r28)
fst.l f21, -20(r28)
fst.l f17, 4(r16)
fst.l f18, 8(r16)
orh ha%.C00036, r0, r31
fld.l l%.C00036(r31), f22
fst.l f19, 16(r16)
fst.l f17, 20(r16)
fst.l f22, 12(r16)
fst.l f18, 24(r16)
fst.l f22, 28(r16)
fst.l f16, 32(r16)
fst.l f20, 36(r16)
fst.l f18, 40(r16)
fst.l f22, 44(r16)
fst.l f19, 48(r16)
fst.l f20, 52(r16)
fst.l f18, 56(r16)
fst.l f22, 60(r16)
fst.l f16, 64(r16)
fst.l f17, 68(r16)
fst.l f21, 72(r16)
fst.l f22, 76(r16)
fst.l f19, 80(r16)
fst.l f17, 84(r16)
fst.l f21, 88(r16)
fst.l f22, 92(r16)
fst.l f16, 96(r16)
fst.l f20, 100(r16)
fst.l f21, 104(r16)
fst.l f22, 108(r16)
fst.l f19, 112(r16)
fst.l f20, 116(r16)
fst.l f21, 120(r16)
bri r1
fst.l f22, 124(r16)
// lineno: 943
bri r1
nop
.align 8
_next_free_ramp:
.a10 = 80
.f10 = 32
addu -(.a10+.f10), sp, sp
st.l fp,(.f10-16)(sp)
addu (.f10-16), sp, fp
st.l r1, 4(fp)
st.l r4, -8(fp)
st.l r5, -4(fp)
st.l r16, 48(fp)
// lineno: 0
orh h%_allocated_ramps, r0, r31
or l%_allocated_ramps, r31, r5
// lineno: 952
ld.l r0(r5), r28
btne 0x0004, r28, .B835
br .B1200
mov r0, r16
// lineno: 954
.B835: //.B0043
mov r0, r4
.DB.B835835:
ld.l r0(r5), r28
subs 0, r28, r0
bnc .B837
adds -1, r28, r18
orh h%_ref_texture_ramps, r0, r31
or l%_ref_texture_ramps, r31, r20
ld.l 48(fp), r21
adds -1, r0, r17
mov r0, r19
bla r17, r18,.B1216
pfmul.dd f0, f0, f0
// lineno: 955
.B1216: //.M0001
ld.l r0(r20), r28
.DB.B12161216:
btne r21, r28, .B839
// lineno: 0
mov r19, r4
br .B1200
mov r19, r16
// lineno: 956
.B839: //.B0046
adds 1, r19, r19
.DB.B839839:
bla r17, r18, .B1216
addu 4, r20, r20
// lineno: 0
mov r19, r4
// lineno: 958
.B837: //.B0045
ld.l r0(r5), r28
.DB.B837837:
adds 28, r0, r29
ixfr r28, f16
ixfr r29, f18
orh h%_texture_ramps, r0, r31
or l%_texture_ramps, r31, r16
fmlow.dd f16, f18, f20
shl 2, r28, r22
orh h%_ref_texture_ramps, r0, r31
or l%_ref_texture_ramps, r31, r23
fxfr f20, r30
ld.l 48(fp), r24
adds r30, r16, r16
mov r28, r17
adds r22, r23, r31
st.l r24, 0(r31)
fld.l 8(r24), f8
fld.l 12(r24), f9
fld.l 16(r24), f10
fld.l 20(r24), f11
fld.l 24(r24), f12
call _setRampEntry
fld.l 28(r24), f13
ld.l r0(r5), r28
adds 1, r28, r29
st.l r29, 0(r5)
adds -1, r29, r16
// lineno: 0
.B1200: //.R0005
// lineno: 972
ld.l -8(fp), r4
ld.l -4(fp), r5
adds .a10+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.align 8
_cull_material:
.a11 = 80
.f11 = 32
addu -(.a11+.f11), sp, sp
st.l fp,(.f11-16)(sp)
addu (.f11-16), sp, fp
st.l r1, 4(fp)
st.l r4, -8(fp)
st.l r5, -4(fp)
st.l r16, 48(fp)
st.l r17, 52(fp)
st.l r18, 56(fp)
// lineno: 0
// lineno: 990
ld.l 52(fp), r28
adds 12, r0, r18
call _memcpy
addu 36, r28, r17
ld.l 48(fp), r28
ld.l 52(fp), r29
addu 16, r28, r16
addu 60, r29, r17
adds 12, r0, r18
fld.l 48(r29), f16
call _memcpy
fst.l f16, 12(r28)
ld.l 52(fp), r28
call _compute_phong_table
fld.l 72(r28), f8
ld.l 48(fp), r28
adds -1, r0, r29
st.l r16, 28(r28)
st.l r29, 32(r28)
ld.l 56(fp), r30
bte 0x0000, r30, .B851
ld.l 8(r30), r5
bte 0x0000, r5, .B854
ld.l 52(fp), r17
ld.l 76(r17), r18
bte 0x0000, r18, .B856
call _next_free_ramp
mov r18, r16
br .B857
mov r16, r4
// lineno: 1003
.B856: //.B0049
mov r0, r4
.DB.B856856:
// lineno: 1014
.B857: //.B0050
ld.l 28(r5), r28
.DB.B857857:
ld.l 24(r5), r17
and 0x003f, r28, r29
shl 2, r29, r30
or r17, r30, r18
shl 8, r4, r19
or r18, r19, r20
ld.l 56(fp), r21
ld.l 48(fp), r27
ld.l 12(r21), r22
addu 36, r27, r29
adds -1, r22, r23
and 0x0007, r23, r24
shl 10, r24, r25
or r20, r25, r26
st.l r26, 32(r27)
orh ha%_animate_elapsed_time, r0, r28
fld.l l%_animate_elapsed_time(r28)++, f16
fld.l 44(r21), f17
fld.l 36(r21), f19
fmul.ss f16, f17, f18
orh ha%.C01226, r0, r31
fld.d l%.C01226(r31), f28
fadd.ss f18, f19, f20
fst.l f20, r0(r29)
ftrunc.sd f20, f12
fld.l 48(r21), f21
fld.l r0(r28), f22
fld.l 40(r21), f24
fmul.ss f22, f21, f23
fadd.ss f23, f24, f25
ftrunc.sd f25, f26
fxfr f26, r30
xorh 0x8000, r30, r17
ixfr r17, f30
fiadd.ss f29, f0, f31
fsub.dd f30, f28, f8
fmov.ds f8, f10
fsub.ss f25, f10, f11
fst.l f11, 40(r27)
fxfr f12, r19
xorh 0x8000, r19, r18
ixfr r18, f14
fiadd.ss f29, f0, f15
fsub.dd f14, f28, f16
fmov.ds f16, f19
fsub.ss f20, f19, f18
fst.l f18, r0(r29)
pfle.ss f0, f18, f0
bnc .B860
orh ha%.C00036, r0, r31
fld.l l%.C00036(r31), f21
fadd.ss f18, f21, f22
fst.l f22, r0(r29)
// lineno: 1029
.B860: //.B0051
ld.l 48(fp), r28
.DB.B860860:
fld.l 40(r28), f16
pfle.ss f0, f16, f0
bnc .B861
orh ha%.C00036, r0, r31
fld.l l%.C00036(r31), f17
fadd.ss f16, f17, f18
fst.l f18, 40(r28)
// lineno: 1031
.B861: //.B0052
ld.l 48(fp), r28
.DB.B861861:
fld.l 36(r28), f16
orh ha%.C00862, r0, r31
fld.l l%.C00862(r31), f17
fld.l 40(r28), f19
fmul.ss f16, f17, f18
fst.l f18, 36(r28)
fmul.ss f19, f17, f20
fst.l f20, 40(r28)
// lineno: 0
.B854: //.B0048
// lineno: 0
.B851: //.B0047
// lineno: 1035
ld.l -8(fp), r4
ld.l -4(fp), r5
adds .a11+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.align 8
_whichLOD:
// lineno: 0
// lineno: 1161
ld.l 16(r16), r19
bte 0x0000, r19, .B868
br .B1231
ld.l r0(r19), r16
// lineno: 1166
.B868: //.B0053
mov r0, r16
.DB.B868868:
// lineno: 0
.B1231: //.R0006
// lineno: 1167
bri r1
nop
.align 8
_cull_lmodel:
.a13 = 80
.f13 = 32
addu -(.a13+.f13), sp, sp
st.l fp,(.f13-16)(sp)
addu (.f13-16), sp, fp
st.l r1, 4(fp)
st.l r4, -8(fp)
st.l r16, 48(fp)
st.l r17, 52(fp)
// lineno: 0
// lineno: 1175
btne 0x0000, r16, .B874
orh h%.S00875, r0, r31
or l%.S00875, r31, r16
orh h%.B1235, r0, r1
br _printf
or l%.B1235, r1, r1
// lineno: 1180
.B874: //.B0055
adds 496, r0, r16
.DB.B874874:
call _new_draw_item
adds 6, r0, r17
mov r16, r4
bte 0x0000, r16, .B879
mov r16, r28
addu 72, r16, r16
ld.l 52(fp), r17
adds 16, r0, r18
ld.l 48(fp), r29
st.l r0, 100(r28)
st.l r29, 104(r28)
st.l r0, 4(r28)
fst.l f0, 88(r28)
fst.l f0, 92(r28)
fst.l f0, 96(r28)
orh h%.B881, r0, r1
br _memcpy
or l%.B881, r1, r1
// lineno: 1192
.B879: //.B0056
orh h%.S00882, r0, r31
.DB.B879879:
call _printf
or l%.S00882, r31, r16
// lineno: 1194
.B881: //.B0057
// lineno: 0
.B1235: //.R0007
// lineno: 0
ld.l -8(fp), r4
adds .a13+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.align 8
_cull_geogroup:
.a14 = 80
.f14 = 48
addu -(.a14+.f14), sp, sp
st.l fp,(.f14-16)(sp)
addu (.f14-16), sp, fp
st.l r1, 4(fp)
st.l r4, -24(fp)
st.l r5, -20(fp)
st.l r6, -16(fp)
st.l r7, -12(fp)
st.l r8, -8(fp)
st.l r9, -4(fp)
st.l r16, 48(fp)
st.l r17, 52(fp)
st.l r18, 56(fp)
st.l r19, 60(fp)
st.l r21, 68(fp)
// lineno: 0
// lineno: 1208
orh ha%.BSS, r0, r31
ld.l l%.BSS(r31), r28
mov r0, r4
bte 0x0000, r28, .B898
br .B899
mov r28, r7
// lineno: 1213
.B898: //.B0058
ld.l 64(r16), r7
.DB.B898898:
// lineno: 1215
.B899: //.B0059
orh ha%.BSS+4, r0, r31
.DB.B899899:
ld.l l%.BSS+4(r31), r28
bte 0x0000, r28, .B900
br .B901
mov r28, r6
// lineno: 1218
.B900: //.B0060
ld.l 48(fp), r28
.DB.B900900:
ld.l 68(r28), r6
// lineno: 1220
.B901: //.B0061
bte 0x0000, r7, .B902
orh ha%.BSS+8, r0, r31
ld.l l%.BSS+8(r31), r28
adds 512, r0, r4
bte 0x0000, r28, .B905
br .B906
mov r28, r9
// lineno: 1225
.B905: //.B0063
ld.l 8(r7), r9
.DB.B905905:
// lineno: 0
.B906: //.B0064
// lineno: 1227
.B902: //.B0062
bte 0x0000, r6, .B907
orh ha%.BSS+12, r0, r31
ld.l l%.BSS+12(r31), r28
or 0x0400, r4, r4
bte 0x0000, r28, .B910
br .B911
mov r28, r8
// lineno: 1232
.B910: //.B0066
ld.l 8(r6), r8
.DB.B910910:
// lineno: 0
.B911: //.B0067
// lineno: 1235
.B907: //.B0065
bte 0x0000, r4, .B912
adds 272, r0, r16
call _new_draw_item
adds 10, r0, r17
mov r16, r5
bte 0x0000, r16, .B915
bte 0x0000, r7, .B917
addu 184, r16, r16
mov r7, r17
call _cull_material
mov r9, r18
// lineno: 1241
.B917: //.B0070
bte 0x0000, r6, .B918
addu 228, r5, r16
mov r6, r17
call _cull_material
mov r8, r18
// lineno: 1244
.B918: //.B0071
orh ha%.BSS+16, r0, r31
.DB.B918918:
fld.l l%.BSS+16(r31), f16
ld.l 48(fp), r28
addu 8, r5, r16
fst.l f16, 176(r5)
st.l r28, 4(r5)
ld.l 44(r28), r29
or r29, r4, r30
st.l r30, 172(r5)
orh ha%_current_frame_count, r0, r31
ld.l l%_current_frame_count(r31), r17
st.l r17, 180(r5)
call _matrix_copy
ld.l 52(fp), r17
addu 72, r5, r16
call _matrix_copy
ld.l 56(fp), r17
addu 136, r5, r16
ld.l 60(fp), r17
call _memcpy
adds 12, r0, r18
fld.l 136(r5), f16
fld.l 140(r5), f18
fld.l 144(r5), f20
fsub.ss f0, f16, f17
orh ha%.C00036, r0, r31
fld.l l%.C00036(r31), f22
fst.l f17, 152(r5)
fsub.ss f0, f18, f19
orh ha%.C00920, r0, r31
fld.l l%.C00920(r31), f23
fst.l f19, 156(r5)
fsub.ss f0, f20, f21
ld.l 68(fp), r28
fst.l f21, 160(r5)
fst.l f22, 148(r5)
fst.l f23, 164(r5)
br .B921
st.l r28, 168(r5)
// lineno: 1265
.B915: //.B0069
orh h%.S00922, r0, r31
.DB.B915915:
call _printf
or l%.S00922, r31, r16
// lineno: 1271
.B921: //.B0072
br .B925
nop
// lineno: 0
.B912: //.B0068
orh h%.S00926, r0, r31
.DB.B912912:
call _printf
or l%.S00926, r31, r16
// lineno: 0
.B925: //.B0073
// lineno: 1273
ld.l -24(fp), r4
ld.l -20(fp), r5
ld.l -16(fp), r6
ld.l -12(fp), r7
ld.l -8(fp), r8
ld.l -4(fp), r9
adds .a14+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.align 8
_cull_object:
.a15 = 80
.f15 = 336
addu -(.a15+.f15), sp, sp
st.l fp,(.f15-16)(sp)
addu (.f15-16), sp, fp
st.l r1, 4(fp)
st.l r4, -312(fp)
st.l r5, -308(fp)
st.l r6, -304(fp)
st.l r7, -300(fp)
st.l r8, -296(fp)
st.l r9, -292(fp)
st.l r10, -288(fp)
st.l r11, -284(fp)
st.l r12, -280(fp)
st.l r16, 48(fp)
st.l r17, 52(fp)
st.l r18, 56(fp)
st.l r19, 60(fp)
st.l r20, 64(fp)
// lineno: 0
orh h%.BSS+20, r0, r31
or l%.BSS+20, r31, r9
orh h%.BSS+132, r0, r31
or l%.BSS+132, r31, r10
orh h%.BSS+84, r0, r31
or l%.BSS+84, r31, r12
// lineno: 1292
call _dpl_IdMatrix
mov r9, r16
ld.l 60(fp), r28
mov r9, r16
addu 64, r28, r17
mov r9, r18
orh ha%.C00920, r0, r31
fld.l l%.C00920(r31), f16
orh h%.BSS+60, r0, r31
or l%.BSS+60, r31, r29
fst.l f16, r0(r29)
call _fn_concatenate
fst.l f16, -20(r29)
ld.l 52(fp), r17
mov r9, r16
call _fn_concatenate
mov r9, r18
call _scale_from_matrix
mov r9, r16
fiadd.ss f8, f0, f16
orh ha%.C00036, r0, r31
fld.l l%.C00036(r31), f8
mov r9, r16
ld.l 60(fp), r28
fld.l 168(r28), f9
orh ha%.BSS+16, r0, r31
fst.l f16, l%.BSS+16(r31)
call _dpl_Scale
fiadd.ss f8, f0, f10
ld.l 48(fp), r16
ld.l 64(fp), r17
call _whichLOD
mov r9, r18
mov r16, r11
bte 0x0000, r16, .B1281
mov r16, r28
adds -128, fp, r16
call _build_bound
addu 8, r28, r17
adds -128, fp, r16
mov r16, r17
call _fn_xform_bound
mov r9, r18
adds -128, fp, r16
call _visibility
ld.l 60(fp), r17
mov r16, r4
xor 0x0040, r16, r0
bc .B948
adds -192, fp, r16
call _dpl_Invert
ld.l 52(fp), r17
ld.l 60(fp), r17
mov r12, r16
call _fn_concatenate
adds -192, fp, r18
call _dpl_IdMatrix
adds -256, fp, r16
ld.l 60(fp), r28
adds -256, fp, r17
fld.l 168(r28), f16
mov r12, r16
mov r12, r18
call _dpl_Concat
fst.l f16, -236(fp)
fld.l 8(r11), f16
fld.l 24(r11), f17
orh ha%.C00038, r0, r31
fld.l l%.C00038(r31), f19
fadd.ss f17, f16, f18
adds -272, fp, r16
ld.l 52(fp), r18
fmul.ss f18, f19, f20
orh ha%.C00036, r0, r31
fld.l l%.C00036(r31), f29
fst.l f20, r0(r16)
mov r16, r17
fld.l 12(r11), f21
fld.l 28(r11), f22
fadd.ss f22, f21, f23
fmul.ss f23, f19, f24
fst.l f24, -268(fp)
fld.l 16(r11), f25
fld.l 32(r11), f26
fst.l f29, -260(fp)
fadd.ss f26, f25, f27
fmul.ss f27, f19, f28
call _dpl_XformPoint
fst.l f28, -264(fp)
ld.l 56(fp), r16
call _cull_lmodel
adds -272, fp, r17
ld.l 52(r11), r6
bte 0x0000, r6, .B954
ld.l 60(fp), r8
// lineno: 1356
.B1305: //.M0002
ld.l r0(r6), r7
.DB.B13051305:
btne 0x0000, r4, .B957
mov r7, r16
mov r9, r17
adds -192, fp, r18
mov r10, r19
mov r8, r20
mov r0, r21
orh h%.B958, r0, r1
br _cull_geogroup
or l%.B958, r1, r1
// lineno: 1362
.B957: //.B0078
xor 0x0040, r4, r0
.DB.B957957:
bc .B959
adds -128, fp, r16
call _build_bound
addu 8, r7, r17
adds -128, fp, r16
mov r16, r17
call _fn_xform_bound
mov r9, r18
adds -128, fp, r16
call _visibility
mov r8, r17
mov r16, r5
xor 0x0040, r16, r0
bc .B961
mov r16, r28
mov r7, r16
mov r9, r17
adds -192, fp, r18
mov r10, r19
mov r8, r20
call _cull_geogroup
mov r28, r21
// lineno: 0
.B961: //.B0081
// lineno: 0
.B959: //.B0080
// lineno: 1369
.B958: //.B0079
ld.l 8(r6), r6
.DB.B958958:
xor 0x0000, r6, r0
bnc.t .DB.B13051305
ld.l r0(r6), r7
// lineno: 0
// lineno: 0
.B954: //.B0077
// lineno: 1371
.B948: //.B0075
// lineno: 0
.B1281: //.R0008
// lineno: 0
ld.l -312(fp), r4
ld.l -308(fp), r5
ld.l -304(fp), r6
ld.l -300(fp), r7
ld.l -296(fp), r8
ld.l -292(fp), r9
ld.l -288(fp), r10
ld.l -284(fp), r11
ld.l -280(fp), r12
adds .a15+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.align 8
_cull_node:
.a16 = 80
.f16 = 48
addu -(.a16+.f16), sp, sp
st.l fp,(.f16-16)(sp)
addu (.f16-16), sp, fp
st.l r1, 4(fp)
st.l r4, -16(fp)
st.l r5, -12(fp)
st.l r6, -8(fp)
st.l r16, 48(fp)
st.l r18, 56(fp)
st.l r19, 60(fp)
// lineno: 0
// lineno: 1382
ld.l 8(r17), r6
bte 0x0000, r6, .B1308
ld.l 4(r6), r28
btne 0x0007, r28, .B970
mov r6, r5
ld.l 12(r6), r29
btne 0x0003, r29, .B973
fld.l 32(r16), f16
fsub.ss f0, f16, f17
fst.l f17, 44(r6)
fld.l 36(r16), f18
fsub.ss f0, f18, f19
fst.l f19, 48(r6)
fld.l 40(r16), f20
fsub.ss f0, f20, f21
br .B975
fst.l f21, 52(r6)
// lineno: 1400
.B973: //.B0084
fld.l 48(r16), f16
.DB.B973973:
fsub.ss f0, f16, f17
fst.l f17, 44(r5)
fld.l 52(r16), f18
fsub.ss f0, f18, f19
fst.l f19, 48(r5)
fld.l 56(r16), f20
fsub.ss f0, f20, f21
fst.l f21, 52(r5)
// lineno: 1413
.B975: //.B0085
br .B977
nop
// lineno: 1415
.B970: //.B0083
ld.l 4(r6), r28
.DB.B970970:
btne 0x0004, r28, .B978
mov r6, r4
btne 0x0000, r19, .B982
orh h%.S00983, r0, r31
or l%.S00983, r31, r16
orh h%.B1308, r0, r1
br _printf
or l%.B1308, r1, r1
// lineno: 1422
.B982: //.B0088
ld.l 20(r4), r28
.DB.B982982:
bte 0x0000, r28, .B986
orh ha%_current_frame_count, r0, r31
ld.l l%_current_frame_count(r31), r29
ld.l 28(r4), r18
st.l r29, 44(r4)
orh h%.BSS, r0, r31
or l%.BSS, r31, r30
st.l r18, 0(r30)
ld.l 32(r4), r20
ld.l 36(r4), r21
st.l r20, 4(r30)
st.l r21, 8(r30)
ld.l 40(r4), r22
ld.l 12(r4), r23
st.l r22, 12(r30)
bte 0x0000, r23, .B989
call _billboardize
mov r0, r17
// lineno: 1441
.B989: //.B0090
ld.l 20(r4), r16
.DB.B989989:
ld.l 48(fp), r17
ld.l 60(fp), r18
ld.l 56(fp), r19
call _cull_object
addu 48, r4, r20
// lineno: 1446
.B986: //.B0089
br .B990
nop
// lineno: 0
.B978: //.B0087
orh h%.S00991, r0, r31
.DB.B978978:
call _printf
or l%.S00991, r31, r16
// lineno: 0
.B990: //.B0091
// lineno: 1448
.B977: //.B0086
// lineno: 0
.B1308: //.R0009
// lineno: 0
ld.l -16(fp), r4
ld.l -12(fp), r5
ld.l -8(fp), r6
adds .a16+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.align 8
_cull_tree:
.a17 = 80
.f17 = 112
addu -(.a17+.f17), sp, sp
st.l fp,(.f17-16)(sp)
addu (.f17-16), sp, fp
st.l r1, 4(fp)
st.l r4, -80(fp)
st.l r5, -76(fp)
st.l r6, -72(fp)
st.l r7, -68(fp)
st.l r16, 48(fp)
st.l r17, 52(fp)
st.l r18, 56(fp)
st.l r19, 60(fp)
// lineno: 0
// lineno: 1459
ld.l 52(fp), r28
adds -64, fp, r16
addu 12, r28, r17
call _fn_concatenate
ld.l 48(fp), r18
ld.l 52(fp), r28
ld.l 92(r28), r29
bte 0x0000, r29, .B1000
ld.l 76(r28), r30
and 0x0002, r30, r0
bc .B1000
adds -64, fp, r16
ld.l 56(fp), r18
mov r29, r17
call _cull_tree
ld.l 60(fp), r19
// lineno: 1466
.B1000: //.B0092
ld.l 52(fp), r28
.DB.B10001000:
ld.l 76(r28), r29
and 0x0001, r29, r0
bc .B1001
adds -64, fp, r16
ld.l 56(fp), r18
mov r28, r17
call _cull_node
ld.l 60(fp), r19
// lineno: 1470
.B1001: //.B0093
ld.l 52(fp), r28
.DB.B10011001:
ld.l 88(r28), r29
bte 0x0000, r29, .B1003
ld.l 56(fp), r5
ld.l 60(fp), r6
ld.l 48(fp), r7
mov r28, r4
// lineno: 1472
.B1327: //.M0003
ld.l 88(r4), r4
.DB.B13271327:
ld.l 76(r4), r28
and 0x0001, r28, r0
bc .B1005
adds -64, fp, r16
addu 12, r4, r17
call _fn_concatenate
mov r7, r18
adds -64, fp, r16
mov r4, r17
mov r5, r18
call _cull_node
mov r6, r19
// lineno: 1476
.B1005: //.B0096
ld.l 88(r4), r28
.DB.B10051005:
xor 0x0000, r28, r0
bnc.t .DB.B13271327
ld.l 88(r4), r4
// lineno: 0
st.l r4, 52(fp)
// lineno: 0
.B1003: //.B0095
// lineno: 1477
ld.l -80(fp), r4
ld.l -76(fp), r5
ld.l -72(fp), r6
ld.l -68(fp), r7
adds .a17+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.globl _veloci_cull
.align 8
_veloci_cull:
.a18 = 80
.f18 = 112
addu -(.a18+.f18), sp, sp
st.l fp,(.f18-16)(sp)
addu (.f18-16), sp, fp
st.l r1, 4(fp)
st.l r4, -88(fp)
st.l r5, -84(fp)
st.l r6, -80(fp)
st.l r7, -76(fp)
st.l r8, -72(fp)
st.l r16, 48(fp)
// lineno: 0
orh h%.BSS+148, r0, r31
or l%.BSS+148, r31, r6
orh h%_chunk_head, r0, r31
or l%_chunk_head, r31, r7
orh h%_current_frame_count, r0, r31
or l%_current_frame_count, r31, r8
// lineno: 1487
ld.l r0(r8), r28
btne 0x0000, r28, .B1018
call _malloc
adds 4096, r0, r16
addu 16, r16, r28
orh ha%_chunk_free_ptr, r0, r31
st.l r28, l%_chunk_free_ptr(r31)
orh ha%_chunk_active, r0, r31
st.l r16, l%_chunk_active(r31)
adds 1, r0, r29
st.l r29, 12(r16)
st.l r16, 0(r7)
st.l r0, 4(r16)
st.l r0, 8(r16)
br .B1020
st.l r0, 0(r16)
// lineno: 1502
.B1018: //.B0097
ld.l r0(r7), r28
.DB.B10181018:
adds 1, r0, r30
addu 16, r28, r29
orh ha%_chunk_free_ptr, r0, r31
st.l r29, l%_chunk_free_ptr(r31)
orh ha%_chunk_active, r0, r31
st.l r28, l%_chunk_active(r31)
st.l r0, 8(r28)
st.l r0, 0(r28)
st.l r30, 12(r28)
orh ha%_chunk_usage, r0, r31
st.l r0, l%_chunk_usage(r31)
// lineno: 1511
.B1020: //.B0098
adds 1, r0, r28
.DB.B10201020:
orh ha%_allocated_ramps, r0, r31
st.l r28, l%_allocated_ramps(r31)
call _dpl_IdMatrix
adds -64, fp, r16
ld.l r0(r8), r28
ld.l 48(fp), r17
adds 1, r28, r29
st.l r29, 0(r8)
call _cull_view
mov r6, r16
ld.l 48(fp), r28
ld.l 156(r28), r5
bte 0x0000, r5, .B1023
// lineno: 1520
.B1345: //.M0004
ld.l r0(r5), r4
.DB.B13451345:
ld.l 16(r4), r28
bte 0x0000, r28, .B1025
ld.l 8(r4), r29
bte 0x0000, r29, .B1026
adds -64, fp, r16
ld.l 12(r4), r19
mov r29, r17
call _cull_tree
mov r6, r18
// lineno: 0
.B1026: //.B0102
// lineno: 1525
.B1025: //.B0101
ld.l 8(r5), r5
.DB.B10251025:
xor 0x0000, r5, r0
bnc.t .DB.B13451345
ld.l r0(r5), r4
// lineno: 0
// lineno: 1527
.B1023: //.B0100
orh ha%_the_scene+16, r0, r31
.DB.B10231023:
ld.l l%_the_scene+16(r31), r5
bte 0x0000, r5, .B1028
// lineno: 1528
.B1346: //.M0005
ld.l r0(r5), r4
.DB.B13461346:
ld.l 16(r4), r28
bte 0x0000, r28, .B1030
ld.l 8(r4), r29
bte 0x0000, r29, .B1031
adds -64, fp, r16
ld.l 12(r4), r19
mov r29, r17
call _cull_tree
mov r6, r18
// lineno: 0
.B1031: //.B0106
// lineno: 1533
.B1030: //.B0105
ld.l 8(r5), r5
.DB.B10301030:
xor 0x0000, r5, r0
bnc.t .DB.B13461346
ld.l r0(r5), r4
// lineno: 0
// lineno: 1535
.B1028: //.B0104
ld.l r0(r7), r28
.DB.B10281028:
orh ha%.BSS+408, r0, r31
st.l r28, l%.BSS+408(r31)
mov r6, r16
// lineno: 0
// lineno: 1538
ld.l -88(fp), r4
ld.l -84(fp), r5
ld.l -80(fp), r6
ld.l -76(fp), r7
ld.l -72(fp), r8
adds .a18+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.data
.align 8
.C00037: // (0)
.long 0x40000000 // 2.00000000E+00
.C00038: // (4)
.long 0x3f000000 // 5.00000000E-01
.C00036: // (8)
.long 0x3f800000 // 1.00000000E+00
.align 8
.C01226: // (16)
.long 0x80000000, 0x43300000 // 4.50360177485414400E+15
.C00862: // (24)
.long 0x3e000000 // 1.25000000E-01
.C00920: // (28)
.long 0xbf800000 // -1.00000000E+00
.data
.align 1
.S00661: //
// " [ %f, %f, %f, %f ]\n"
.byte 0x20,0x5b,0x20,0x25,0x66,0x2c,0x20,0x25,0x66,0x2c,0x20
.byte 0x25,0x66,0x2c,0x20,0x25,0x66,0x20,0x5d,0x0a,0x00
.S00665: //
// " [ %f, %f, %f, %f ]\n"
.byte 0x20,0x5b,0x20,0x25,0x66,0x2c,0x20,0x25,0x66,0x2c,0x20
.byte 0x25,0x66,0x2c,0x20,0x25,0x66,0x20,0x5d,0x0a,0x00
.S00667: //
// " [ %f, %f, %f, %f ]\n"
.byte 0x20,0x5b,0x20,0x25,0x66,0x2c,0x20,0x25,0x66,0x2c,0x20
.byte 0x25,0x66,0x2c,0x20,0x25,0x66,0x20,0x5d,0x0a,0x00
.S00669: //
// " [ %f, %f, %f, %f ]\n"
.byte 0x20,0x5b,0x20,0x25,0x66,0x2c,0x20,0x25,0x66,0x2c,0x20
.byte 0x25,0x66,0x2c,0x20,0x25,0x66,0x20,0x5d,0x0a,0x00
.S00736: //
// "Velocirender ran out of memory in new_draw_item\n"
.byte 0x56,0x65,0x6c,0x6f,0x63,0x69,0x72,0x65,0x6e,0x64,0x65
.byte 0x72,0x20,0x72,0x61,0x6e,0x20,0x6f,0x75,0x74,0x20,0x6f
.byte 0x66,0x20,0x6d,0x65,0x6d,0x6f,0x72,0x79,0x20,0x69,0x6e
.byte 0x20,0x6e,0x65,0x77,0x5f,0x64,0x72,0x61,0x77,0x5f,0x69
.byte 0x74,0x65,0x6d,0x0a,0x00
.S00875: //
// "cull_lmodel returning due to NULL lmodel\n"
.byte 0x63,0x75,0x6c,0x6c,0x5f,0x6c,0x6d,0x6f,0x64,0x65,0x6c
.byte 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x69,0x6e,0x67,0x20
.byte 0x64,0x75,0x65,0x20,0x74,0x6f,0x20,0x4e,0x55,0x4c,0x4c
.byte 0x20,0x6c,0x6d,0x6f,0x64,0x65,0x6c,0x0a,0x00
.S00882: //
// "Failed to allocate draw item\n"
.byte 0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x61
.byte 0x6c,0x6c,0x6f,0x63,0x61,0x74,0x65,0x20,0x64,0x72,0x61
.byte 0x77,0x20,0x69,0x74,0x65,0x6d,0x0a,0x00
.S00922: //
// "Failed to allocate draw item\n"
.byte 0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x61
.byte 0x6c,0x6c,0x6f,0x63,0x61,0x74,0x65,0x20,0x64,0x72,0x61
.byte 0x77,0x20,0x69,0x74,0x65,0x6d,0x0a,0x00
.S00926: //
// "Not bothering to draw, no materials\n"
.byte 0x4e,0x6f,0x74,0x20,0x62,0x6f,0x74,0x68,0x65,0x72,0x69
.byte 0x6e,0x67,0x20,0x74,0x6f,0x20,0x64,0x72,0x61,0x77,0x2c
.byte 0x20,0x6e,0x6f,0x20,0x6d,0x61,0x74,0x65,0x72,0x69,0x61
.byte 0x6c,0x73,0x0a,0x00
.S00983: //
// "No lighting model, returning\n"
.byte 0x4e,0x6f,0x20,0x6c,0x69,0x67,0x68,0x74,0x69,0x6e,0x67
.byte 0x20,0x6d,0x6f,0x64,0x65,0x6c,0x2c,0x20,0x72,0x65,0x74
.byte 0x75,0x72,0x6e,0x69,0x6e,0x67,0x0a,0x00
.S00991: //
// "Unexpected node type in dcs\n"
.byte 0x55,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20
.byte 0x6e,0x6f,0x64,0x65,0x20,0x74,0x79,0x70,0x65,0x20,0x69
.byte 0x6e,0x20,0x64,0x63,0x73,0x0a,0x00
.data
.globl _current_frame_count
.align 4
_current_frame_count: //current_frame_count
.long 0
.globl _allocated_ramps
_allocated_ramps: //allocated_ramps
.long 0
_chunk_head: //chunk_head
.long 0
_chunk_active: //chunk_active
.long 0
_chunk_free_ptr: //chunk_free_ptr
.long 0
_chunk_usage: //chunk_usage
.long 0
.lcomm .STACK,48
.lcomm .BSS,416
//f_mtl_override +0
//b_mtl_override +4
//f_tex_override +8
//b_tex_override +12
//sphere_scale +16
//render_f +20
//render_b +84
//view +148
.data
.comm _ref_texture_ramps,16
.comm _texture_ramps,112
.extern _billboardize
.extern _dpl_XformPoint
.extern _dpl_Concat
.extern _fn_xform_bound
.extern _dpl_Scale
.extern _fn_concatenate
.extern _dpl_IdMatrix
.extern _matrix_copy
.extern _compute_phong_table
.extern _setRampEntry
.extern _sqrt
.extern _malloc
.extern _dpl_Invert
.extern _memcpy
.extern _printf