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

2590 lines
49 KiB
ArmAsm

.file "sfx.c"
// PGC Rel 2.0a -opt 2
.text
.align 8
_float_0to1:
// lineno: 0
orh ha%_sfx_random_ix, r0, r31
ld.l l%_sfx_random_ix(r31), r16
// lineno: 66
adds 1, r16, r16
adds -67, r16, r0
bc .B607
mov r0, r16
// lineno: 71
.B607: //.B0000
orh h%_sfx_random_numbers, r0, r31
.DB.B607607:
or l%_sfx_random_numbers, r31, r29
shl 2, r16, r30
fld.l r29(r30), f8
// lineno: 0
orh ha%_sfx_random_ix, r0, r31
bri r1
st.l r16, l%_sfx_random_ix(r31)
// lineno: 72
bri r1
nop
.align 8
_makeBangMtls:
.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)
st.l r4, -8(fp)
// lineno: 0
// lineno: 116
orh h%_first_mtl, r0, r31
or l%_first_mtl, r31, r28
ld.l 0(r28), r29
bte 0x0000, r29, .B923
orh ha%_first_mtl, r0, r31
call _create_material
st.l r0, l%_first_mtl(r31)
call _add_material
mov r16, r4
addu 84, r4, r16
orh h%.S00629, r0, r31
call _strcpy
or l%.S00629, r31, r17
orh ha%.C00036, r0, r31
fld.l l%.C00036(r31), f16
orh ha%.C00631, r0, r31
fld.l l%.C00631(r31), f17
fst.l f16, 4(r4)
fst.l f17, 8(r4)
orh ha%.C00038, r0, r31
fld.l l%.C00038(r31), f18
orh ha%.C00633, r0, r31
fld.l l%.C00633(r31), f19
fst.l f18, 12(r4)
call _create_material
fst.l f19, 24(r4)
call _add_material
mov r16, r4
addu 84, r4, r16
orh h%.S00634, r0, r31
call _strcpy
or l%.S00634, r31, r17
orh ha%.C00636, r0, r31
fld.l l%.C00636(r31), f16
fst.l f16, 4(r4)
fst.l f16, 8(r4)
call _create_material
fst.l f16, 12(r4)
call _add_material
mov r16, r4
addu 84, r4, r16
orh h%.S00637, r0, r31
call _strcpy
or l%.S00637, r31, r17
orh ha%.C00636, r0, r31
fld.l l%.C00636(r31), f16
orh ha%.C00639, r0, r31
fld.l l%.C00639(r31), f17
fst.l f16, 4(r4)
fst.l f17, 8(r4)
fst.l f17, 12(r4)
// lineno: 0
.B923: //.R0001
// lineno: 149
ld.l -8(fp), r4
adds .a2+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.align 8
_vertex_block:
.a3 = 80
.f3 = 48
addu -(.a3+.f3), sp, sp
st.l fp,(.f3-16)(sp)
addu (.f3-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 r17, 52(fp)
mov r16, r4
// lineno: 0
// lineno: 158
adds 56, r0, r28
ixfr r28, f16
ixfr r4, f18
fmlow.dd f18, f16, f20
call _malloc
fxfr f20, r16
mov r16, r5
subs 0, r4, r0
mov r16, r6
bnc .B647
ld.l 52(fp), r28
adds -1, r4, r18
addu 8, r28, r20
adds -1, r0, r17
mov r16, r19
bla r17, r18,.B946
pfmul.dd f0, f0, f0
// lineno: 163
.B946: //.M0000
st.l r19, 0(r20)
.DB.B946946:
mov r19, r28
addu 56, r19, r19
bla r17, r18, .B946
st.l r19, 44(r28)
// lineno: 0
mov r19, r6
// lineno: 166
.B647: //.B0003
ld.l 52(fp), r28
.DB.B647647:
mov r5, r16
ld.l 8(r28), r29
st.l r0, 44(r29)
st.l r5, 4(r28)
st.l r4, 28(r28)
// lineno: 0
// lineno: 175
ld.l -16(fp), r4
ld.l -12(fp), r5
ld.l -8(fp), r6
adds .a3+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.align 8
_initBang:
.a4 = 80
.f4 = 176
addu -(.a4+.f4), sp, sp
st.l fp,(.f4-16)(sp)
addu (.f4-16), sp, fp
st.l r1, 4(fp)
fst.d f2, -152(fp)
fst.d f4, -144(fp)
fst.d f6, -136(fp)
st.l r4, -128(fp)
st.l r5, -124(fp)
st.l r6, -120(fp)
st.l r7, -116(fp)
st.l r8, -112(fp)
st.l r9, -108(fp)
st.l r10, -104(fp)
st.l r11, -100(fp)
st.l r12, -96(fp)
st.l r13, -92(fp)
st.l r14, -88(fp)
st.l r15, -84(fp)
fld.l r0(r28), f6
st.l r16, 48(fp)
st.l r17, 52(fp)
st.l r18, 56(fp)
fst.l f8, 16(fp)
fst.l f9, 20(fp)
fst.l f10, 24(fp)
fst.l f11, 28(fp)
fst.l f12, 32(fp)
fst.l f13, 36(fp)
fst.l f14, 40(fp)
fst.l f15, 44(fp)
st.l r28, -4(fp)
// lineno: 0
orh ha%.C00672, r0, r31
fld.l l%.C00672(r31), f4
orh ha%.C00038, r0, r31
fld.l l%.C00038(r31), f5
orh ha%.C00036, r0, r31
fld.l l%.C00036(r31), f7
// lineno: 198
ld.l 48(fp), r29
adds 12, r0, r17
ld.l 4(r29), r30
ld.l 140(r30), r16
mov r16, r16
call _nameToAddress
nop
ld.l -4(fp), r28
ld.l 4(r16), r29
fld.l 36(fp), f16
ld.l 8(r29), r30
fld.l 40(fp), f18
ld.l 4(r30), r17
fmul.ss f16, f4, f17
ld.l 4(r17), r6
st.l r17, -20(fp)
fst.l f17, 36(fp)
fmul.ss f18, f4, f19
fld.l 44(fp), f20
st.l r30, -16(fp)
fst.l f19, 40(fp)
fmul.ss f20, f4, f21
orh h%_sfx_random_base, r0, r31
or l%_sfx_random_base, r31, r18
fst.l f21, 44(fp)
ld.l r0(r18), r19
orh ha%_sfx_random_ix, r0, r31
st.l r19, l%_sfx_random_ix(r31)
adds 1, r19, r20
st.l r20, 0(r18)
st.l r29, -12(fp)
adds -67, r20, r0
st.l r16, -8(fp)
bc .B673
st.l r0, 0(r18)
// lineno: 216
.B673: //.B0004
orh ha%.C00674, r0, r31
.DB.B673673:
fld.l l%.C00674(r31), f16
ld.l 48(fp), r29
ld.l 56(fp), r16
fst.l f16, 1180(r29)
ld.l 4(r29), r30
st.l r16, 1172(r29)
ld.l 52(fp), r17
fld.l 32(fp), f17
st.l r17, 0(r29)
st.l r0, 152(r30)
ld.l r0(r29), r18
st.l r0, 1184(r29)
fst.l f17, 1164(r29)
fld.l 16(fp), f18
st.l r0, 1168(r29)
fst.l f18, 1160(r29)
orh ha%.C00675, r0, r31
fld.l l%.C00675(r31), f19
fst.l f19, 1176(r29)
btne 0x0000, r18, .B676
br .B677
adds 24, r0, r5
// lineno: 230
.B676: //.B0005
adds 32, r0, r5
.DB.B676676:
// lineno: 232
.B677: //.B0006
orh ha%.C00679, r0, r31
.DB.B677677:
fld.l l%.C00679(r31), f16
fld.l 24(fp), f17
mov r0, r4
fmul.ss f17, f16, f18
subs 0, r5, r0
fst.l f18, 24(fp)
bnc .B681
ld.l 48(fp), r29
addu 12, r6, r7
addu 16, r29, r30
st.l r30, -24(fp)
addu 1176, r29, r16
st.l r16, -28(fp)
addu 1032, r29, r13
addu 8, r29, r14
addu 12, r29, r15
addu 4, r6, r8
addu 8, r6, r9
addu 32, r6, r10
addu 36, r6, r11
addu 40, r6, r12
mov r0, r4
// lineno: 237
.B1026: //.M0001
fld.l 24(fp), f16
.DB.B10261026:
st.l r0, 0(r13)
fst.l f16, -32(fp)
call _float_0to1
nop
ld.l -4(fp), r28
fsub.ss f8, f5, f16
fld.l -32(fp), f17
fld.l 24(fp), f19
fld.l 28(fp), f20
fmul.ss f17, f16, f18
fst.l f18, r0(r14)
fst.l f20, -40(fp)
fst.l f19, -36(fp)
call _float_0to1
nop
ld.l -4(fp), r28
fsub.ss f8, f5, f16
fld.l -40(fp), f17
fld.l -36(fp), f19
fld.l 24(fp), f21
fadd.ss f17, f16, f18
fmul.ss f19, f18, f20
fst.l f20, r0(r15)
fst.l f21, -44(fp)
call _float_0to1
nop
ld.l -4(fp), r28
fsub.ss f8, f5, f16
fld.l -44(fp), f17
ld.l -24(fp), r29
fmul.ss f17, f16, f18
fst.l f18, r0(r29)
call _float_0to1
nop
ld.l -4(fp), r28
fld.l 20(fp), f16
fsub.ss f8, f5, f17
fmul.ss f17, f16, f18
fst.l f18, r0(r6)
fst.l f16, -48(fp)
call _float_0to1
nop
ld.l -4(fp), r28
orh ha%.C00685, r0, r31
fld.l l%.C00685(r31), f16
fld.l -48(fp), f18
fld.l 20(fp), f20
fsub.ss f8, f16, f17
fmul.ss f18, f17, f19
fst.l f19, r0(r8)
fst.l f20, -52(fp)
call _float_0to1
nop
ld.l -4(fp), r28
fsub.ss f8, f5, f16
fld.l -52(fp), f17
fst.l f0, r0(r7)
fmul.ss f17, f16, f18
fst.l f18, r0(r9)
call _float_0to1
nop
ld.l -4(fp), r28
fmul.ss f8, f6, f16
fld.l 36(fp), f17
fsub.ss f7, f16, f3
fmul.ss f17, f3, f2
pfle.ss f2, f4, f0
bnc .B687
fiadd.ss f4, f0, f2
// lineno: 253
.B687: //.B0009
fst.l f2, r0(r10)
.DB.B687687:
call _float_0to1
nop
ld.l -4(fp), r28
fmul.ss f6, f8, f16
fld.l 40(fp), f17
fsub.ss f7, f16, f3
fmul.ss f17, f3, f2
pfle.ss f2, f4, f0
bnc .B688
fiadd.ss f4, f0, f2
// lineno: 259
.B688: //.B0010
fst.l f2, r0(r11)
.DB.B688688:
call _float_0to1
nop
ld.l -4(fp), r28
fmul.ss f6, f8, f16
fld.l 44(fp), f17
fsub.ss f7, f16, f3
fmul.ss f17, f3, f2
pfle.ss f2, f4, f0
bnc .B689
fiadd.ss f4, f0, f2
// lineno: 265
.B689: //.B0011
ld.l 48(fp), r29
.DB.B689689:
fst.l f2, r0(r12)
ld.l r0(r29), r30
btne 0x0000, r30, .B690
fld.l 20(fp), f16
addu 56, r6, r6
addu 56, r8, r8
addu 56, r9, r9
addu 56, r10, r10
addu 56, r11, r11
addu 56, r7, r7
addu 56, r12, r12
fst.l f16, -56(fp)
call _float_0to1
nop
ld.l -4(fp), r28
fsub.ss f8, f5, f16
fld.l -56(fp), f17
fld.l 20(fp), f19
fmul.ss f17, f16, f18
fst.l f18, r0(r6)
fst.l f19, -60(fp)
call _float_0to1
nop
ld.l -4(fp), r28
orh ha%.C00685, r0, r31
fld.l l%.C00685(r31), f16
fld.l -60(fp), f18
fld.l 20(fp), f20
fsub.ss f8, f16, f17
fmul.ss f18, f17, f19
fst.l f19, r0(r8)
fst.l f20, -64(fp)
call _float_0to1
nop
ld.l -4(fp), r28
fsub.ss f8, f5, f16
fld.l -64(fp), f17
fst.l f0, r0(r7)
fmul.ss f17, f16, f18
fst.l f18, r0(r9)
call _float_0to1
nop
ld.l -4(fp), r28
fmul.ss f6, f8, f16
fld.l 36(fp), f18
fsub.ss f7, f16, f17
fmul.ss f18, f17, f2
pfle.ss f2, f4, f0
bnc .B692
fiadd.ss f4, f0, f2
// lineno: 279
.B692: //.B0013
fst.l f2, r0(r10)
.DB.B692692:
call _float_0to1
nop
ld.l -4(fp), r28
fmul.ss f6, f8, f16
fld.l 40(fp), f17
fsub.ss f7, f16, f3
fmul.ss f17, f3, f2
pfle.ss f2, f4, f0
bnc .B693
fiadd.ss f4, f0, f2
// lineno: 285
.B693: //.B0014
fst.l f2, r0(r11)
.DB.B693693:
call _float_0to1
nop
ld.l -4(fp), r28
fmul.ss f6, f8, f16
fld.l 44(fp), f17
fsub.ss f7, f16, f3
fmul.ss f17, f3, f2
pfle.ss f2, f4, f0
bnc .B694
fiadd.ss f4, f0, f2
// lineno: 291
.B694: //.B0015
fld.l 20(fp), f16
.DB.B694694:
fst.l f2, r0(r12)
addu 56, r6, r6
addu 56, r8, r8
addu 56, r9, r9
addu 56, r10, r10
addu 56, r11, r11
addu 56, r12, r12
addu 56, r7, r7
fst.l f16, -68(fp)
call _float_0to1
nop
ld.l -4(fp), r28
fsub.ss f8, f5, f16
fld.l -68(fp), f17
fld.l 20(fp), f19
fmul.ss f17, f16, f18
fst.l f18, r0(r6)
fst.l f19, -72(fp)
call _float_0to1
nop
ld.l -4(fp), r28
orh ha%.C00685, r0, r31
fld.l l%.C00685(r31), f16
fld.l -72(fp), f18
fld.l 20(fp), f20
fsub.ss f8, f16, f17
fmul.ss f18, f17, f19
fst.l f19, r0(r8)
fst.l f20, -76(fp)
call _float_0to1
nop
ld.l -4(fp), r28
fsub.ss f8, f5, f16
fld.l -76(fp), f17
fst.l f0, r0(r7)
fmul.ss f17, f16, f18
fst.l f18, r0(r9)
call _float_0to1
nop
ld.l -4(fp), r28
fmul.ss f6, f8, f16
fld.l 36(fp), f17
fsub.ss f7, f16, f3
fmul.ss f17, f3, f2
pfle.ss f2, f4, f0
bnc .B695
fiadd.ss f4, f0, f2
// lineno: 304
.B695: //.B0016
fst.l f2, r0(r10)
.DB.B695695:
call _float_0to1
nop
ld.l -4(fp), r28
fmul.ss f6, f8, f16
fld.l 40(fp), f17
fsub.ss f7, f16, f3
fmul.ss f17, f3, f2
pfle.ss f2, f4, f0
bnc .B696
fiadd.ss f4, f0, f2
// lineno: 310
.B696: //.B0017
fst.l f2, r0(r11)
.DB.B696696:
call _float_0to1
nop
ld.l -4(fp), r28
fmul.ss f6, f8, f16
fld.l 44(fp), f17
fsub.ss f7, f16, f3
fmul.ss f17, f3, f2
pfle.ss f2, f4, f0
bnc .B697
fiadd.ss f4, f0, f2
// lineno: 316
.B697: //.B0018
fst.l f2, r0(r12)
.DB.B697697:
addu 56, r6, r6
addu 56, r8, r8
addu 56, r9, r9
addu 56, r10, r10
addu 56, r11, r11
addu 56, r12, r12
br .B698
addu 56, r7, r7
// lineno: 320
.B690: //.B0012
ld.l -28(fp), r29
.DB.B690690:
addu 56, r6, r6
fld.l r0(r29), f16
addu 56, r8, r8
addu 56, r9, r9
fst.l f16, r0(r7)
addu 56, r10, r10
addu 56, r11, r11
addu 56, r12, r12
addu 56, r7, r7
// lineno: 323
.B698: //.B0019
ld.l -24(fp), r29
.DB.B698698:
adds 1, r4, r4
addu 16, r29, r29
st.l r29, -24(fp)
addu 4, r13, r13
addu 16, r14, r14
addu 16, r15, r15
subs r4, r5, r0
bc.t .DB.B10261026
fld.l 24(fp), f16
// lineno: 0
// lineno: 325
.B681: //.B0008
ld.l -16(fp), r16
.DB.B681681:
call _bound_patch
nop
ld.l -4(fp), r28
ld.l -16(fp), r16
mov r0, r17
call _compute_pmesh_plane_eqns
nop
ld.l -4(fp), r28
ld.l -12(fp), r16
call _reboundLOD
nop
ld.l -4(fp), r28
ld.l -8(fp), r16
call _reboundObject
nop
ld.l -4(fp), r28
// lineno: 0
// lineno: 331
fld.d -152(fp), f2
fld.d -144(fp), f4
fld.d -136(fp), f6
ld.l -128(fp), r4
ld.l -124(fp), r5
ld.l -120(fp), r6
ld.l -116(fp), r7
ld.l -112(fp), r8
ld.l -108(fp), r9
ld.l -104(fp), r10
ld.l -100(fp), r11
ld.l -96(fp), r12
ld.l -92(fp), r13
ld.l -88(fp), r14
ld.l -84(fp), r15
adds .a4+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.align 8
_createBang:
.a5 = 80
.f5 = 176
addu -(.a5+.f5), sp, sp
st.l fp,(.f5-16)(sp)
addu (.f5-16), sp, fp
st.l r1, 4(fp)
st.l r4, -144(fp)
st.l r5, -140(fp)
st.l r6, -136(fp)
st.l r7, -132(fp)
st.l r8, -128(fp)
st.l r9, -124(fp)
st.l r10, -120(fp)
st.l r11, -116(fp)
st.l r12, -112(fp)
st.l r13, -108(fp)
st.l r14, -104(fp)
st.l r15, -100(fp)
mov r16, r8
// lineno: 0
// lineno: 347
call _makeBangMtls
nop
call _malloc
adds 1188, r0, r16
mov r16, r13
call _PAZcreateInstance
st.l r8, 0(r16)
st.l r16, 4(r13)
st.l r0, 140(r16)
adds 144, r0, r16
ld.l 4(r13), r28
adds 1, r0, r29
st.l r0, 152(r28)
call _malloc
st.l r29, -80(fp)
call __InitObject
mov r16, r12
call _malloc
adds 176, r0, r16
call __InitLOD
mov r16, r11
orh ha%.C00722, r0, r31
fld.l l%.C00722(r31), f16
mov r12, r16
adds 12, r0, r17
fst.l f16, 164(r11)
st.l r0, 172(r11)
call _newName
fst.l f0, 160(r11)
ld.l 4(r13), r28
st.l r16, 140(r28)
btne 0x0000, r8, .B723
call _malloc
adds 224, r0, r16
call __InitPatch
st.l r16, -84(fp)
call _nextSem
nop
ld.l -84(fp), r28
call _InitSem
st.l r16, 220(r28)
ld.l -84(fp), r10
addu 148, r10, r16
orh h%.S00727, r0, r31
call _strcpy
or l%.S00727, r31, r17
addu 180, r10, r16
orh h%.S00729, r0, r31
call _strcpy
or l%.S00729, r31, r17
adds 32, r0, r16
adds 1, r0, r28
call _malloc
st.l r28, 144(r10)
call __InitVstrip
mov r16, r9
adds 72, r0, r16
call _vertex_block
mov r9, r17
ld.l 4(r9), r15
adds 2, r0, r28
mov r15, r14
st.l r28, 24(r9)
ld.l 4(r10), r29
btne 0x0000, r29, .B734
st.l r9, 4(r10)
br .B736
st.l r9, 8(r10)
// lineno: 407
.B734: //.B0022
ld.l 8(r10), r28
.DB.B734734:
st.l r9, 0(r28)
st.l r9, 8(r10)
// lineno: 407
.B736: //.B0023
ld.l 28(r9), r28
.DB.B736736:
st.l r28, 140(r10)
orh ha%_shared_cntl, r0, r31
ld.l l%_shared_cntl(r31), r29
ld.l 28(r9), r16
ld.l 140(r29), r30
subs r30, r16, r0
bnc .B738
st.l r16, 140(r29)
// lineno: 417
.B738: //.B0024
adds 32, r0, r16
.DB.B738738:
call _malloc
nop
call __InitVstrip
mov r16, r9
adds 24, r0, r16
adds 2, r0, r28
mov r9, r17
call _vertex_block
st.l r28, 24(r9)
ld.l 4(r9), r14
adds 23, r0, r18
mov r14, r19
addu -52, r14, r5
addu -48, r14, r6
mov r15, r20
addu 56, r15, r21
addu 112, r15, r4
adds -1, r0, r17
bla r17, r18,.B1108
pfmul.dd f0, f0, f0
// lineno: 423
.B1108: //.M0002
mov r20, r28
.DB.B11081108:
st.l r28, 0(r19)
mov r21, r29
st.l r29, 56(r5)
mov r4, r30
st.l r30, 56(r6)
mov r19, r7
addu 56, r5, r5
addu 56, r6, r6
addu 56, r19, r19
addu 168, r20, r20
addu 168, r21, r21
bla r17, r18, .B1108
addu 168, r4, r4
// lineno: 0
ld.l 4(r10), r28
mov r19, r14
btne 0x0000, r28, .B746
st.l r9, 4(r10)
br .B748
st.l r9, 8(r10)
// lineno: 432
.B746: //.B0028
ld.l 8(r10), r28
.DB.B746746:
st.l r9, 0(r28)
st.l r9, 8(r10)
// lineno: 432
.B748: //.B0029
orh ha%_shared_cntl, r0, r31
.DB.B748748:
ld.l l%_shared_cntl(r31), r28
ld.l 28(r9), r30
ld.l 144(r28), r29
subs r29, r30, r0
bnc .B750
st.l r30, 144(r28)
// lineno: 0
.B750: //.B0030
br .B751
nop
// lineno: 0
.B723: //.B0020
// lineno: 566
.B751: //.B0031
ld.l 172(r11), r28
.DB.B751751:
ld.l 140(r10), r29
ld.l 8(r11), r16
adds r28, r29, r30
st.l r30, 172(r11)
btne 0x0000, r16, .B754
st.l r10, 8(r11)
br .B756
st.l r10, 12(r11)
// lineno: 568
.B754: //.B0033
ld.l 12(r11), r28
.DB.B754754:
st.l r10, 0(r28)
st.l r10, 12(r11)
// lineno: 568
.B756: //.B0034
ld.l 4(r12), r28
.DB.B756756:
btne 0x0000, r28, .B760
st.l r11, 4(r12)
br .B762
st.l r11, 8(r12)
// lineno: 571
.B760: //.B0036
ld.l 8(r12), r28
.DB.B760760:
st.l r11, 0(r28)
st.l r11, 8(r12)
// lineno: 571
.B762: //.B0037
call _reconnectLODs
mov r12, r16
orh h%_sceneGeometry, r0, r31
or l%_sceneGeometry, r31, r28
ld.l 0(r28), r29
btne 0x0000, r29, .B767
orh h%_sceneGeometry, r0, r31
or l%_sceneGeometry, r31, r30
st.l r12, 0(r30)
br .B769
st.l r12, 4(r30)
// lineno: 575
.B767: //.B0039
orh h%_sceneGeometry+4, r0, r31
.DB.B767767:
or l%_sceneGeometry+4, r31, r28
ld.l 0(r28), r29
st.l r12, 0(r29)
st.l r12, 0(r28)
// lineno: 575
.B769: //.B0040
orh ha%.C00773, r0, r31
.DB.B769769:
fld.l l%.C00773(r31), f8
mov r13, r16
mov r0, r17
orh ha%.C00774, r0, r31
fld.l l%.C00774(r31), f9
orh ha%.C00775, r0, r31
fld.l l%.C00775(r31), f10
orh ha%.C00776, r0, r31
fld.l l%.C00776(r31), f11
orh ha%.C00777, r0, r31
fld.l l%.C00777(r31), f12
orh ha%.C00685, r0, r31
fld.l l%.C00685(r31), f16
adds -96, fp, r28
fiadd.ss f12, f0, f13
fiadd.ss f12, f0, f14
fiadd.ss f12, f0, f15
mov r0, r18
call _initBang
fst.l f16, -96(fp)
orh ha%_scene_resolved, r0, r31
st.l r0, l%_scene_resolved(r31)
mov r13, r16
// lineno: 0
// lineno: 583
ld.l -144(fp), r4
ld.l -140(fp), r5
ld.l -136(fp), r6
ld.l -132(fp), r7
ld.l -128(fp), r8
ld.l -124(fp), r9
ld.l -120(fp), r10
ld.l -116(fp), r11
ld.l -112(fp), r12
ld.l -108(fp), r13
ld.l -104(fp), r14
ld.l -100(fp), r15
adds .a5+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.align 8
_step_bang:
.a6 = 80
.f6 = 160
addu -(.a6+.f6), sp, sp
st.l fp,(.f6-16)(sp)
addu (.f6-16), sp, fp
st.l r1, 4(fp)
fst.d f2, -136(fp)
st.l r4, -128(fp)
st.l r5, -124(fp)
st.l r6, -120(fp)
st.l r7, -116(fp)
st.l r8, -112(fp)
st.l r9, -108(fp)
st.l r10, -104(fp)
st.l r11, -100(fp)
st.l r12, -96(fp)
st.l r13, -92(fp)
st.l r14, -88(fp)
st.l r15, -84(fp)
st.l r16, 48(fp)
// lineno: 0
orh ha%.C00795, r0, r31
fld.l l%.C00795(r31), f2
orh ha%.C00793, r0, r31
fld.l l%.C00793(r31), f3
// lineno: 589
ld.l 1172(r16), r28
ld.l 4(r16), r29
st.l r28, -4(fp)
btne 0x0000, r29, .B798
br .B1115
nop
// lineno: 610
.B798: //.B0041
ld.l 48(fp), r28
.DB.B798798:
adds 12, r0, r17
ld.l 4(r28), r29
ld.l 140(r29), r30
call _nameToAddress
mov r30, r16
st.l r16, -8(fp)
bte 0x0000, r16, .B1115
ld.l 4(r16), r28
ld.l 48(fp), r23
ld.l 8(r28), r29
ld.l r0(r23), r24
ld.l 4(r29), r30
ld.l 4(r30), r22
st.l r30, -20(fp)
st.l r22, -24(fp)
st.l r29, -16(fp)
st.l r28, -12(fp)
btne 0x0000, r24, .B803
adds 24, r0, r25
st.l r25, -28(fp)
br .B805
st.l r25, -32(fp)
// lineno: 625
.B803: //.B0044
adds 32, r0, r28
.DB.B803803:
st.l r28, -28(fp)
st.l r28, -32(fp)
// lineno: 630
.B805: //.B0045
ld.l -32(fp), r28
.DB.B805805:
subs 0, r28, r0
bnc .B808
orh ha%.C00784, r0, r31
fld.l l%.C00784(r31), f14
orh ha%.C00797, r0, r31
fld.l l%.C00797(r31), f15
ld.l 48(fp), r29
fld.l -36(fp), f8
addu 524, r29, r30
st.l r30, -60(fp)
addu 528, r29, r22
st.l r22, -64(fp)
addu 1176, r29, r23
st.l r23, -68(fp)
addu 1164, r29, r24
st.l r24, -72(fp)
addu 1168, r29, r25
st.l r25, -76(fp)
addu 1180, r29, r10
fld.l -40(fp), f9
fld.l -44(fp), f10
fld.l -48(fp), f11
fld.l -52(fp), f12
fld.l -56(fp), f13
ld.l -24(fp), r21
addu 12, r29, r11
addu 4, r21, r4
addu 8, r21, r5
addu 32, r21, r6
addu 36, r21, r7
addu 40, r21, r8
addu 12, r21, r9
addu 8, r29, r12
addu 16, r29, r13
addu 1032, r29, r14
addu 520, r29, r15
adds -1, r28, r18
ld.l -4(fp), r20
adds -1, r0, r17
adds 1, r0, r19
bla r17, r18,.B1187
pfmul.dd f0, f0, f0
// lineno: 634
.B1187: //.M0003
fld.l r0(r10), f16
.DB.B11871187:
fld.l r0(r11), f18
fld.l r0(r12), f21
fmul.ss f16, f14, f17
ld.l -60(fp), r28
fld.l r0(r13), f24
fsub.ss f18, f17, f19
ld.l -64(fp), r29
fst.l f19, r0(r11)
fld.l r0(r10), f20
fmul.ss f20, f21, f10
fst.l f10, r0(r15)
fld.l r0(r10), f22
fmul.ss f22, f19, f9
fst.l f9, r0(r28)
fld.l r0(r10), f23
fmul.ss f23, f24, f8
fst.l f8, r0(r29)
fld.l r0(r21), f25
fld.l r0(r4), f27
fld.l r0(r5), f29
fadd.ss f10, f25, f26
fst.l f26, r0(r21)
fadd.ss f9, f27, f28
fst.l f28, r0(r4)
fadd.ss f8, f29, f30
fst.l f30, r0(r5)
bte 0x0000, r20, .B810
fld.l r0(r6), f31
fld.l r0(r7), f17
fld.l r0(r8), f21
fmul.ss f31, f3, f16
fst.l f16, r0(r6)
fmul.ss f17, f2, f18
fst.l f18, r0(r7)
fmul.ss f21, f15, f20
fst.l f20, r0(r8)
// lineno: 650
.B810: //.B0048
ld.l -72(fp), r28
.DB.B810810:
fld.l r0(r4), f17
fld.l r0(r28), f16
pfle.ss f16, f17, f0
bnc .B812
ld.l r0(r14), r29
btne 0x0000, r29, .B814
ld.l -76(fp), r30
st.l r19, 0(r14)
ld.l r0(r30), r22
adds r19, r22, r23
st.l r23, 0(r30)
// lineno: 0
.B814: //.B0050
// lineno: 657
.B812: //.B0049
ld.l 48(fp), r28
.DB.B812812:
ld.l r0(r28), r29
btne 0x0000, r29, .B816
addu 56, r21, r30
fld.l r0(r30), f16
addu 56, r30, r22
addu 56, r4, r23
fadd.ss f10, f16, f17
fld.l r0(r23), f20
addu 56, r23, r24
fst.l f17, r0(r30)
fadd.ss f9, f20, f21
fld.l r0(r22), f18
addu 56, r5, r25
fst.l f21, r0(r23)
fadd.ss f10, f18, f19
fld.l r0(r24), f22
fld.l r0(r25), f24
fst.l f19, r0(r22)
fadd.ss f9, f22, f23
addu 56, r25, r26
fld.l r0(r6), f28
fst.l f23, r0(r24)
fadd.ss f8, f24, f25
mov r6, r27
fld.l r0(r7), f12
fst.l f25, r0(r25)
mov r7, r28
fld.l r0(r26), f26
fst.l f28, 56(r27)++
fst.l f28, 56(r27)++
fadd.ss f8, f26, f27
addu 56, r27, r6
fld.l r0(r8), f11
fst.l f27, r0(r26)
fst.l f12, 56(r28)++
fst.l f12, 56(r28)++
addu 56, r28, r7
mov r8, r29
fst.l f11, 56(r29)++
fst.l f11, 56(r29)++
addu 56, r29, r8
addu 56, r22, r21
addu 56, r26, r5
addu 56, r24, r4
addu 56, r9, r30
addu 56, r30, r30
addu 56, r30, r9
ld.l -60(fp), r23
ld.l -64(fp), r25
addu 16, r23, r23
st.l r23, -60(fp)
addu 16, r25, r25
st.l r25, -64(fp)
addu 4, r14, r14
addu 16, r15, r15
addu 16, r12, r12
addu 16, r11, r11
bla r17, r18, .B1187
addu 16, r13, r13
br .B1188
nop
// lineno: 679
.B816: //.B0051
ld.l -68(fp), r28
.DB.B816816:
ld.l -60(fp), r29
fld.l r0(r28), f16
addu 16, r29, r29
st.l r29, -60(fp)
fst.l f16, r0(r9)
addu 56, r21, r21
ld.l -64(fp), r30
addu 56, r6, r6
addu 16, r30, r30
st.l r30, -64(fp)
addu 56, r7, r7
addu 56, r8, r8
addu 56, r5, r5
addu 56, r4, r4
addu 56, r9, r9
addu 4, r14, r14
addu 16, r15, r15
addu 16, r12, r12
addu 16, r11, r11
bla r17, r18, .B1187
addu 16, r13, r13
// lineno: 0
.B1188: //.B0080
fst.l f8, -36(fp)
.DB.B11881188:
fst.l f9, -40(fp)
fst.l f10, -44(fp)
fst.l f11, -48(fp)
fst.l f12, -52(fp)
fst.l f13, -56(fp)
st.l r21, -24(fp)
// lineno: 683
.B808: //.B0047
ld.l 48(fp), r28
.DB.B808808:
ld.l r0(r28), r29
btne 0x0000, r29, .B823
ld.l -16(fp), r16
orh h%.B824, r0, r1
br _bound_patch
or l%.B824, r1, r1
// lineno: 688
.B823: //.B0053
ld.l -16(fp), r16
.DB.B823823:
call _bound_spatch
nop
// lineno: 690
.B824: //.B0054
ld.l 48(fp), r28
.DB.B824824:
ld.l -12(fp), r16
ld.l 1184(r28), r29
adds 1, r29, r30
st.l r30, 1184(r28)
orh ha%.C00674, r0, r31
fld.l l%.C00674(r31), f16
call _reboundLOD
fst.l f16, 1180(r28)
call _reboundObject
ld.l -8(fp), r16
ld.l 48(fp), r28
ld.l -28(fp), r30
ld.l 1168(r28), r29
btne r30, r29, .B826
ld.l 4(r28), r22
br .B828
st.l r0, 152(r22)
// lineno: 700
.B826: //.B0055
adds 1, r0, r28
.DB.B826826:
st.l r28, -80(fp)
// lineno: 703
.B828: //.B0056
ld.l -80(fp), r16
.DB.B828828:
// lineno: 0
.B1115: //.R0004
// lineno: 704
fld.d -136(fp), f2
ld.l -128(fp), r4
ld.l -124(fp), r5
ld.l -120(fp), r6
ld.l -116(fp), r7
ld.l -112(fp), r8
ld.l -108(fp), r9
ld.l -104(fp), r10
ld.l -100(fp), r11
ld.l -96(fp), r12
ld.l -92(fp), r13
ld.l -88(fp), r14
ld.l -84(fp), r15
adds .a6+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.globl _sfx_init
.align 8
_sfx_init:
.a7 = 0
.f7 = 112
addu -(.a7+.f7), sp, sp
st.l fp,(.f7-16)(sp)
addu (.f7-16), sp, fp
st.l r1, 4(fp)
fst.d f2, -88(fp)
fst.d f4, -80(fp)
fst.d f6, -72(fp)
st.l r4, -64(fp)
st.l r5, -60(fp)
st.l r6, -56(fp)
// lineno: 0
orh ha%.C00840, r0, r31
fld.l l%.C00840(r31), f2
orh ha%.C00844, r0, r31
fld.l l%.C00844(r31), f3
orh ha%.C00038, r0, r31
fld.l l%.C00038(r31), f4
orh ha%.C00777, r0, r31
fld.l l%.C00777(r31), f5
orh ha%.C00685, r0, r31
fld.l l%.C00685(r31), f6
orh ha%.C00773, r0, r31
fld.l l%.C00773(r31), f7
// lineno: 714
orh h%_sfx_inited, r0, r31
or l%_sfx_inited, r31, r28
ld.l 0(r28), r29
btne 0x0000, r29, .B1190
adds 1, r0, r30
orh ha%_sfx_inited, r0, r31
st.l r30, l%_sfx_inited(r31)
mov r0, r4
mov r0, r4
orh h%_paz_explosions, r0, r31
or l%_paz_explosions, r31, r5
// lineno: 723
.B1214: //.M0004
orh ha%.C00636, r0, r31
.DB.B12141214:
fld.l l%.C00636(r31), f8
call _createBang
mov r0, r16
orh ha%.C00842, r0, r31
fld.l l%.C00842(r31), f16
st.l r16, 0(r5)
fst.l f6, -8(fp)
call _float_0to1
fst.l f16, -12(fp)
fmul.ss f8, f2, f16
fld.l -12(fp), f17
orh ha%.C00843, r0, r31
fld.l l%.C00843(r31), f19
fsub.ss f17, f16, f18
fst.l f19, -20(fp)
call _float_0to1
fst.l f18, -16(fp)
orh ha%.C00036, r0, r31
fld.l l%.C00036(r31), f16
fmul.ss f8, f2, f17
fadd.ss f17, f16, f18
call _float_0to1
fst.l f18, -24(fp)
orh ha%.C00841, r0, r31
fld.l l%.C00841(r31), f16
fmul.ss f8, f2, f17
fadd.ss f17, f16, f18
call _float_0to1
fst.l f18, -28(fp)
fmul.ss f8, f2, f16
ld.l r0(r5), r16
fld.l -28(fp), f17
fadd.ss f16, f7, f8
mov r0, r17
fld.l -24(fp), f18
fld.l -20(fp), f19
fiadd.ss f17, f0, f9
fld.l -16(fp), f20
fiadd.ss f18, f0, f10
adds -8, fp, r28
fiadd.ss f19, f0, f11
fiadd.ss f20, f0, f12
fiadd.ss f5, f0, f13
fiadd.ss f6, f0, f14
fiadd.ss f5, f0, f15
call _initBang
mov r0, r18
ld.l r0(r5), r28
ld.l 4(r28), r6
call __idmatrix
addu 4, r6, r16
orh ha%.C01203, r0, r31
fld.d l%.C01203(r31), f16
shra 2, r4, r28
xorh 0x8000, r28, r29
ixfr r29, f18
fiadd.ss f17, f0, f19
adds 1, r0, r30
fsub.dd f18, f16, f20
st.l r30, -32(fp)
fmov.ds f20, f22
call _float_0to1
fst.l f22, -36(fp)
orh ha%.C01203, r0, r31
fld.d l%.C01203(r31), f16
and 0x0003, r4, r28
xorh 0x8000, r28, r29
ixfr r29, f18
fiadd.ss f17, f0, f19
fld.l -36(fp), f25
fsub.dd f18, f16, f20
fmov.ds f20, f22
fadd.ss f8, f4, f23
fmul.ss f23, f3, f24
fmul.ss f25, f24, f26
fst.l f26, -44(fp)
call _float_0to1
fst.l f22, -40(fp)
fsub.ss f8, f4, f16
fld.l -40(fp), f18
addu 4, r6, r16
fmul.ss f16, f3, f17
fld.l -44(fp), f19
ld.l -32(fp), r28
fmul.ss f18, f17, f8
fiadd.ss f3, f0, f9
fiadd.ss f19, f0, f10
call __translate
mov r28, r17
addu 68, r6, r16
call __invert
addu 4, r6, r17
adds 1, r4, r4
addu 4, r5, r5
adds -8, r4, r0
bc.t .DB.B12141214
orh ha%.C00636, r0, r31
// lineno: 0
// lineno: 0
.B1190: //.R0005
// lineno: 745
fld.d -88(fp), f2
fld.d -80(fp), f4
fld.d -72(fp), f6
ld.l -64(fp), r4
ld.l -60(fp), r5
ld.l -56(fp), r6
adds .a7+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.globl _PAZsfx
.align 8
_PAZsfx:
.a8 = 80
.f8 = 272
addu -(.a8+.f8), sp, sp
st.l fp,(.f8-16)(sp)
addu (.f8-16), sp, fp
st.l r1, 4(fp)
fst.d f2, -240(fp)
fst.d f4, -232(fp)
fst.d f6, -224(fp)
st.l r4, -216(fp)
st.l r5, -212(fp)
st.l r6, -208(fp)
st.l r7, -204(fp)
st.l r8, -200(fp)
st.l r9, -196(fp)
st.l r10, -192(fp)
st.l r17, 52(fp)
mov r16, r10
// lineno: 0
orh ha%.C00899, r0, r31
fld.l l%.C00899(r31), f2
orh ha%.C00038, r0, r31
fld.l l%.C00038(r31), f3
orh ha%.C00777, r0, r31
fld.l l%.C00777(r31), f4
orh ha%.C00844, r0, r31
fld.l l%.C00844(r31), f5
orh ha%.C00870, r0, r31
fld.l l%.C00870(r31), f6
orh ha%.C00889, r0, r31
fld.l l%.C00889(r31), f7
orh h%_active_fx, r0, r31
or l%_active_fx, r31, r6
orh h%_paz_explosions, r0, r31
or l%_paz_explosions, r31, r7
// lineno: 755
orh ha%_sfx_inited, r0, r31
ld.l l%_sfx_inited(r31), r28
bte 0x0000, r28, .B1224
ld.l r0(r6), r29
shl 2, r29, r30
ld.l r7(r30), r5
adds 1, r29, r16
st.l r16, 0(r6)
btne 0x0008, r16, .B851
st.l r0, 0(r6)
// lineno: 764
.B851: //.B0061
btne 0x0000, r10, .B852
orh ha%.C00855, r0, r31
fld.l l%.C00855(r31), f8
ld.l r0(r5), r17
mov r5, r16
orh ha%.C00856, r0, r31
fld.l l%.C00856(r31), f9
orh ha%.C00857, r0, r31
fld.l l%.C00857(r31), f10
ld.l 52(fp), r28
adds -8, fp, r29
fld.l 52(r28), f16
fiadd.ss f4, f0, f11
orh ha%.C00854, r0, r31
fld.l l%.C00854(r31), f17
orh ha%.C00858, r0, r31
fld.l l%.C00858(r31), f13
fsub.ss f17, f16, f12
orh ha%.C00685, r0, r31
fld.l l%.C00685(r31), f18
fiadd.ss f4, f0, f14
fiadd.ss f4, f0, f15
mov r0, r18
fst.l f18, -8(fp)
call _initBang
mov r29, r28
ld.l 4(r5), r28
adds 1, r0, r29
st.l r29, 152(r28)
adds 64, r0, r18
ld.l 4(r5), r30
ld.l 52(fp), r17
call _memcpy
addu 4, r30, r16
ld.l 4(r5), r28
addu 68, r28, r16
addu 4, r28, r17
orh h%.B860, r0, r1
br __invert
or l%.B860, r1, r1
// lineno: 777
.B852: //.B0062
btne 0x0001, r10, .B861
adds -72, fp, r16
ld.l 52(fp), r17
call _memcpy
adds 64, r0, r18
orh ha%.C00865, r0, r31
fld.l l%.C00865(r31), f8
ld.l r0(r5), r17
mov r5, r16
orh ha%.C00866, r0, r31
fld.l l%.C00866(r31), f9
orh ha%.C00867, r0, r31
fld.l l%.C00867(r31), f10
orh ha%.C00868, r0, r31
fld.l l%.C00868(r31), f11
ld.l 52(fp), r28
adds 1, r0, r18
fld.l 52(r28), f16
orh ha%.C00864, r0, r31
fld.l l%.C00864(r31), f17
orh ha%.C00636, r0, r31
fld.l l%.C00636(r31), f13
fsub.ss f17, f16, f12
orh ha%.C00869, r0, r31
fld.l l%.C00869(r31), f15
fst.l f4, -8(fp)
adds -8, fp, r29
fiadd.ss f13, f0, f14
call _initBang
mov r29, r28
adds -72, fp, r16
ld.l 4(r5), r28
fiadd.ss f6, f0, f8
adds 1, r0, r29
mov r0, r17
call __rotY
st.l r29, 152(r28)
call _float_0to1
nop
fmul.ss f8, f5, f16
adds -72, fp, r16
fadd.ss f16, f5, f9
fiadd.ss f0, f0, f8
fiadd.ss f0, f0, f10
call __translate
mov r0, r17
ld.l 4(r5), r28
adds -72, fp, r17
addu 4, r28, r16
call _memcpy
adds 64, r0, r18
ld.l 4(r5), r28
addu 68, r28, r16
call __invert
addu 4, r28, r17
ld.l r0(r6), r28
shl 2, r28, r29
ld.l r7(r29), r5
adds 1, r28, r30
st.l r30, 0(r6)
btne 0x0008, r30, .B871
st.l r0, 0(r6)
// lineno: 812
.B871: //.B0065
adds -72, fp, r16
.DB.B871871:
ld.l 52(fp), r17
call _memcpy
adds 64, r0, r18
orh ha%.C00865, r0, r31
fld.l l%.C00865(r31), f8
ld.l r0(r5), r17
mov r5, r16
orh ha%.C00866, r0, r31
fld.l l%.C00866(r31), f9
orh ha%.C00872, r0, r31
fld.l l%.C00872(r31), f10
orh ha%.C00873, r0, r31
fld.l l%.C00873(r31), f11
ld.l 52(fp), r28
adds 1, r0, r18
fld.l 52(r28), f16
orh ha%.C00864, r0, r31
fld.l l%.C00864(r31), f17
orh ha%.C00869, r0, r31
fld.l l%.C00869(r31), f13
fsub.ss f17, f16, f12
adds -8, fp, r29
fst.l f4, -8(fp)
fiadd.ss f13, f0, f14
fiadd.ss f13, f0, f15
call _initBang
mov r29, r28
ld.l 4(r5), r28
adds 1, r0, r29
st.l r29, 152(r28)
adds -72, fp, r17
ld.l 4(r5), r30
adds 64, r0, r18
call _memcpy
addu 4, r30, r16
ld.l 4(r5), r28
addu 68, r28, r16
call __invert
addu 4, r28, r17
ld.l r0(r6), r28
adds 1, r28, r29
st.l r29, 0(r6)
btne 0x0008, r29, .B874
st.l r0, 0(r6)
// lineno: 834
.B874: //.B0066
br .B875
nop
// lineno: 840
.B861: //.B0064
btne 0x0002, r10, .B876
orh ha%.C00855, r0, r31
fld.l l%.C00855(r31), f8
ld.l r0(r5), r17
mov r5, r16
orh ha%.C00878, r0, r31
fld.l l%.C00878(r31), f9
orh ha%.C00879, r0, r31
fld.l l%.C00879(r31), f10
orh ha%.C00685, r0, r31
fld.l l%.C00685(r31), f11
ld.l 52(fp), r28
adds -8, fp, r29
fld.l 52(r28), f16
orh ha%.C00854, r0, r31
fld.l l%.C00854(r31), f17
orh ha%.C00636, r0, r31
fld.l l%.C00636(r31), f13
fsub.ss f17, f16, f12
fst.l f11, -8(fp)
fiadd.ss f4, f0, f14
fiadd.ss f4, f0, f15
mov r0, r18
call _initBang
mov r29, r28
ld.l 4(r5), r28
adds 1, r0, r29
st.l r29, 152(r28)
adds 64, r0, r18
ld.l 4(r5), r30
ld.l 52(fp), r17
call _memcpy
addu 4, r30, r16
ld.l 4(r5), r28
addu 68, r28, r16
addu 4, r28, r17
orh h%.B880, r0, r1
br __invert
or l%.B880, r1, r1
// lineno: 847
.B876: //.B0068
btne 0x0003, r10, .B881
mov r0, r4
mov r0, r4
ld.l 52(fp), r8
addu 52, r8, r9
// lineno: 853
.B1247: //.M0005
adds -136, fp, r16
.DB.B12471247:
adds 64, r0, r18
call _memcpy
mov r8, r17
orh ha%.C00864, r0, r31
fld.l l%.C00864(r31), f16
fld.l r0(r9), f17
orh ha%.C00898, r0, r31
fld.l l%.C00898(r31), f19
fsub.ss f16, f17, f18
orh ha%.C00631, r0, r31
fld.l l%.C00631(r31), f20
orh ha%.C00636, r0, r31
fld.l l%.C00636(r31), f21
fst.l f4, -144(fp)
adds 1, r0, r28
fst.l f21, -164(fp)
fst.l f20, -160(fp)
fst.l f19, -156(fp)
fst.l f18, -152(fp)
call _float_0to1
st.l r28, -148(fp)
orh ha%.C00894, r0, r31
fld.l l%.C00894(r31), f16
fmul.ss f8, f4, f17
fadd.ss f17, f16, f18
call _float_0to1
fst.l f18, -168(fp)
orh ha%.C00892, r0, r31
fld.l l%.C00892(r31), f16
orh ha%.C00893, r0, r31
fld.l l%.C00893(r31), f18
fmul.ss f8, f16, f17
fadd.ss f17, f18, f19
call _float_0to1
fst.l f19, -172(fp)
orh ha%.C00890, r0, r31
fld.l l%.C00890(r31), f16
orh ha%.C00891, r0, r31
fld.l l%.C00891(r31), f18
fmul.ss f8, f16, f17
fadd.ss f17, f18, f19
call _float_0to1
fst.l f19, -176(fp)
orh ha%.C00841, r0, r31
fld.l l%.C00841(r31), f16
ld.l r0(r5), r17
mov r5, r16
fmul.ss f8, f16, f17
fld.l -176(fp), f18
fld.l -172(fp), f19
fadd.ss f17, f7, f8
fld.l -168(fp), f20
fld.l -152(fp), f21
fld.l -164(fp), f22
fiadd.ss f18, f0, f9
fld.l -160(fp), f23
fiadd.ss f19, f0, f10
fld.l -156(fp), f24
fiadd.ss f20, f0, f11
ld.l -148(fp), r28
fiadd.ss f21, f0, f12
adds -144, fp, r29
fiadd.ss f22, f0, f13
fiadd.ss f23, f0, f14
fiadd.ss f24, f0, f15
mov r28, r18
call _initBang
mov r29, r28
orh ha%.C01203, r0, r31
fld.d l%.C01203(r31), f16
xorh 0x8000, r4, r28
ixfr r28, f18
fiadd.ss f17, f0, f19
adds -136, fp, r16
fsub.dd f18, f16, f20
ld.l 4(r5), r29
adds 1, r0, r30
fmov.ds f20, f22
st.l r30, 152(r29)
fmul.ss f22, f6, f8
call __rotY
mov r0, r17
call _float_0to1
nop
fsub.ss f8, f3, f16
fmul.ss f16, f2, f17
call _float_0to1
fst.l f17, -180(fp)
fmul.ss f8, f5, f16
call _float_0to1
fst.l f16, -184(fp)
fsub.ss f8, f3, f16
adds -136, fp, r16
fld.l -184(fp), f17
fmul.ss f16, f2, f8
fld.l -180(fp), f18
fiadd.ss f17, f0, f9
fiadd.ss f18, f0, f10
call __translate
mov r0, r17
ld.l 4(r5), r28
adds -136, fp, r17
addu 4, r28, r16
call _memcpy
adds 64, r0, r18
ld.l 4(r5), r28
addu 68, r28, r16
call __invert
addu 4, r28, r17
ld.l r0(r6), r28
shl 2, r28, r29
ld.l r7(r29), r5
adds 1, r28, r30
st.l r30, 0(r6)
btne 0x0008, r30, .B900
st.l r0, 0(r6)
// lineno: 884
.B900: //.B0073
adds 1, r4, r4
.DB.B900900:
adds -4, r4, r0
bc.t .DB.B12471247
adds -136, fp, r16
// lineno: 0
br .B901
nop
// lineno: 0
.B881: //.B0070
orh h%.S00902, r0, r31
.DB.B881881:
call _printf
or l%.S00902, r31, r16
// lineno: 0
.B901: //.B0074
// lineno: 0
.B880: //.B0069
// lineno: 0
.B875: //.B0067
// lineno: 890
.B860: //.B0063
// lineno: 0
.B1224: //.R0006
// lineno: 0
fld.d -240(fp), f2
fld.d -232(fp), f4
fld.d -224(fp), f6
ld.l -216(fp), r4
ld.l -212(fp), r5
ld.l -208(fp), r6
ld.l -204(fp), r7
ld.l -200(fp), r8
ld.l -196(fp), r9
ld.l -192(fp), r10
adds .a8+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.globl _step_fx
.align 8
_step_fx:
.a9 = 0
.f9 = 48
addu -(.a9+.f9), sp, sp
st.l fp,(.f9-16)(sp)
addu (.f9-16), sp, fp
st.l r1, 4(fp)
st.l r4, -16(fp)
st.l r5, -12(fp)
st.l r6, -8(fp)
// lineno: 0
// lineno: 902
orh ha%_sfx_inited, r0, r31
ld.l l%_sfx_inited(r31), r28
bte 0x0000, r28, .B909
mov r0, r4
mov r0, r4
orh h%_paz_explosions, r0, r31
or l%_paz_explosions, r31, r5
// lineno: 904
.B1270: //.M0006
ld.l r0(r5), r6
.DB.B12701270:
ld.l 4(r6), r28
ld.l 152(r28), r29
bte 0x0000, r29, .B914
call _step_bang
mov r6, r16
// lineno: 908
.B914: //.B0078
adds 1, r4, r4
.DB.B914914:
addu 4, r5, r5
adds -8, r4, r0
bc.t .DB.B12701270
ld.l r0(r5), r6
// lineno: 0
br .B915
nop
// lineno: 0
.B909: //.B0075
call _sfx_init
nop
// lineno: 0
.B915: //.B0079
// lineno: 912
ld.l -16(fp), r4
ld.l -12(fp), r5
ld.l -8(fp), r6
adds .a9+16, fp, r31
ld.l 4(fp), r1
ld.l 0(fp), fp
bri r1
mov r31, sp
.data
.align 8
.C00036: // (0)
.long 0x3f800000 // 1.00000000E+00
.C00631: // (4)
.long 0x3f4ccccd // 8.00000012E-01
.C00038: // (8)
.long 0x3f000000 // 5.00000000E-01
.C00633: // (12)
.long 0x3f028f5c // 5.09999990E-01
.C00636: // (16)
.long 0x3f7d70a4 // 9.90000010E-01
.C00639: // (20)
.long 0x3dcccccd // 1.00000001E-01
.C00672: // (24)
.long 0x437fe666 // 2.55899994E+02
.C00674: // (28)
.long 0x3e19999a // 1.50000006E-01
.C00675: // (32)
.long 0x3eb33333 // 3.49999994E-01
.C00679: // (36)
.long 0x421c0000 // 3.90000000E+01
.C00685: // (40)
.long 0x3e99999a // 3.00000012E-01
.C00722: // (44)
.long 0x49800000 // 1.04857600E+06
.C00777: // (48)
.long 0x3e4ccccd // 2.00000003E-01
.C00776: // (52)
.long 0xc1000000 // -8.00000000E+00
.C00775: // (56)
.long 0x40200000 // 2.50000000E+00
.C00774: // (60)
.long 0x41000000 // 8.00000000E+00
.C00773: // (64)
.long 0x41a00000 // 2.00000000E+01
.C00795: // (68)
.long 0x3f75c28f // 9.59999979E-01
.C00793: // (72)
.long 0x3f7c28f6 // 9.85000014E-01
.C00784: // (76)
.long 0x411ccccd // 9.80000019E+00
.C00797: // (80)
.long 0x3f6f5c29 // 9.35000002E-01
.C00840: // (84)
.long 0x40400000 // 3.00000000E+00
.C00844: // (88)
.long 0x41f00000 // 3.00000000E+01
.C00842: // (92)
.long 0xc0400000 // -3.00000000E+00
.C00843: // (96)
.long 0x3ecccccd // 4.00000006E-01
.C00841: // (100)
.long 0x41200000 // 1.00000000E+01
.align 8
.C01203: // (104)
.long 0x80000000, 0x43300000 // 4.50360177485414400E+15
.C00899: // (112)
.long 0x42700000 // 6.00000000E+01
.C00870: // (116)
.long 0x42600000 // 5.60000000E+01
.C00889: // (120)
.long 0x42a00000 // 8.00000000E+01
.C00858: // (124)
.long 0x3e428f5c // 1.89999998E-01
.C00854: // (128)
.long 0xc0c00000 // -6.00000000E+00
.C00857: // (132)
.long 0x3f99999a // 1.20000005E+00
.C00856: // (136)
.long 0x41500000 // 1.30000000E+01
.C00855: // (140)
.long 0x41900000 // 1.80000000E+01
.C00869: // (144)
.long 0x3f68f5c3 // 9.10000026E-01
.C00864: // (148)
.long 0xc2100000 // -3.60000000E+01
.C00868: // (152)
.long 0x3e9eb852 // 3.10000002E-01
.C00867: // (156)
.long 0x40600000 // 3.50000000E+00
.C00866: // (160)
.long 0x42240000 // 4.10000000E+01
.C00865: // (164)
.long 0x42280000 // 4.20000000E+01
.C00873: // (168)
.long 0x3f400000 // 7.50000000E-01
.C00872: // (172)
.long 0x40333333 // 2.79999995E+00
.C00879: // (176)
.long 0x3fa66666 // 1.29999995E+00
.C00878: // (180)
.long 0x41600000 // 1.40000000E+01
.C00898: // (184)
.long 0x3f59999a // 8.50000024E-01
.C00894: // (188)
.long 0x3e800000 // 2.50000000E-01
.C00892: // (192)
.long 0x3fcccccd // 1.60000002E+00
.C00893: // (196)
.long 0x4089999a // 4.30000019E+00
.C00890: // (200)
.long 0x41700000 // 1.50000000E+01
.C00891: // (204)
.long 0x42340000 // 4.50000000E+01
.data
.align 1
.S00629: //
// "bang_50_perc"
.byte 0x62,0x61,0x6e,0x67,0x5f,0x35,0x30,0x5f,0x70,0x65,0x72
.byte 0x63,0x00
.S00634: //
// "bang_frag"
.byte 0x62,0x61,0x6e,0x67,0x5f,0x66,0x72,0x61,0x67,0x00
.S00637: //
// "bang_gore"
.byte 0x62,0x61,0x6e,0x67,0x5f,0x67,0x6f,0x72,0x65,0x00
.S00727: //
// "bang_frag"
.byte 0x62,0x61,0x6e,0x67,0x5f,0x66,0x72,0x61,0x67,0x00
.S00729: //
// "bang_frag"
.byte 0x62,0x61,0x6e,0x67,0x5f,0x66,0x72,0x61,0x67,0x00
.S00902: //
// "Unknown sfx type\n"
.byte 0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x73,0x66,0x78
.byte 0x20,0x74,0x79,0x70,0x65,0x0a,0x00
.data
.align 4
_sfx_random_numbers: //sfx_random_numbers
.long 0x3f7d70a4 // 9.90000010E-01
.long 0x3e48b439 // 1.95999995E-01
.long 0x3cf5c28f // 2.99999993E-02
.long 0x3ee76c8b // 4.51999992E-01
.long 0x3e28f5c3 // 1.65000007E-01
.long 0x3f29ba5e // 6.62999988E-01
.long 0x3f3cac08 // 7.36999989E-01
.long 0x3f4624dd // 7.73999989E-01
.long 0x3f7ef9db // 9.95999992E-01
.long 0x3e89ba5e // 2.68999994E-01
.long 0x3f2d0e56 // 6.75999999E-01
.long 0x3f49374c // 7.86000013E-01
.long 0x3dfbe76d // 1.23000003E-01
.long 0x3ef2b021 // 4.74000007E-01
.long 0x3f4147ae // 7.54999995E-01
.long 0x3f6b4396 // 9.19000030E-01
.long 0x3f5f7cee // 8.73000026E-01
.long 0x3f1a5e35 // 6.02999985E-01
.long 0x3f20c49c // 6.28000021E-01
.long 0x3d3851ec // 4.50000018E-02
.long 0x3db645a2 // 8.90000015E-02
.long 0x3f024dd3 // 5.09000003E-01
.long 0x3ed374bc // 4.12999988E-01
.long 0x3ed4fdf4 // 4.16000009E-01
.long 0x3e9ba5e3 // 3.03999990E-01
.long 0x3c343958 // 1.09999999E-02
.long 0x3da9fbe7 // 8.29999968E-02
.long 0x3de147ae // 1.09999999E-01
.long 0x3e353f7d // 1.77000001E-01
.long 0x3f1a1cac // 6.01999998E-01
.long 0x3f4f5c29 // 8.10000002E-01
.long 0x3e395810 // 1.80999994E-01
.long 0x3f391687 // 7.22999990E-01
.long 0x3ec9ba5e // 3.93999994E-01
.long 0x3d0f5c29 // 3.50000001E-02
.long 0x3f5f7cee // 8.73000026E-01
.long 0x3f2d9168 // 6.77999973E-01
.long 0x3ea978d5 // 3.31000000E-01
.long 0x3ed0624e // 4.07000005E-01
.long 0x3eff7cee // 4.99000013E-01
.long 0x3e072b02 // 1.31999999E-01
.long 0x3e570a3d // 2.09999993E-01
.long 0x3da5e354 // 8.10000002E-02
.long 0x3f0ccccd // 5.50000012E-01
.long 0x3eb020c5 // 3.44000012E-01
.long 0x3f64dd2f // 8.93999994E-01
.long 0x3ef020c5 // 4.69000012E-01
.long 0x3e9d2f1b // 3.07000011E-01
.long 0x3f241893 // 6.40999973E-01
.long 0x3f6f9db2 // 9.35999990E-01
.long 0x3f476c8b // 7.78999984E-01
.long 0x3f553f7d // 8.33000004E-01
.long 0x3ebef9db // 3.72999996E-01
.long 0x3f6a3d71 // 9.15000021E-01
.long 0x3f78d4fe // 9.72000003E-01
.long 0x3f63126f // 8.87000024E-01
.long 0x3c9ba5e3 // 1.89999994E-02
.long 0x3f1ced91 // 6.12999976E-01
.long 0x3f0a3d71 // 5.40000021E-01
.long 0x3f65e354 // 8.98000002E-01
.long 0x3f4147ae // 7.54999995E-01
.long 0x3f30624e // 6.89000010E-01
.long 0x3d9ba5e3 // 7.59999976E-02
.long 0x3e3126e9 // 1.72999993E-01
.long 0x3f5eb852 // 8.70000005E-01
.long 0x3f533333 // 8.24999988E-01
.long 0x3eba5e35 // 3.63999993E-01
_sfx_random_ix: //sfx_random_ix
.long 0
_sfx_random_base: //sfx_random_base
.long 0
.globl _paz_explosions_active
_paz_explosions_active: //paz_explosions_active
.long 0
_first_mtl: //first_mtl
.long 1
.globl _sfx_inited
_sfx_inited: //sfx_inited
.long 0
_active_fx: //active_fx
.long 0
.data
.comm _paz_explosions,32
.extern _printf
.extern __rotY
.extern _memcpy
.extern __invert
.extern __translate
.extern __idmatrix
.extern _bound_spatch
.extern _reconnectLODs
.extern __InitVstrip
.extern _InitSem
.extern _nextSem
.extern __InitPatch
.extern _newName
.extern __InitLOD
.extern __InitObject
.extern _PAZcreateInstance
.extern _reboundObject
.extern _reboundLOD
.extern _compute_pmesh_plane_eqns
.extern _bound_patch
.extern _nameToAddress
.extern _malloc
.extern _strcpy
.extern _add_material
.extern _create_material