Files
perfect-dark/src/game/game_091e10.c
T

596 lines
20 KiB
C

#include <ultra64.h>
#include "constants.h"
#include "game/prop.h"
#include "game/game_091e10.h"
#include "game/game_0b28d0.h"
#include "game/bg.h"
#include "game/game_1a7560.h"
#include "game/propobj.h"
#include "bss.h"
#include "data.h"
#include "types.h"
struct stagesetup g_StageSetup;
u8 *g_GeCreditsData;
u32 setupGetCommandLength(u32 *cmd)
{
#if VERSION < VERSION_NTSC_1_0
static u32 crash1;
func0000db30("crash1", &crash1);
#endif
switch ((u8)cmd[0]) {
case OBJTYPE_CHR: return 11;
case OBJTYPE_DOOR: return 55;
case OBJTYPE_DOORSCALE: return 2;
case OBJTYPE_BASIC: return 23;
case OBJTYPE_DEBRIS: return 23;
case OBJTYPE_GLASS: return 24;
case OBJTYPE_TINTEDGLASS: return 26;
case OBJTYPE_SAFE: return 23;
case OBJTYPE_GASBOTTLE: return 23;
case OBJTYPE_KEY: return 24;
case OBJTYPE_ALARM: return 23;
case OBJTYPE_CCTV: return 49;
case OBJTYPE_AMMOCRATE: return 24;
case OBJTYPE_WEAPON: return 26;
case OBJTYPE_SINGLEMONITOR: return 53;
case OBJTYPE_MULTIMONITOR: return 140;
case OBJTYPE_HANGINGMONITORS: return 23;
case OBJTYPE_AUTOGUN: return 43;
case OBJTYPE_LINKGUNS: return 2;
case OBJTYPE_HAT: return 23;
case OBJTYPE_GRENADEPROB: return 2;
case OBJTYPE_LINKLIFTDOOR: return 5;
case OBJTYPE_SAFEITEM: return 5;
case OBJTYPE_MULTIAMMOCRATE: return 42;
case OBJTYPE_SHIELD: return 26;
case OBJTYPE_TAG: return 4;
case OBJTYPE_RENAMEOBJ: return 10;
case OBJTYPE_BEGINOBJECTIVE: return 4;
case OBJTYPE_ENDOBJECTIVE: return 1;
case OBJECTIVETYPE_DESTROYOBJ: return 2;
case OBJECTIVETYPE_COMPFLAGS: return 2;
case OBJECTIVETYPE_FAILFLAGS: return 2;
case OBJECTIVETYPE_COLLECTOBJ: return 2;
case OBJECTIVETYPE_THROWOBJ: return 2;
case OBJECTIVETYPE_HOLOGRAPH: return 4;
case OBJECTIVETYPE_1F: return 1;
case OBJECTIVETYPE_ENTERROOM: return 4;
case OBJECTIVETYPE_ATTACHOBJ: return 5;
case OBJTYPE_22: return 1;
case OBJTYPE_BRIEFING: return 4;
case OBJTYPE_PADLOCKEDDOOR: return 4;
case OBJTYPE_TRUCK: return 34;
case OBJTYPE_HELI: return 35;
case OBJTYPE_TANK: return 32;
case OBJTYPE_CAMERAPOS: return 7;
case OBJTYPE_LIFT: return 37;
case OBJTYPE_CONDITIONALSCENERY: return 5;
case OBJTYPE_BLOCKEDPATH: return 4;
case OBJTYPE_HOVERBIKE: return 56;
case OBJTYPE_HOVERPROP: return 39;
case OBJTYPE_FAN: return 29;
case OBJTYPE_HOVERCAR: return 38;
case OBJTYPE_CHOPPER: return 58;
case OBJTYPE_PADEFFECT: return 3;
case OBJTYPE_MINE: return 26;
case OBJTYPE_ESCASTEP: return 27;
}
#if VERSION < VERSION_NTSC_1_0
if (crash1) {
*(u8 *)0 = 69;
}
#endif
return 1;
}
GLOBAL_ASM(
glabel setupGetPtrToCommandByIndex
/* f092004: 27bdffd8 */ addiu $sp,$sp,-40
/* f092008: afb10018 */ sw $s1,0x18($sp)
/* f09200c: afb30020 */ sw $s3,0x20($sp)
/* f092010: 3c11800a */ lui $s1,%hi(g_StageSetup+0x10)
/* f092014: 00809825 */ or $s3,$a0,$zero
/* f092018: afbf0024 */ sw $ra,0x24($sp)
/* f09201c: afb2001c */ sw $s2,0x1c($sp)
/* f092020: afb00014 */ sw $s0,0x14($sp)
/* f092024: 04800014 */ bltz $a0,.L0f092078
/* f092028: 8e31d040 */ lw $s1,%lo(g_StageSetup+0x10)($s1)
/* f09202c: 52200013 */ beqzl $s1,.L0f09207c
/* f092030: 00001025 */ or $v0,$zero,$zero
/* f092034: 922e0003 */ lbu $t6,0x3($s1)
/* f092038: 24120034 */ addiu $s2,$zero,0x34
/* f09203c: 00008025 */ or $s0,$zero,$zero
/* f092040: 524e000e */ beql $s2,$t6,.L0f09207c
/* f092044: 00001025 */ or $v0,$zero,$zero
.L0f092048:
/* f092048: 16130003 */ bne $s0,$s3,.L0f092058
/* f09204c: 00000000 */ nop
/* f092050: 1000000a */ b .L0f09207c
/* f092054: 02201025 */ or $v0,$s1,$zero
.L0f092058:
/* f092058: 0fc24784 */ jal setupGetCommandLength
/* f09205c: 02202025 */ or $a0,$s1,$zero
/* f092060: 00027880 */ sll $t7,$v0,0x2
/* f092064: 01f18821 */ addu $s1,$t7,$s1
/* f092068: 92380003 */ lbu $t8,0x3($s1)
/* f09206c: 26100001 */ addiu $s0,$s0,0x1
/* f092070: 1658fff5 */ bne $s2,$t8,.L0f092048
/* f092074: 00000000 */ nop
.L0f092078:
/* f092078: 00001025 */ or $v0,$zero,$zero
.L0f09207c:
/* f09207c: 8fbf0024 */ lw $ra,0x24($sp)
/* f092080: 8fb00014 */ lw $s0,0x14($sp)
/* f092084: 8fb10018 */ lw $s1,0x18($sp)
/* f092088: 8fb2001c */ lw $s2,0x1c($sp)
/* f09208c: 8fb30020 */ lw $s3,0x20($sp)
/* f092090: 03e00008 */ jr $ra
/* f092094: 27bd0028 */ addiu $sp,$sp,0x28
);
s32 tagGetCommandIndex(struct tag *tag)
{
u32 *cmd = g_StageSetup.props;
if (cmd) {
s32 cmdindex = 0;
while ((u8)cmd[0] != OBJTYPE_END) {
if ((struct tag *)cmd == tag) {
return cmdindex;
}
cmd = cmd + setupGetCommandLength(cmd);
cmdindex++;
}
}
return -1;
}
GLOBAL_ASM(
glabel setupGetCommandOffset
/* f092124: 27bdffd8 */ addiu $sp,$sp,-40
/* f092128: afb00014 */ sw $s0,0x14($sp)
/* f09212c: 3c10800a */ lui $s0,%hi(g_StageSetup+0x10)
/* f092130: 8e10d040 */ lw $s0,%lo(g_StageSetup+0x10)($s0)
/* f092134: afb30020 */ sw $s3,0x20($sp)
/* f092138: 00809825 */ or $s3,$a0,$zero
/* f09213c: afbf0024 */ sw $ra,0x24($sp)
/* f092140: afb2001c */ sw $s2,0x1c($sp)
/* f092144: 12000013 */ beqz $s0,.L0f092194
/* f092148: afb10018 */ sw $s1,0x18($sp)
/* f09214c: 920e0003 */ lbu $t6,0x3($s0)
/* f092150: 24120034 */ addiu $s2,$zero,0x34
/* f092154: 00008825 */ or $s1,$zero,$zero
/* f092158: 524e000f */ beql $s2,$t6,.L0f092198
/* f09215c: 2402ffff */ addiu $v0,$zero,-1
/* f092160: 8e0f0014 */ lw $t7,0x14($s0)
.L0f092164:
/* f092164: 166f0003 */ bne $s3,$t7,.L0f092174
/* f092168: 00000000 */ nop
/* f09216c: 1000000a */ b .L0f092198
/* f092170: 02201025 */ or $v0,$s1,$zero
.L0f092174:
/* f092174: 0fc24784 */ jal setupGetCommandLength
/* f092178: 02002025 */ or $a0,$s0,$zero
/* f09217c: 0002c080 */ sll $t8,$v0,0x2
/* f092180: 03108021 */ addu $s0,$t8,$s0
/* f092184: 92190003 */ lbu $t9,0x3($s0)
/* f092188: 26310001 */ addiu $s1,$s1,0x1
/* f09218c: 5659fff5 */ bnel $s2,$t9,.L0f092164
/* f092190: 8e0f0014 */ lw $t7,0x14($s0)
.L0f092194:
/* f092194: 2402ffff */ addiu $v0,$zero,-1
.L0f092198:
/* f092198: 8fbf0024 */ lw $ra,0x24($sp)
/* f09219c: 8fb00014 */ lw $s0,0x14($sp)
/* f0921a0: 8fb10018 */ lw $s1,0x18($sp)
/* f0921a4: 8fb2001c */ lw $s2,0x1c($sp)
/* f0921a8: 8fb30020 */ lw $s3,0x20($sp)
/* f0921ac: 03e00008 */ jr $ra
/* f0921b0: 27bd0028 */ addiu $sp,$sp,0x28
);
bool modelLoad(s32 propnum)
{
if (g_ModelStates[propnum].filedata == NULL) {
g_ModelStates[propnum].filedata = fileLoad(g_ModelStates[propnum].fileid);
modelCalculateRwDataLen(g_ModelStates[propnum].filedata);
return true;
}
return false;
}
GLOBAL_ASM(
glabel func0f09220c
/* f09220c: 27bdffd8 */ addiu $sp,$sp,-40
/* f092210: afbf0024 */ sw $ra,0x24($sp)
/* f092214: afb20020 */ sw $s2,0x20($sp)
/* f092218: afb1001c */ sw $s1,0x1c($sp)
/* f09221c: 00c08825 */ or $s1,$a2,$zero
/* f092220: 00a09025 */ or $s2,$a1,$zero
/* f092224: afb00018 */ sw $s0,0x18($sp)
/* f092228: 0fc1a2bd */ jal objFindBboxRodata
/* f09222c: afa70034 */ sw $a3,0x34($sp)
/* f092230: 1040002d */ beqz $v0,.L0f0922e8
/* f092234: 00408025 */ or $s0,$v0,$zero
/* f092238: 00402025 */ or $a0,$v0,$zero
/* f09223c: 0fc19a3f */ jal func0f0668fc
/* f092240: 02202825 */ or $a1,$s1,$zero
/* f092244: c6440000 */ lwc1 $f4,0x0($s2)
/* f092248: 8fae0034 */ lw $t6,0x34($sp)
/* f09224c: 02002025 */ or $a0,$s0,$zero
/* f092250: 46040180 */ add.s $f6,$f0,$f4
/* f092254: 02202825 */ or $a1,$s1,$zero
/* f092258: 0fc19a57 */ jal func0f06695c
/* f09225c: e5c60000 */ swc1 $f6,0x0($t6)
/* f092260: c6480004 */ lwc1 $f8,0x4($s2)
/* f092264: 8faf0034 */ lw $t7,0x34($sp)
/* f092268: 02002025 */ or $a0,$s0,$zero
/* f09226c: 46080280 */ add.s $f10,$f0,$f8
/* f092270: 02202825 */ or $a1,$s1,$zero
/* f092274: 0fc19a6f */ jal func0f0669bc
/* f092278: e5ea0004 */ swc1 $f10,0x4($t7)
/* f09227c: c6500008 */ lwc1 $f16,0x8($s2)
/* f092280: 8fb80034 */ lw $t8,0x34($sp)
/* f092284: 02002025 */ or $a0,$s0,$zero
/* f092288: 46100480 */ add.s $f18,$f0,$f16
/* f09228c: 02202825 */ or $a1,$s1,$zero
/* f092290: 0fc19a4b */ jal func0f06692c
/* f092294: e7120008 */ swc1 $f18,0x8($t8)
/* f092298: c6440000 */ lwc1 $f4,0x0($s2)
/* f09229c: 8fb90038 */ lw $t9,0x38($sp)
/* f0922a0: 02002025 */ or $a0,$s0,$zero
/* f0922a4: 46040180 */ add.s $f6,$f0,$f4
/* f0922a8: 02202825 */ or $a1,$s1,$zero
/* f0922ac: 0fc19a63 */ jal func0f06698c
/* f0922b0: e7260000 */ swc1 $f6,0x0($t9)
/* f0922b4: c6480004 */ lwc1 $f8,0x4($s2)
/* f0922b8: 8fa80038 */ lw $t0,0x38($sp)
/* f0922bc: 02002025 */ or $a0,$s0,$zero
/* f0922c0: 46080280 */ add.s $f10,$f0,$f8
/* f0922c4: 02202825 */ or $a1,$s1,$zero
/* f0922c8: 0fc19a7b */ jal func0f0669ec
/* f0922cc: e50a0004 */ swc1 $f10,0x4($t0)
/* f0922d0: c6500008 */ lwc1 $f16,0x8($s2)
/* f0922d4: 8fa90038 */ lw $t1,0x38($sp)
/* f0922d8: 24020001 */ addiu $v0,$zero,0x1
/* f0922dc: 46100480 */ add.s $f18,$f0,$f16
/* f0922e0: 10000002 */ b .L0f0922ec
/* f0922e4: e5320008 */ swc1 $f18,0x8($t1)
.L0f0922e8:
/* f0922e8: 00001025 */ or $v0,$zero,$zero
.L0f0922ec:
/* f0922ec: 8fbf0024 */ lw $ra,0x24($sp)
/* f0922f0: 8fb00018 */ lw $s0,0x18($sp)
/* f0922f4: 8fb1001c */ lw $s1,0x1c($sp)
/* f0922f8: 8fb20020 */ lw $s2,0x20($sp)
/* f0922fc: 03e00008 */ jr $ra
/* f092300: 27bd0028 */ addiu $sp,$sp,0x28
);
bool func0f092304(struct defaultobj *obj, struct coord *arg1, struct coord *arg2)
{
return func0f09220c(obj, &obj->prop->pos, obj->realrot, arg1, arg2);
}
void func0f09233c(struct defaultobj *obj, struct coord *pos, f32 *realrot, s16 *rooms)
{
struct coord a;
struct coord b;
u32 stack;
if (func0f09220c(obj, pos, realrot, &a, &b)) {
a.x -= 1;
a.y -= 1;
a.z -= 1;
b.x += 1;
b.y += 1;
b.z += 1;
func0f1650d0(&a, &b, rooms, 7, 0);
}
}
void func0f0923d4(struct defaultobj *obj)
{
propDeregisterRooms(obj->prop);
func0f09233c(obj, &obj->prop->pos, obj->realrot, obj->prop->rooms);
propRegisterRooms(obj->prop);
}
struct defaultobj *setupCommandGetObject(u32 cmdindex)
{
u32 *cmd = setupGetPtrToCommandByIndex(cmdindex);
if (cmd) {
switch ((u8)cmd[0]) {
case OBJTYPE_DOOR:
case OBJTYPE_BASIC:
case OBJTYPE_KEY:
case OBJTYPE_ALARM:
case OBJTYPE_CCTV:
case OBJTYPE_AMMOCRATE:
case OBJTYPE_WEAPON:
case OBJTYPE_SINGLEMONITOR:
case OBJTYPE_MULTIMONITOR:
case OBJTYPE_HANGINGMONITORS:
case OBJTYPE_AUTOGUN:
case OBJTYPE_DEBRIS:
case OBJTYPE_HAT:
case OBJTYPE_MULTIAMMOCRATE:
case OBJTYPE_SHIELD:
case OBJTYPE_GASBOTTLE:
case OBJTYPE_TRUCK:
case OBJTYPE_HELI:
case OBJTYPE_29:
case OBJTYPE_GLASS:
case OBJTYPE_SAFE:
case OBJTYPE_TANK:
case OBJTYPE_TINTEDGLASS:
case OBJTYPE_LIFT:
case OBJTYPE_HOVERBIKE:
case OBJTYPE_HOVERPROP:
case OBJTYPE_FAN:
case OBJTYPE_HOVERCAR:
case OBJTYPE_CHOPPER:
case OBJTYPE_ESCASTEP:
return (struct defaultobj *)cmd;
case OBJTYPE_DOORSCALE:
case OBJTYPE_CHR:
case OBJTYPE_LINKGUNS:
case OBJTYPE_GRENADEPROB:
case OBJTYPE_LINKLIFTDOOR:
case OBJTYPE_TAG:
case OBJTYPE_BEGINOBJECTIVE:
case OBJTYPE_ENDOBJECTIVE:
case OBJECTIVETYPE_DESTROYOBJ:
case OBJECTIVETYPE_COMPFLAGS:
case OBJECTIVETYPE_FAILFLAGS:
case OBJECTIVETYPE_COLLECTOBJ:
case OBJECTIVETYPE_THROWOBJ:
case OBJECTIVETYPE_HOLOGRAPH:
case OBJECTIVETYPE_1F:
case OBJECTIVETYPE_ENTERROOM:
case OBJECTIVETYPE_ATTACHOBJ:
case OBJTYPE_22:
case OBJTYPE_BRIEFING:
case OBJTYPE_RENAMEOBJ:
case OBJTYPE_PADLOCKEDDOOR:
case OBJTYPE_SAFEITEM:
case OBJTYPE_CAMERAPOS:
case OBJTYPE_CONDITIONALSCENERY:
case OBJTYPE_BLOCKEDPATH:
case OBJTYPE_PADEFFECT:
return NULL;
}
}
return (struct defaultobj *)cmd;
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel func0f092484
/* f092484: 27bdffc0 */ addiu $sp,$sp,-64
/* f092488: afb00018 */ sw $s0,0x18($sp)
/* f09248c: 3c10800a */ lui $s0,%hi(g_StageSetup+0x10)
/* f092490: 8e10d040 */ lw $s0,%lo(g_StageSetup+0x10)($s0)
/* f092494: afb70034 */ sw $s7,0x34($sp)
/* f092498: afb30024 */ sw $s3,0x24($sp)
/* f09249c: afb20020 */ sw $s2,0x20($sp)
/* f0924a0: 0080b825 */ or $s7,$a0,$zero
/* f0924a4: afbf003c */ sw $ra,0x3c($sp)
/* f0924a8: afbe0038 */ sw $s8,0x38($sp)
/* f0924ac: afb60030 */ sw $s6,0x30($sp)
/* f0924b0: afb5002c */ sw $s5,0x2c($sp)
/* f0924b4: afb40028 */ sw $s4,0x28($sp)
/* f0924b8: afb1001c */ sw $s1,0x1c($sp)
/* f0924bc: afa50044 */ sw $a1,0x44($sp)
/* f0924c0: afa60048 */ sw $a2,0x48($sp)
/* f0924c4: afa7004c */ sw $a3,0x4c($sp)
/* f0924c8: 00009025 */ or $s2,$zero,$zero
/* f0924cc: 1200003f */ beqz $s0,.L0f0925cc
/* f0924d0: 00009825 */ or $s3,$zero,$zero
/* f0924d4: 92030003 */ lbu $v1,0x3($s0)
/* f0924d8: 24010034 */ addiu $at,$zero,0x34
/* f0924dc: 309e00ff */ andi $s8,$a0,0xff
/* f0924e0: 1061003a */ beq $v1,$at,.L0f0925cc
/* f0924e4: 3c160080 */ lui $s6,0x80
/* f0924e8: 24150008 */ addiu $s5,$zero,0x8
/* f0924ec: 8fb40054 */ lw $s4,0x54($sp)
/* f0924f0: 8fb10050 */ lw $s1,0x50($sp)
.L0f0924f4:
/* f0924f4: 17c3002d */ bne $s8,$v1,.L0f0925ac
/* f0924f8: 00000000 */ nop
/* f0924fc: 8e020014 */ lw $v0,0x14($s0)
/* f092500: 8fae004c */ lw $t6,0x4c($sp)
/* f092504: 14400007 */ bnez $v0,.L0f092524
/* f092508: 00000000 */ nop
/* f09250c: 15c00027 */ bnez $t6,.L0f0925ac
/* f092510: 00000000 */ nop
/* f092514: 16200025 */ bnez $s1,.L0f0925ac
/* f092518: 00000000 */ nop
/* f09251c: 10000030 */ b .L0f0925e0
/* f092520: 02001025 */ or $v0,$s0,$zero
.L0f092524:
/* f092524: 12f50021 */ beq $s7,$s5,.L0f0925ac
/* f092528: 00000000 */ nop
/* f09252c: 8e0f0040 */ lw $t7,0x40($s0)
/* f092530: 31f80080 */ andi $t8,$t7,0x80
/* f092534: 1700001d */ bnez $t8,.L0f0925ac
/* f092538: 00000000 */ nop
/* f09253c: 92190002 */ lbu $t9,0x2($s0)
/* f092540: 33280004 */ andi $t0,$t9,0x4
/* f092544: 15000019 */ bnez $t0,.L0f0925ac
/* f092548: 00000000 */ nop
/* f09254c: 8e090008 */ lw $t1,0x8($s0)
/* f092550: 01365024 */ and $t2,$t1,$s6
/* f092554: 15400015 */ bnez $t2,.L0f0925ac
/* f092558: 00000000 */ nop
/* f09255c: 8c4b0018 */ lw $t3,0x18($v0)
/* f092560: 15600012 */ bnez $t3,.L0f0925ac
/* f092564: 00000000 */ nop
/* f092568: 12200005 */ beqz $s1,.L0f092580
/* f09256c: 02802825 */ or $a1,$s4,$zero
/* f092570: 0fc2ca34 */ jal func0f0b28d0
/* f092574: 8e040018 */ lw $a0,0x18($s0)
/* f092578: 1040000c */ beqz $v0,.L0f0925ac
/* f09257c: 00000000 */ nop
.L0f092580:
/* f092580: 16400007 */ bnez $s2,.L0f0925a0
/* f092584: 00000000 */ nop
/* f092588: 8e0c0014 */ lw $t4,0x14($s0)
/* f09258c: 918d0001 */ lbu $t5,0x1($t4)
/* f092590: 31ae00c2 */ andi $t6,$t5,0xc2
/* f092594: 15c00002 */ bnez $t6,.L0f0925a0
/* f092598: 00000000 */ nop
/* f09259c: 02009025 */ or $s2,$s0,$zero
.L0f0925a0:
/* f0925a0: 16600002 */ bnez $s3,.L0f0925ac
/* f0925a4: 00000000 */ nop
/* f0925a8: 02009825 */ or $s3,$s0,$zero
.L0f0925ac:
/* f0925ac: 0fc24784 */ jal setupGetCommandLength
/* f0925b0: 02002025 */ or $a0,$s0,$zero
/* f0925b4: 00027880 */ sll $t7,$v0,0x2
/* f0925b8: 01f08021 */ addu $s0,$t7,$s0
/* f0925bc: 92030003 */ lbu $v1,0x3($s0)
/* f0925c0: 24010034 */ addiu $at,$zero,0x34
/* f0925c4: 1461ffcb */ bne $v1,$at,.L0f0924f4
/* f0925c8: 00000000 */ nop
.L0f0925cc:
/* f0925cc: 8fb80044 */ lw $t8,0x44($sp)
/* f0925d0: 00001025 */ or $v0,$zero,$zero
/* f0925d4: af120000 */ sw $s2,0x0($t8)
/* f0925d8: 8fb90048 */ lw $t9,0x48($sp)
/* f0925dc: af330000 */ sw $s3,0x0($t9)
.L0f0925e0:
/* f0925e0: 8fbf003c */ lw $ra,0x3c($sp)
/* f0925e4: 8fb00018 */ lw $s0,0x18($sp)
/* f0925e8: 8fb1001c */ lw $s1,0x1c($sp)
/* f0925ec: 8fb20020 */ lw $s2,0x20($sp)
/* f0925f0: 8fb30024 */ lw $s3,0x24($sp)
/* f0925f4: 8fb40028 */ lw $s4,0x28($sp)
/* f0925f8: 8fb5002c */ lw $s5,0x2c($sp)
/* f0925fc: 8fb60030 */ lw $s6,0x30($sp)
/* f092600: 8fb70034 */ lw $s7,0x34($sp)
/* f092604: 8fbe0038 */ lw $s8,0x38($sp)
/* f092608: 03e00008 */ jr $ra
/* f09260c: 27bd0040 */ addiu $sp,$sp,0x40
);
#else
GLOBAL_ASM(
glabel func0f092484
/* f090ac8: 27bdffc0 */ addiu $sp,$sp,-64
/* f090acc: afb00018 */ sw $s0,0x18($sp)
/* f090ad0: 3c10800a */ lui $s0,0x800a
/* f090ad4: 8e101770 */ lw $s0,0x1770($s0)
/* f090ad8: afbe0038 */ sw $s8,0x38($sp)
/* f090adc: afb70034 */ sw $s7,0x34($sp)
/* f090ae0: afb30024 */ sw $s3,0x24($sp)
/* f090ae4: afb20020 */ sw $s2,0x20($sp)
/* f090ae8: 0080b825 */ or $s7,$a0,$zero
/* f090aec: 00e0f025 */ or $s8,$a3,$zero
/* f090af0: afbf003c */ sw $ra,0x3c($sp)
/* f090af4: afb60030 */ sw $s6,0x30($sp)
/* f090af8: afb5002c */ sw $s5,0x2c($sp)
/* f090afc: afb40028 */ sw $s4,0x28($sp)
/* f090b00: afb1001c */ sw $s1,0x1c($sp)
/* f090b04: afa50044 */ sw $a1,0x44($sp)
/* f090b08: afa60048 */ sw $a2,0x48($sp)
/* f090b0c: 00009025 */ or $s2,$zero,$zero
/* f090b10: 12000039 */ beqz $s0,.NB0f090bf8
/* f090b14: 00009825 */ or $s3,$zero,$zero
/* f090b18: 92030003 */ lbu $v1,0x3($s0)
/* f090b1c: 24010034 */ addiu $at,$zero,0x34
/* f090b20: 309400ff */ andi $s4,$a0,0xff
/* f090b24: 10610034 */ beq $v1,$at,.NB0f090bf8
/* f090b28: 24160008 */ addiu $s6,$zero,0x8
/* f090b2c: 8fb50054 */ lw $s5,0x54($sp)
/* f090b30: 8fb10050 */ lw $s1,0x50($sp)
.NB0f090b34:
/* f090b34: 16830028 */ bne $s4,$v1,.NB0f090bd8
/* f090b38: 00000000 */ sll $zero,$zero,0x0
/* f090b3c: 8e020014 */ lw $v0,0x14($s0)
/* f090b40: 14400007 */ bnez $v0,.NB0f090b60
/* f090b44: 00000000 */ sll $zero,$zero,0x0
/* f090b48: 17c00023 */ bnez $s8,.NB0f090bd8
/* f090b4c: 00000000 */ sll $zero,$zero,0x0
/* f090b50: 16200021 */ bnez $s1,.NB0f090bd8
/* f090b54: 00000000 */ sll $zero,$zero,0x0
/* f090b58: 1000002c */ beqz $zero,.NB0f090c0c
/* f090b5c: 02001025 */ or $v0,$s0,$zero
.NB0f090b60:
/* f090b60: 12f6001d */ beq $s7,$s6,.NB0f090bd8
/* f090b64: 00000000 */ sll $zero,$zero,0x0
/* f090b68: 8e0e0040 */ lw $t6,0x40($s0)
/* f090b6c: 31cf0080 */ andi $t7,$t6,0x80
/* f090b70: 15e00019 */ bnez $t7,.NB0f090bd8
/* f090b74: 00000000 */ sll $zero,$zero,0x0
/* f090b78: 92180002 */ lbu $t8,0x2($s0)
/* f090b7c: 33190004 */ andi $t9,$t8,0x4
/* f090b80: 17200015 */ bnez $t9,.NB0f090bd8
/* f090b84: 00000000 */ sll $zero,$zero,0x0
/* f090b88: 8c480018 */ lw $t0,0x18($v0)
/* f090b8c: 15000012 */ bnez $t0,.NB0f090bd8
/* f090b90: 00000000 */ sll $zero,$zero,0x0
/* f090b94: 12200005 */ beqz $s1,.NB0f090bac
/* f090b98: 02a02825 */ or $a1,$s5,$zero
/* f090b9c: 0fc2c18c */ jal func0f0b28d0
/* f090ba0: 8e040018 */ lw $a0,0x18($s0)
/* f090ba4: 1040000c */ beqz $v0,.NB0f090bd8
/* f090ba8: 00000000 */ sll $zero,$zero,0x0
.NB0f090bac:
/* f090bac: 16400007 */ bnez $s2,.NB0f090bcc
/* f090bb0: 00000000 */ sll $zero,$zero,0x0
/* f090bb4: 8e090014 */ lw $t1,0x14($s0)
/* f090bb8: 912a0001 */ lbu $t2,0x1($t1)
/* f090bbc: 314b00c2 */ andi $t3,$t2,0xc2
/* f090bc0: 15600002 */ bnez $t3,.NB0f090bcc
/* f090bc4: 00000000 */ sll $zero,$zero,0x0
/* f090bc8: 02009025 */ or $s2,$s0,$zero
.NB0f090bcc:
/* f090bcc: 16600002 */ bnez $s3,.NB0f090bd8
/* f090bd0: 00000000 */ sll $zero,$zero,0x0
/* f090bd4: 02009825 */ or $s3,$s0,$zero
.NB0f090bd8:
/* f090bd8: 0fc24104 */ jal setupGetCommandLength
/* f090bdc: 02002025 */ or $a0,$s0,$zero
/* f090be0: 00026080 */ sll $t4,$v0,0x2
/* f090be4: 01908021 */ addu $s0,$t4,$s0
/* f090be8: 92030003 */ lbu $v1,0x3($s0)
/* f090bec: 24010034 */ addiu $at,$zero,0x34
/* f090bf0: 1461ffd0 */ bne $v1,$at,.NB0f090b34
/* f090bf4: 00000000 */ sll $zero,$zero,0x0
.NB0f090bf8:
/* f090bf8: 8fad0044 */ lw $t5,0x44($sp)
/* f090bfc: 00001025 */ or $v0,$zero,$zero
/* f090c00: adb20000 */ sw $s2,0x0($t5)
/* f090c04: 8fae0048 */ lw $t6,0x48($sp)
/* f090c08: add30000 */ sw $s3,0x0($t6)
.NB0f090c0c:
/* f090c0c: 8fbf003c */ lw $ra,0x3c($sp)
/* f090c10: 8fb00018 */ lw $s0,0x18($sp)
/* f090c14: 8fb1001c */ lw $s1,0x1c($sp)
/* f090c18: 8fb20020 */ lw $s2,0x20($sp)
/* f090c1c: 8fb30024 */ lw $s3,0x24($sp)
/* f090c20: 8fb40028 */ lw $s4,0x28($sp)
/* f090c24: 8fb5002c */ lw $s5,0x2c($sp)
/* f090c28: 8fb60030 */ lw $s6,0x30($sp)
/* f090c2c: 8fb70034 */ lw $s7,0x34($sp)
/* f090c30: 8fbe0038 */ lw $s8,0x38($sp)
/* f090c34: 03e00008 */ jr $ra
/* f090c38: 27bd0040 */ addiu $sp,$sp,0x40
/* f090c3c: 00000000 */ sll $zero,$zero,0x0
);
#endif