diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..e302c97b --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "tools/ido-static-recomp"] + path = tools/ido-static-recomp + url = https://github.com/Emill/ido-static-recomp diff --git a/Makefile b/Makefile index 50ea6b79..64e58e52 100755 --- a/Makefile +++ b/Makefile @@ -43,11 +43,18 @@ endif ########## Recomp ########## +RECOMP_PROJECT := ./tools/ido-static-recomp/ + +DUMMY != ls $(RECOMP_PROJECT)ido >/dev/null || echo FAIL +ifeq ($(DUMMY),FAIL) + $(error Missing submodule ido-static-recomp. Please run 'git submodule update --init') +endif + # List of IDO tools required for the repo. # NOTE: If you are adding a tool here, make sure to update the Makefile in `/tools/ido-static-recomp/`! RECOMP_TOOLS := cc cfe uopt ugen as1 ujoin uld usplit umerge -RECOMP_DIR := ./tools/ido5.3_recomp/ +RECOMP_DIR := $(RECOMP_PROJECT)build5.3/out/ RECOMP_TOOLS_PATHS = $(addprefix $(RECOMP_DIR),$(RECOMP_TOOLS)) # Checks if all the recomp tools exist. @@ -55,7 +62,7 @@ $(foreach p,$(RECOMP_TOOLS_PATHS),$(if $(wildcard $(p)),,$(info $(p) does not ex # If any of the tools do not exist, then recomp needs to run to build them. ifeq ($(runRecomp),yes) - DUMMY != make -s -C tools/ido-static-recomp >&2 || echo FAIL + DUMMY != cd $(RECOMP_PROJECT) && python3 build.py ido/5.3 -O2 && cd ../../ >&2 || echo FAIL endif ######## Extract Assets & Microcode ######## @@ -100,7 +107,7 @@ endif endif AS = $(CROSS)as -CC := tools/ido5.3_recomp/cc +CC := $(RECOMP_DIR)cc CPP := cpp -P -Wno-trigraphs LD = $(CROSS)ld OBJDUMP = $(CROSS)objdump @@ -113,7 +120,7 @@ C_DEFINES := $(foreach d,$(DEFINES),-D$(d)) DEF_INC_CFLAGS := $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(C_DEFINES) ASFLAGS = -mtune=vr4300 -march=vr4300 -mabi=32 $(foreach d,$(DEFINES),--defsym $(d)) -INCLUDE_CFLAGS := -I include -I $(BUILD_DIR) -I src -I . +INCLUDE_CFLAGS := -I include -I $(BUILD_DIR) -I src -I . -I include/libc CFLAGS = -c -Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm -Xfullwarn -signed $(OPT_FLAGS) $(MIPSISET) $(INCLUDE_CFLAGS) $(DEF_INC_CFLAGS) LDFLAGS = undefined_syms.txt -T $(LD_SCRIPT) -Map $(BUILD_DIR)/dkr.map @@ -260,16 +267,10 @@ $(BUILD_DIR)/lib/src/al/%.o: OPT_FLAGS := -O3 $(BUILD_DIR)/lib/src/os/%.o: OPT_FLAGS := -O1 $(BUILD_DIR)/lib/src/os/osViMgr.o: OPT_FLAGS := -O2 $(BUILD_DIR)/lib/src/os/osCreatePiManager.o: OPT_FLAGS := -O2 -$(BUILD_DIR)/lib/src/unknown_0C91A0.o : OPT_FLAGS := -O1 -$(BUILD_DIR)/lib/src/unknown_0D29F0.o: OPT_FLAGS := -O1 -$(BUILD_DIR)/lib/src/unknown_0CDE90.o: OPT_FLAGS := -O1 -$(BUILD_DIR)/lib/src/unknown_0D3160.o: OPT_FLAGS := -O1 -$(BUILD_DIR)/lib/src/unknown_0D3360.o: OPT_FLAGS := -O1 -$(BUILD_DIR)/lib/src/unknown_0D5EC0.o: OPT_FLAGS := -O1 -$(BUILD_DIR)/lib/src/unknown_0C9C90.o: OPT_FLAGS := -O2 -Wo,-loopunroll,0 -$(BUILD_DIR)/lib/src/osEepromWrite.o: OPT_FLAGS := -O1 -$(BUILD_DIR)/lib/src/osEepromRead.o: OPT_FLAGS := -O1 -$(BUILD_DIR)/lib/src/osSetTimer.o: OPT_FLAGS := -O1 +$(BUILD_DIR)/lib/src/libc/xprintf.o : OPT_FLAGS := -O3 +$(BUILD_DIR)/lib/src/al/unknown_0C9C90.o: OPT_FLAGS := -O2 -Wo,-loopunroll,0 +#$(BUILD_DIR)/lib/src/libc/llcvt.o: OPT_FLAGS := +#$(BUILD_DIR)/lib/src/libc/llcvt.o: MIPSISET := -mips3 32 $(BUILD_DIR)/lib/%.o: MIPSISET := -mips2 $(BUILD_DIR)/lib/src/mips1/%.o: MIPSISET := -mips1 diff --git a/README.md b/README.md index d7483505..2f5e5eaa 100755 --- a/README.md +++ b/README.md @@ -113,30 +113,31 @@ s32 is_drumstick_unlocked(void) { } ``` -As of August 23rd 2021, this is our current score: +As of September 27th 2021, this is our current score: ``` - ======================================================= - ADVENTURE ONE (ASM -> C Decompilation) - ------------------- 14.63% Complete ------------------- - # Decompiled functions: 900 - # GLOBAL_ASM remaining: 880 - # NON_MATCHING functions: 106 - --------------------- Game Status --------------------- - Balloons: 8/47, Keys: 1/4, Trophies: 0/5 - T.T. Amulets: 0/4, Wizpig Amulets: 0/4 - ------------------------------------------------------- - We are collecting eggs in Fire Mountain. (1/3 Eggs) - ======================================================= - ADVENTURE TWO (Cleanup & Documentation) - ------------------- 0.77% Complete ------------------- - # Documented functions: 62 - # Undocumented remaining: 1718 - --------------------- Game Status --------------------- - Balloons: 0/47, Keys: 0/4, Trophies: 0/5 - T.T. Amulets: 0/4, Wizpig Amulets: 0/4 - ------------------------------------------------------- - We are collecting the first balloon on Timber's Island. - ======================================================= + ================================================================== + ADVENTURE ONE (ASM -> C Decompilation) + ------------------------ 16.16% Complete ------------------------- + # Decompiled functions: 934 + # GLOBAL_ASM remaining: 848 + # NON_MATCHING functions: 104 + -------------------------- Game Status --------------------------- + Balloons: 8/47, Keys: 1/4, Trophies: 0/5 + T.T. Amulets: 1/4, Wizpig Amulets: 0/4 + ------------------------------------------------------------------ + We are collecting silver coins in Ancient Lake. (5/8 silver coins) + ================================================================== + ADVENTURE TWO (Cleanup & Documentation) + ------------------------ 0.80% Complete ------------------------- + # Documented functions: 65 + # Undocumented remaining: 1717 + -------------------------- Game Status --------------------------- + Balloons: 0/47, Keys: 0/4, Trophies: 0/5 + T.T. Amulets: 0/4, Wizpig Amulets: 0/4 + ------------------------------------------------------------------ + We are collecting the first balloon on Timber's Island. + ================================================================== + ``` --- diff --git a/asm/non_matchings/camera/func_80069F64.s b/asm/non_matchings/camera/func_80069F64.s index c4b83ee9..75fd9e45 100644 --- a/asm/non_matchings/camera/func_80069F64.s +++ b/asm/non_matchings/camera/func_80069F64.s @@ -40,24 +40,24 @@ glabel func_80069F64 /* 06ABB8 80069FB8 02E08025 */ move $s0, $s7 .L80069FBC: /* 06ABBC 80069FBC 86050000 */ lh $a1, ($s0) -/* 06ABC0 80069FC0 0C032755 */ jal func_800C9D54 +/* 06ABC0 80069FC0 0C032755 */ jal rmonPrintf /* 06ABC4 80069FC4 02602025 */ move $a0, $s3 /* 06ABC8 80069FC8 86050020 */ lh $a1, 0x20($s0) /* 06ABCC 80069FCC 02802025 */ move $a0, $s4 /* 06ABD0 80069FD0 30AEFFFF */ andi $t6, $a1, 0xffff -/* 06ABD4 80069FD4 0C032755 */ jal func_800C9D54 +/* 06ABD4 80069FD4 0C032755 */ jal rmonPrintf /* 06ABD8 80069FD8 01C02825 */ move $a1, $t6 /* 06ABDC 80069FDC 26310002 */ addiu $s1, $s1, 2 /* 06ABE0 80069FE0 1635FFF6 */ bne $s1, $s5, .L80069FBC /* 06ABE4 80069FE4 26100002 */ addiu $s0, $s0, 2 -/* 06ABE8 80069FE8 0C032755 */ jal func_800C9D54 +/* 06ABE8 80069FE8 0C032755 */ jal rmonPrintf /* 06ABEC 80069FEC 03C02025 */ move $a0, $fp /* 06ABF0 80069FF0 26D60004 */ addiu $s6, $s6, 4 /* 06ABF4 80069FF4 24010010 */ li $at, 16 /* 06ABF8 80069FF8 16C1FFEE */ bne $s6, $at, .L80069FB4 /* 06ABFC 80069FFC 26F70008 */ addiu $s7, $s7, 8 /* 06AC00 8006A000 3C04800E */ lui $a0, %hi(D_800E7088) # $a0, 0x800e -/* 06AC04 8006A004 0C032755 */ jal func_800C9D54 +/* 06AC04 8006A004 0C032755 */ jal rmonPrintf /* 06AC08 8006A008 24847088 */ addiu $a0, %lo(D_800E7088) # addiu $a0, $a0, 0x7088 /* 06AC0C 8006A00C 8FBF003C */ lw $ra, 0x3c($sp) /* 06AC10 8006A010 8FB00018 */ lw $s0, 0x18($sp) diff --git a/asm/non_matchings/camera/func_8006A10C.s b/asm/non_matchings/camera/func_8006A10C.s deleted file mode 100644 index 4316321e..00000000 --- a/asm/non_matchings/camera/func_8006A10C.s +++ /dev/null @@ -1,51 +0,0 @@ -glabel func_8006A10C -/* 06AD0C 8006A10C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 06AD10 8006A110 AFBF0014 */ sw $ra, 0x14($sp) -/* 06AD14 8006A114 3C048012 */ lui $a0, %hi(D_801210E0) # $a0, 0x8012 -/* 06AD18 8006A118 3C058012 */ lui $a1, %hi(D_801210F8) # $a1, 0x8012 -/* 06AD1C 8006A11C 24A510F8 */ addiu $a1, %lo(D_801210F8) # addiu $a1, $a1, 0x10f8 -/* 06AD20 8006A120 248410E0 */ addiu $a0, %lo(D_801210E0) # addiu $a0, $a0, 0x10e0 -/* 06AD24 8006A124 0C032208 */ jal osCreateMesgQueue -/* 06AD28 8006A128 24060001 */ li $a2, 1 -/* 06AD2C 8006A12C 3C068012 */ lui $a2, %hi(D_801210FC) # $a2, 0x8012 -/* 06AD30 8006A130 8CC610FC */ lw $a2, %lo(D_801210FC)($a2) -/* 06AD34 8006A134 3C058012 */ lui $a1, %hi(D_801210E0) # $a1, 0x8012 -/* 06AD38 8006A138 24A510E0 */ addiu $a1, %lo(D_801210E0) # addiu $a1, $a1, 0x10e0 -/* 06AD3C 8006A13C 0C0332EC */ jal osSetEventMesg -/* 06AD40 8006A140 24040005 */ li $a0, 5 -/* 06AD44 8006A144 3C048012 */ lui $a0, %hi(D_801210E0) # $a0, 0x8012 -/* 06AD48 8006A148 3C068012 */ lui $a2, %hi(D_80121100) # $a2, 0x8012 -/* 06AD4C 8006A14C 24C61100 */ addiu $a2, %lo(D_80121100) # addiu $a2, $a2, 0x1100 -/* 06AD50 8006A150 248410E0 */ addiu $a0, %lo(D_801210E0) # addiu $a0, $a0, 0x10e0 -/* 06AD54 8006A154 0C033308 */ jal osContInit -/* 06AD58 8006A158 27A50023 */ addiu $a1, $sp, 0x23 -/* 06AD5C 8006A15C 3C048012 */ lui $a0, %hi(D_801210E0) # $a0, 0x8012 -/* 06AD60 8006A160 0C0333F8 */ jal osContStartReadData -/* 06AD64 8006A164 248410E0 */ addiu $a0, %lo(D_801210E0) # addiu $a0, $a0, 0x10e0 -/* 06AD68 8006A168 0C01A90D */ jal func_8006A434 -/* 06AD6C 8006A16C 00000000 */ nop -/* 06AD70 8006A170 93A20023 */ lbu $v0, 0x23($sp) -/* 06AD74 8006A174 3C03800E */ lui $v1, %hi(D_800DD300) # $v1, 0x800e -/* 06AD78 8006A178 2463D300 */ addiu $v1, %lo(D_800DD300) # addiu $v1, $v1, -0x2d00 -/* 06AD7C 8006A17C 304E0001 */ andi $t6, $v0, 1 -/* 06AD80 8006A180 11C00009 */ beqz $t6, .L8006A1A8 -/* 06AD84 8006A184 AC600000 */ sw $zero, ($v1) -/* 06AD88 8006A188 3C0F8012 */ lui $t7, %hi(D_80121100+3) # $t7, 0x8012 -/* 06AD8C 8006A18C 91EF1103 */ lbu $t7, %lo(D_80121100+3)($t7) -/* 06AD90 8006A190 00000000 */ nop -/* 06AD94 8006A194 31F80008 */ andi $t8, $t7, 8 -/* 06AD98 8006A198 17000004 */ bnez $t8, .L8006A1AC -/* 06AD9C 8006A19C 24190001 */ li $t9, 1 -/* 06ADA0 8006A1A0 10000004 */ b .L8006A1B4 -/* 06ADA4 8006A1A4 00001025 */ move $v0, $zero -.L8006A1A8: -/* 06ADA8 8006A1A8 24190001 */ li $t9, 1 -.L8006A1AC: -/* 06ADAC 8006A1AC AC790000 */ sw $t9, ($v1) -/* 06ADB0 8006A1B0 2402FFFF */ li $v0, -1 -.L8006A1B4: -/* 06ADB4 8006A1B4 8FBF0014 */ lw $ra, 0x14($sp) -/* 06ADB8 8006A1B8 27BD0028 */ addiu $sp, $sp, 0x28 -/* 06ADBC 8006A1BC 03E00008 */ jr $ra -/* 06ADC0 8006A1C0 00000000 */ nop - diff --git a/asm/non_matchings/controller_pak/func_80072718.s b/asm/non_matchings/controller_pak/func_80072718.s index 6213d43a..00d08135 100644 --- a/asm/non_matchings/controller_pak/func_80072718.s +++ b/asm/non_matchings/controller_pak/func_80072718.s @@ -70,7 +70,7 @@ glabel func_80072718 /* 073404 80072804 02603025 */ move $a2, $s3 /* 073408 80072808 0000C812 */ mflo $t9 /* 07340C 8007280C 02D92821 */ addu $a1, $s6, $t9 -/* 073410 80072810 0C01C837 */ jal func_800720DC +/* 073410 80072810 0C01C837 */ jal osMotorInit /* 073414 80072814 00000000 */ nop /* 073418 80072818 1040000E */ beqz $v0, .L80072854 /* 07341C 8007281C 3C0E8012 */ lui $t6, %hi(D_801241E5) # $t6, 0x8012 @@ -159,11 +159,11 @@ glabel func_80072718 /* 07354C 8007294C 02603025 */ move $a2, $s3 /* 073550 80072950 00006012 */ mflo $t4 /* 073554 80072954 02CC9021 */ addu $s2, $s6, $t4 -/* 073558 80072958 0C01C837 */ jal func_800720DC +/* 073558 80072958 0C01C837 */ jal osMotorInit /* 07355C 8007295C 02402825 */ move $a1, $s2 /* 073560 80072960 14400003 */ bnez $v0, .L80072970 /* 073564 80072964 00000000 */ nop -/* 073568 80072968 0C01C74C */ jal func_80071D30 +/* 073568 80072968 0C01C74C */ jal osMotorStop /* 07356C 8007296C 02402025 */ move $a0, $s2 .L80072970: /* 073570 80072970 3C04800E */ lui $a0, %hi(D_800DE48C) # $a0, 0x800e @@ -191,7 +191,7 @@ glabel func_80072718 /* 0735C4 800729C4 A6000008 */ sh $zero, 8($s0) /* 0735C8 800729C8 00004812 */ mflo $t1 /* 0735CC 800729CC 02C92021 */ addu $a0, $s6, $t1 -/* 0735D0 800729D0 0C01C74C */ jal func_80071D30 +/* 0735D0 800729D0 0C01C74C */ jal osMotorStop /* 0735D4 800729D4 00000000 */ nop /* 0735D8 800729D8 3C04800E */ lui $a0, %hi(D_800DE48C) # $a0, 0x800e /* 0735DC 800729DC 8C84E48C */ lw $a0, %lo(D_800DE48C)($a0) @@ -225,7 +225,7 @@ glabel func_80072718 /* 073644 80072A44 A6090008 */ sh $t1, 8($s0) /* 073648 80072A48 00005012 */ mflo $t2 /* 07364C 80072A4C 02CA2021 */ addu $a0, $s6, $t2 -/* 073650 80072A50 0C01C74C */ jal func_80071D30 +/* 073650 80072A50 0C01C74C */ jal osMotorStop /* 073654 80072A54 00000000 */ nop /* 073658 80072A58 3C04800E */ lui $a0, %hi(D_800DE48C) # $a0, 0x800e /* 07365C 80072A5C 8C84E48C */ lw $a0, %lo(D_800DE48C)($a0) @@ -249,7 +249,7 @@ glabel func_80072718 /* 0736A0 80072AA0 02770019 */ multu $s3, $s7 /* 0736A4 80072AA4 00006812 */ mflo $t5 /* 0736A8 80072AA8 02CD2021 */ addu $a0, $s6, $t5 -/* 0736AC 80072AAC 0C01C796 */ jal func_80071E58 +/* 0736AC 80072AAC 0C01C796 */ jal osMotorStart /* 0736B0 80072AB0 00000000 */ nop /* 0736B4 80072AB4 928E0000 */ lbu $t6, ($s4) /* 0736B8 80072AB8 02A2A825 */ or $s5, $s5, $v0 @@ -269,7 +269,7 @@ glabel func_80072718 /* 0736EC 80072AEC 02770019 */ multu $s3, $s7 /* 0736F0 80072AF0 00004012 */ mflo $t0 /* 0736F4 80072AF4 02C82021 */ addu $a0, $s6, $t0 -/* 0736F8 80072AF8 0C01C74C */ jal func_80071D30 +/* 0736F8 80072AF8 0C01C74C */ jal osMotorStop /* 0736FC 80072AFC 00000000 */ nop /* 073700 80072B00 92890000 */ lbu $t1, ($s4) /* 073704 80072B04 02205027 */ not $t2, $s1 @@ -291,7 +291,7 @@ glabel func_80072718 /* 073740 80072B40 02770019 */ multu $s3, $s7 /* 073744 80072B44 00007012 */ mflo $t6 /* 073748 80072B48 02CE2021 */ addu $a0, $s6, $t6 -/* 07374C 80072B4C 0C01C796 */ jal func_80071E58 +/* 07374C 80072B4C 0C01C796 */ jal osMotorStart /* 073750 80072B50 00000000 */ nop /* 073754 80072B54 928F0000 */ lbu $t7, ($s4) /* 073758 80072B58 02A2A825 */ or $s5, $s5, $v0 @@ -312,7 +312,7 @@ glabel func_80072718 /* 07378C 80072B8C 02770019 */ multu $s3, $s7 /* 073790 80072B90 00005012 */ mflo $t2 /* 073794 80072B94 02CA2021 */ addu $a0, $s6, $t2 -/* 073798 80072B98 0C01C74C */ jal func_80071D30 +/* 073798 80072B98 0C01C74C */ jal osMotorStop /* 07379C 80072B9C 00000000 */ nop /* 0737A0 80072BA0 928B0000 */ lbu $t3, ($s4) /* 0737A4 80072BA4 02206027 */ not $t4, $s1 diff --git a/asm/non_matchings/controller_pak/func_800758DC.s b/asm/non_matchings/controller_pak/func_800758DC.s index 650ff0d4..e05a2d72 100644 --- a/asm/non_matchings/controller_pak/func_800758DC.s +++ b/asm/non_matchings/controller_pak/func_800758DC.s @@ -22,7 +22,7 @@ glabel func_800758DC /* 07652C 8007592C 27184018 */ addiu $t8, %lo(pfs) # addiu $t8, $t8, 0x4018 /* 076530 80075930 000F78C0 */ sll $t7, $t7, 3 /* 076534 80075934 01F82821 */ addu $a1, $t7, $t8 -/* 076538 80075938 0C01C837 */ jal func_800720DC +/* 076538 80075938 0C01C837 */ jal osMotorInit /* 07653C 8007593C 02A03025 */ move $a2, $s5 /* 076540 80075940 14400004 */ bnez $v0, .L80075954 /* 076544 80075944 0015C880 */ sll $t9, $s5, 2 @@ -76,7 +76,7 @@ glabel func_800758DC /* 0765EC 800759EC 02602825 */ move $a1, $s3 /* 0765F0 800759F0 8E840000 */ lw $a0, ($s4) /* 0765F4 800759F4 02A03025 */ move $a2, $s5 -/* 0765F8 800759F8 0C01C837 */ jal func_800720DC +/* 0765F8 800759F8 0C01C837 */ jal osMotorInit /* 0765FC 800759FC AFA30040 */ sw $v1, 0x40($sp) /* 076600 80075A00 8FA30040 */ lw $v1, 0x40($sp) /* 076604 80075A04 14400004 */ bnez $v0, .L80075A18 @@ -95,7 +95,7 @@ glabel func_800758DC /* 076630 80075A30 14520008 */ bne $v0, $s2, .L80075A54 /* 076634 80075A34 02602825 */ move $a1, $s3 /* 076638 80075A38 8E840000 */ lw $a0, ($s4) -/* 07663C 80075A3C 0C01C837 */ jal func_800720DC +/* 07663C 80075A3C 0C01C837 */ jal osMotorInit /* 076640 80075A40 02A03025 */ move $a2, $s5 /* 076644 80075A44 14400003 */ bnez $v0, .L80075A54 /* 076648 80075A48 00000000 */ nop diff --git a/asm/non_matchings/controller_pak/func_80075B18.s b/asm/non_matchings/controller_pak/func_80075B18.s index 50ceec96..ec64e9dd 100644 --- a/asm/non_matchings/controller_pak/func_80075B18.s +++ b/asm/non_matchings/controller_pak/func_80075B18.s @@ -87,7 +87,7 @@ glabel func_80075B18 /* 076860 80075C60 1441000A */ bne $v0, $at, .L80075C8C /* 076864 80075C64 02402825 */ move $a1, $s2 /* 076868 80075C68 8E840000 */ lw $a0, ($s4) -/* 07686C 80075C6C 0C01C837 */ jal func_800720DC +/* 07686C 80075C6C 0C01C837 */ jal osMotorInit /* 076870 80075C70 02003025 */ move $a2, $s0 /* 076874 80075C74 14400006 */ bnez $v0, .L80075C90 /* 076878 80075C78 00131840 */ sll $v1, $s3, 1 diff --git a/asm/non_matchings/controller_pak/func_80075E60.s b/asm/non_matchings/controller_pak/func_80075E60.s index 6162ff1e..738319eb 100644 --- a/asm/non_matchings/controller_pak/func_80075E60.s +++ b/asm/non_matchings/controller_pak/func_80075E60.s @@ -83,7 +83,7 @@ glabel func_80075E60 /* 076B8C 80075F8C AFA40064 */ sw $a0, 0x64($sp) /* 076B90 80075F90 8FA50064 */ lw $a1, 0x64($sp) /* 076B94 80075F94 AE020000 */ sw $v0, ($s0) -/* 076B98 80075F98 0C034138 */ jal memzero +/* 076B98 80075F98 0C034138 */ jal bzero /* 076B9C 80075F9C 00402025 */ move $a0, $v0 /* 076BA0 80075FA0 8FAB0068 */ lw $t3, 0x68($sp) /* 076BA4 80075FA4 8E030000 */ lw $v1, ($s0) diff --git a/asm/non_matchings/fade_transition/func_800C018C.s b/asm/non_matchings/fade_transition/func_800C018C.s deleted file mode 100644 index 785c21ea..00000000 --- a/asm/non_matchings/fade_transition/func_800C018C.s +++ /dev/null @@ -1,22 +0,0 @@ -glabel func_800C018C -/* 0C0D8C 800C018C 3C02800E */ lui $v0, %hi(D_800E31B0) # $v0, 0x800e -/* 0C0D90 800C0190 944231B0 */ lhu $v0, %lo(D_800E31B0)($v0) -/* 0C0D94 800C0194 00000000 */ nop -/* 0C0D98 800C0198 0002702B */ sltu $t6, $zero, $v0 -/* 0C0D9C 800C019C 15C0000C */ bnez $t6, .L800C01D0 -/* 0C0DA0 800C01A0 01C01025 */ move $v0, $t6 -/* 0C0DA4 800C01A4 3C02800E */ lui $v0, %hi(D_800E31B4) # $v0, 0x800e -/* 0C0DA8 800C01A8 944231B4 */ lhu $v0, %lo(D_800E31B4)($v0) -/* 0C0DAC 800C01AC 00000000 */ nop -/* 0C0DB0 800C01B0 0002782B */ sltu $t7, $zero, $v0 -/* 0C0DB4 800C01B4 11E00006 */ beqz $t7, .L800C01D0 -/* 0C0DB8 800C01B8 01E01025 */ move $v0, $t7 -/* 0C0DBC 800C01BC 3C02800E */ lui $v0, %hi(D_800E31BC) # $v0, 0x800e -/* 0C0DC0 800C01C0 804231BC */ lb $v0, %lo(D_800E31BC)($v0) -/* 0C0DC4 800C01C4 00000000 */ nop -/* 0C0DC8 800C01C8 0002C02B */ sltu $t8, $zero, $v0 -/* 0C0DCC 800C01CC 03001025 */ move $v0, $t8 -.L800C01D0: -/* 0C0DD0 800C01D0 03E00008 */ jr $ra -/* 0C0DD4 800C01D4 00000000 */ nop - diff --git a/asm/non_matchings/gzip/gzip_huft_build.s b/asm/non_matchings/gzip/gzip_huft_build.s index 90cb7cbd..8cdbbee3 100644 --- a/asm/non_matchings/gzip/gzip_huft_build.s +++ b/asm/non_matchings/gzip/gzip_huft_build.s @@ -16,7 +16,7 @@ glabel gzip_huft_build /* 0C6EAC 800C62AC AFA60600 */ sw $a2, 0x600($sp) /* 0C6EB0 800C62B0 AFA70604 */ sw $a3, 0x604($sp) /* 0C6EB4 800C62B4 24050044 */ li $a1, 68 -/* 0C6EB8 800C62B8 0C034138 */ jal memzero +/* 0C6EB8 800C62B8 0C034138 */ jal bzero /* 0C6EBC 800C62BC 02202025 */ move $a0, $s1 /* 0C6EC0 800C62C0 8FAE05FC */ lw $t6, 0x5fc($sp) /* 0C6EC4 800C62C4 0240F025 */ move $fp, $s2 diff --git a/asm/non_matchings/main/func_80065E30.s b/asm/non_matchings/main/func_80065E30.s index b9202406..ae0cfe90 100644 --- a/asm/non_matchings/main/func_80065E30.s +++ b/asm/non_matchings/main/func_80065E30.s @@ -21,7 +21,7 @@ glabel func_80065E30 /* 066A7C 80065E7C 132B0003 */ beq $t9, $t3, .L80065E8C .L80065E80: /* 066A80 80065E80 3C04800E */ lui $a0, %hi(D_800E6ED0) # $a0, 0x800e -/* 066A84 80065E84 0C032755 */ jal func_800C9D54 +/* 066A84 80065E84 0C032755 */ jal rmonPrintf /* 066A88 80065E88 24846ED0 */ addiu $a0, %lo(D_800E6ED0) # addiu $a0, $a0, 0x6ed0 .L80065E8C: /* 066A8C 80065E8C 8FBF0014 */ lw $ra, 0x14($sp) diff --git a/asm/non_matchings/menu/func_800862C4.s b/asm/non_matchings/menu/func_800862C4.s index 43f4130a..3047b9b1 100644 --- a/asm/non_matchings/menu/func_800862C4.s +++ b/asm/non_matchings/menu/func_800862C4.s @@ -55,7 +55,7 @@ glabel func_800862C4 /* 086F94 80086394 8E8D0000 */ lw $t5, ($s4) /* 086F98 80086398 000E7900 */ sll $t7, $t6, 4 /* 086F9C 8008639C 01AFC821 */ addu $t9, $t5, $t7 -/* 086FA0 800863A0 0C01CF13 */ jal func_80073C4C +/* 086FA0 800863A0 0C01CF13 */ jal get_s32_256 /* 086FA4 800863A4 A3300006 */ sb $s0, 6($t9) /* 086FA8 800863A8 8E490000 */ lw $t1, ($s2) /* 086FAC 800863AC 8E8A0000 */ lw $t2, ($s4) @@ -81,7 +81,7 @@ glabel func_800862C4 /* 086FF8 800863F8 8E8C0000 */ lw $t4, ($s4) /* 086FFC 800863FC 00185900 */ sll $t3, $t8, 4 /* 087000 80086400 018B7021 */ addu $t6, $t4, $t3 -/* 087004 80086404 0C01CF15 */ jal func_80073C54 +/* 087004 80086404 0C01CF15 */ jal get_s32_512 /* 087008 80086408 A1D30001 */ sb $s3, 1($t6) /* 08700C 8008640C 8E4F0000 */ lw $t7, ($s2) /* 087010 80086410 8E990000 */ lw $t9, ($s4) diff --git a/asm/non_matchings/menu/func_800867D4.s b/asm/non_matchings/menu/func_800867D4.s index 482ec2e4..b9b7e2b8 100644 --- a/asm/non_matchings/menu/func_800867D4.s +++ b/asm/non_matchings/menu/func_800867D4.s @@ -36,7 +36,7 @@ glabel L80086834 /* 087444 80086844 8C846A04 */ lw $a0, %lo(D_80126A04)($a0) /* 087448 80086848 0C021872 */ jal func_800861C8 /* 08744C 8008684C 02002825 */ move $a1, $s0 -/* 087450 80086850 0C01CF13 */ jal func_80073C4C +/* 087450 80086850 0C01CF13 */ jal get_s32_256 /* 087454 80086854 00000000 */ nop /* 087458 80086858 3C068012 */ lui $a2, %hi(D_80126A04) # $a2, 0x8012 /* 08745C 8008685C 8CC66A04 */ lw $a2, %lo(D_80126A04)($a2) @@ -51,7 +51,7 @@ glabel L80086834 /* 087480 80086880 10000062 */ b .L80086A0C /* 087484 80086884 00401825 */ move $v1, $v0 glabel L80086888 -/* 087488 80086888 0C01CF15 */ jal func_80073C54 +/* 087488 80086888 0C01CF15 */ jal get_s32_512 /* 08748C 8008688C 00000000 */ nop /* 087490 80086890 3C068012 */ lui $a2, %hi(D_80126A04) # $a2, 0x8012 /* 087494 80086894 8CC66A04 */ lw $a2, %lo(D_80126A04)($a2) @@ -70,7 +70,7 @@ glabel L800868C0 /* 0874C4 800868C4 8C846A04 */ lw $a0, %lo(D_80126A04)($a0) /* 0874C8 800868C8 0C021872 */ jal func_800861C8 /* 0874CC 800868CC 02002825 */ move $a1, $s0 -/* 0874D0 800868D0 0C01CF13 */ jal func_80073C4C +/* 0874D0 800868D0 0C01CF13 */ jal get_s32_256 /* 0874D4 800868D4 00000000 */ nop /* 0874D8 800868D8 3C0C8012 */ lui $t4, %hi(D_80126BD4) # $t4, 0x8012 /* 0874DC 800868DC 8D8C6BD4 */ lw $t4, %lo(D_80126BD4)($t4) @@ -101,7 +101,7 @@ glabel L80086920 /* 08753C 8008693C 8E0C0000 */ lw $t4, ($s0) /* 087540 80086940 00000000 */ nop /* 087544 80086944 258B0001 */ addiu $t3, $t4, 1 -/* 087548 80086948 0C01CF15 */ jal func_80073C54 +/* 087548 80086948 0C01CF15 */ jal get_s32_512 /* 08754C 8008694C AE0B0000 */ sw $t3, ($s0) /* 087550 80086950 3C0F8012 */ lui $t7, %hi(D_80126BD4) # $t7, 0x8012 /* 087554 80086954 8DEF6BD4 */ lw $t7, %lo(D_80126BD4)($t7) diff --git a/asm/non_matchings/menu/menu_audio_options_loop.s b/asm/non_matchings/menu/menu_audio_options_loop.s index 72ee4808..ebae621d 100644 --- a/asm/non_matchings/menu/menu_audio_options_loop.s +++ b/asm/non_matchings/menu/menu_audio_options_loop.s @@ -264,7 +264,7 @@ glabel menu_audio_options_loop .L8008502C: /* 085C2C 8008502C 0C0002CA */ jal func_80000B28 /* 085C30 80085030 00000000 */ nop -/* 085C34 80085034 0C0002F8 */ jal func_80000BE0 +/* 085C34 80085034 0C0002F8 */ jal set_music_player_voice_limit /* 085C38 80085038 24040018 */ li $a0, 24 /* 085C3C 8008503C 0C0002CD */ jal play_music /* 085C40 80085040 24040018 */ li $a0, 24 @@ -310,7 +310,7 @@ glabel menu_audio_options_loop /* 085CD4 800850D4 00000000 */ nop /* 085CD8 800850D8 0C0002CA */ jal func_80000B28 /* 085CDC 800850DC 00000000 */ nop -/* 085CE0 800850E0 0C0002F8 */ jal func_80000BE0 +/* 085CE0 800850E0 0C0002F8 */ jal set_music_player_voice_limit /* 085CE4 800850E4 24040018 */ li $a0, 24 /* 085CE8 800850E8 92040003 */ lbu $a0, 3($s0) /* 085CEC 800850EC 0C0002CD */ jal play_music diff --git a/asm/non_matchings/menu/menu_track_select_init.s b/asm/non_matchings/menu/menu_track_select_init.s index 67ec1bc1..c3f38062 100644 --- a/asm/non_matchings/menu/menu_track_select_init.s +++ b/asm/non_matchings/menu/menu_track_select_init.s @@ -525,7 +525,7 @@ glabel menu_track_select_init /* 08FB7C 8008EF7C 2610F760 */ addiu $s0, %lo(D_800DF760) # addiu $s0, $s0, -0x8a0 /* 08FB80 8008EF80 AC206848 */ sw $zero, %lo(D_80126848)($at) /* 08FB84 8008EF84 AE000000 */ sw $zero, ($s0) -/* 08FB88 8008EF88 0C0002F8 */ jal func_80000BE0 +/* 08FB88 8008EF88 0C0002F8 */ jal set_music_player_voice_limit /* 08FB8C 8008EF8C 24040018 */ li $a0, 24 /* 08FB90 8008EF90 0C000307 */ jal func_80000C1C /* 08FB94 8008EF94 00000000 */ nop diff --git a/asm/non_matchings/menu/menu_trophy_race_rankings_init.s b/asm/non_matchings/menu/menu_trophy_race_rankings_init.s index fb3df0c1..1d84ba78 100644 --- a/asm/non_matchings/menu/menu_trophy_race_rankings_init.s +++ b/asm/non_matchings/menu/menu_trophy_race_rankings_init.s @@ -303,7 +303,7 @@ glabel menu_trophy_race_rankings_init .L80098E5C: /* 099A5C 80098E5C 0C03105C */ jal func_800C4170 /* 099A60 80098E60 24040002 */ li $a0, 2 -/* 099A64 80098E64 0C0002F8 */ jal func_80000BE0 +/* 099A64 80098E64 0C0002F8 */ jal set_music_player_voice_limit /* 099A68 80098E68 24040018 */ li $a0, 24 /* 099A6C 80098E6C 0C0002CD */ jal play_music /* 099A70 80098E70 24040018 */ li $a0, 24 diff --git a/asm/non_matchings/menu/menu_trophy_race_round_init.s b/asm/non_matchings/menu/menu_trophy_race_round_init.s index 6e638eec..32c69bbe 100644 --- a/asm/non_matchings/menu/menu_trophy_race_round_init.s +++ b/asm/non_matchings/menu/menu_trophy_race_round_init.s @@ -77,7 +77,7 @@ glabel menu_trophy_race_round_init /* 098F80 80098380 AC2B0980 */ sw $t3, %lo(D_800E0980)($at) /* 098F84 80098384 0C03105C */ jal func_800C4170 /* 098F88 80098388 24040002 */ li $a0, 2 -/* 098F8C 8009838C 0C0002F8 */ jal func_80000BE0 +/* 098F8C 8009838C 0C0002F8 */ jal set_music_player_voice_limit /* 098F90 80098390 24040018 */ li $a0, 24 /* 098F94 80098394 0C0002CD */ jal play_music /* 098F98 80098398 24040018 */ li $a0, 24 diff --git a/asm/non_matchings/thread0_epc/func_800B71B0.s b/asm/non_matchings/thread0_epc/func_800B71B0.s index 829a5055..24eb430f 100644 --- a/asm/non_matchings/thread0_epc/func_800B71B0.s +++ b/asm/non_matchings/thread0_epc/func_800B71B0.s @@ -1,7 +1,7 @@ glabel func_800B71B0 /* 0B7DB0 800B71B0 27BDF7B8 */ addiu $sp, $sp, -0x848 /* 0B7DB4 800B71B4 AFBF001C */ sw $ra, 0x1c($sp) -/* 0B7DB8 800B71B8 0C03491C */ jal func_800D2470 +/* 0B7DB8 800B71B8 0C03491C */ jal __osGetActiveQueue /* 0B7DBC 800B71BC 00000000 */ nop /* 0B7DC0 800B71C0 8C4E0004 */ lw $t6, 4($v0) /* 0B7DC4 800B71C4 2404FFFF */ li $a0, -1 diff --git a/asm/non_matchings/thread0_epc/func_800B7460.s b/asm/non_matchings/thread0_epc/func_800B7460.s index ed86ee21..484121ac 100644 --- a/asm/non_matchings/thread0_epc/func_800B7460.s +++ b/asm/non_matchings/thread0_epc/func_800B7460.s @@ -8,7 +8,7 @@ glabel func_800B7460 /* 0B8078 800B7478 00027100 */ sll $t6, $v0, 4 /* 0B807C 800B747C 05C1008A */ bgez $t6, .L800B76A8 /* 0B8080 800B7480 27A40840 */ addiu $a0, $sp, 0x840 -/* 0B8084 800B7484 0C034138 */ jal memzero +/* 0B8084 800B7484 0C034138 */ jal bzero /* 0B8088 800B7488 240501B0 */ li $a1, 432 /* 0B808C 800B748C 3C028013 */ lui $v0, %hi(D_80129FB0) # $v0, 0x8013 /* 0B8090 800B7490 24429FB0 */ addiu $v0, %lo(D_80129FB0) # addiu $v0, $v0, -0x6050 @@ -41,7 +41,7 @@ glabel func_800B7460 /* 0B80FC 800B74FC 0C032768 */ jal bcopy /* 0B8100 800B7500 AFAC0884 */ sw $t4, 0x884($sp) /* 0B8104 800B7504 27A40240 */ addiu $a0, $sp, 0x240 -/* 0B8108 800B7508 0C034138 */ jal memzero +/* 0B8108 800B7508 0C034138 */ jal bzero /* 0B810C 800B750C 24050200 */ li $a1, 512 /* 0B8110 800B7510 27A40038 */ addiu $a0, $sp, 0x38 /* 0B8114 800B7514 0C009165 */ jal func_80024594 diff --git a/asm/non_matchings/unknown_003260/func_80002C00.s b/asm/non_matchings/unknown_003260/func_80002C00.s index 8a3c0606..ce4a8b56 100644 --- a/asm/non_matchings/unknown_003260/func_80002C00.s +++ b/asm/non_matchings/unknown_003260/func_80002C00.s @@ -31,7 +31,7 @@ glabel func_80002C00 /* 003874 80002C74 0C032180 */ jal osAiSetFrequency /* 003878 80002C78 24445622 */ addiu $a0, $v0, 0x5622 .L80002C7C: -/* 00387C 80002C7C 0C032388 */ jal func_800C8E20 +/* 00387C 80002C7C 0C032388 */ jal osAiGetLength /* 003880 80002C80 00000000 */ nop /* 003884 80002C84 3C188012 */ lui $t8, %hi(D_8011962C) # $t8, 0x8012 /* 003888 80002C88 8F18962C */ lw $t8, %lo(D_8011962C)($t8) diff --git a/asm/non_matchings/unknown_003260/func_80002DF8.s b/asm/non_matchings/unknown_003260/func_80002DF8.s index bc9cb009..eaa70e3b 100644 --- a/asm/non_matchings/unknown_003260/func_80002DF8.s +++ b/asm/non_matchings/unknown_003260/func_80002DF8.s @@ -1,7 +1,7 @@ glabel func_80002DF8 /* 0039F8 80002DF8 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 0039FC 80002DFC AFBF0014 */ sw $ra, 0x14($sp) -/* 003A00 80002E00 0C032388 */ jal func_800C8E20 +/* 003A00 80002E00 0C032388 */ jal osAiGetLength /* 003A04 80002E04 AFA40018 */ sw $a0, 0x18($sp) /* 003A08 80002E08 00027082 */ srl $t6, $v0, 2 /* 003A0C 80002E0C 15C00006 */ bnez $t6, .L80002E28 diff --git a/asm/non_matchings/unknown_0255E0/func_8002C0C4.s b/asm/non_matchings/unknown_0255E0/func_8002C0C4.s index ee713ce8..61f3ebab 100644 --- a/asm/non_matchings/unknown_0255E0/func_8002C0C4.s +++ b/asm/non_matchings/unknown_0255E0/func_8002C0C4.s @@ -288,7 +288,7 @@ glabel func_8002C0C4 /* 02D0FC 8002C4FC 14200004 */ bnez $at, .L8002C510 /* 02D100 8002C500 3C04800E */ lui $a0, %hi(D_800E5E38) # $a0, 0x800e /* 02D104 8002C504 24845E38 */ addiu $a0, %lo(D_800E5E38) # addiu $a0, $a0, 0x5e38 -/* 02D108 8002C508 0C032755 */ jal func_800C9D54 +/* 02D108 8002C508 0C032755 */ jal rmonPrintf /* 02D10C 8002C50C 02602825 */ move $a1, $s3 .L8002C510: /* 02D110 8002C510 0C01C42C */ jal set_free_queue_state diff --git a/asm/non_matchings/unknown_032760/func_80034E9C.s b/asm/non_matchings/unknown_032760/func_80034E9C.s index 32e987a9..ff48d29f 100644 --- a/asm/non_matchings/unknown_032760/func_80034E9C.s +++ b/asm/non_matchings/unknown_032760/func_80034E9C.s @@ -141,7 +141,7 @@ glabel func_80034E9C /* 035CA0 800350A0 240E008C */ li $t6, 140 /* 035CA4 800350A4 24040010 */ li $a0, 16 /* 035CA8 800350A8 A5AB0004 */ sh $t3, 4($t5) -/* 035CAC 800350AC 0C00030E */ jal func_80000C38 +/* 035CAC 800350AC 0C00030E */ jal set_sndfx_player_voice_limit /* 035CB0 800350B0 ADAE0000 */ sw $t6, ($t5) /* 035CB4 800350B4 0C000326 */ jal func_80000C98 /* 035CB8 800350B8 2404FFF8 */ li $a0, -8 @@ -172,7 +172,7 @@ glabel func_80034E9C .L80035114: /* 035D14 80035114 0C000326 */ jal func_80000C98 /* 035D18 80035118 AF200000 */ sw $zero, ($t9) -/* 035D1C 8003511C 0C00030E */ jal func_80000C38 +/* 035D1C 8003511C 0C00030E */ jal set_sndfx_player_voice_limit /* 035D20 80035120 24040006 */ li $a0, 6 .L80035124: /* 035D24 80035124 8E0A005C */ lw $t2, 0x5c($s0) diff --git a/asm/non_matchings/unknown_032760/func_80039330.s b/asm/non_matchings/unknown_032760/func_80039330.s index 04e52851..fa8c5cb6 100644 --- a/asm/non_matchings/unknown_032760/func_80039330.s +++ b/asm/non_matchings/unknown_032760/func_80039330.s @@ -189,7 +189,7 @@ glabel func_80039330 .L800395A0: /* 03A1A0 800395A0 0C0004BA */ jal func_800012E8 /* 03A1A4 800395A4 AFA60084 */ sw $a2, 0x84($sp) -/* 03A1A8 800395A8 0C0002F8 */ jal func_80000BE0 +/* 03A1A8 800395A8 0C0002F8 */ jal set_music_player_voice_limit /* 03A1AC 800395AC 24040018 */ li $a0, 24 /* 03A1B0 800395B0 0C0002CD */ jal play_music /* 03A1B4 800395B4 24040020 */ li $a0, 32 @@ -661,7 +661,7 @@ glabel L80039BB8 /* 03A85C 80039C5C 8FA90064 */ lw $t1, 0x64($sp) /* 03A860 80039C60 00000000 */ nop /* 03A864 80039C64 912400B3 */ lbu $a0, 0xb3($t1) -/* 03A868 80039C68 0C0002F8 */ jal func_80000BE0 +/* 03A868 80039C68 0C0002F8 */ jal set_music_player_voice_limit /* 03A86C 80039C6C 00000000 */ nop /* 03A870 80039C70 8FAA0064 */ lw $t2, 0x64($sp) /* 03A874 80039C74 00000000 */ nop @@ -1135,7 +1135,7 @@ glabel L8003A268 /* 03AF4C 8003A34C 8FAD0064 */ lw $t5, 0x64($sp) /* 03AF50 8003A350 00000000 */ nop /* 03AF54 8003A354 91A400B3 */ lbu $a0, 0xb3($t5) -/* 03AF58 8003A358 0C0002F8 */ jal func_80000BE0 +/* 03AF58 8003A358 0C0002F8 */ jal set_music_player_voice_limit /* 03AF5C 8003A35C 00000000 */ nop /* 03AF60 8003A360 8FAE0064 */ lw $t6, 0x64($sp) /* 03AF64 8003A364 00000000 */ nop diff --git a/asm/non_matchings/unknown_032760/func_8003B368.s b/asm/non_matchings/unknown_032760/func_8003B368.s index 0c54edd2..574faaf5 100644 --- a/asm/non_matchings/unknown_032760/func_8003B368.s +++ b/asm/non_matchings/unknown_032760/func_8003B368.s @@ -30,7 +30,7 @@ glabel func_8003B368 /* 03BFBC 8003B3BC 15C10006 */ bne $t6, $at, .L8003B3D8 /* 03BFC0 8003B3C0 3C04800E */ lui $a0, %hi(D_800E5FA0) # $a0, 0x800e /* 03BFC4 8003B3C4 24845FA0 */ addiu $a0, %lo(D_800E5FA0) # addiu $a0, $a0, 0x5fa0 -/* 03BFC8 8003B3C8 0C032755 */ jal func_800C9D54 +/* 03BFC8 8003B3C8 0C032755 */ jal rmonPrintf /* 03BFCC 8003B3CC AFA60024 */ sw $a2, 0x24($sp) /* 03BFD0 8003B3D0 8FA60024 */ lw $a2, 0x24($sp) /* 03BFD4 8003B3D4 00000000 */ nop diff --git a/asm/non_matchings/unknown_032760/func_8003B7CC.s b/asm/non_matchings/unknown_032760/func_8003B7CC.s index d71d3ac2..5b106911 100644 --- a/asm/non_matchings/unknown_032760/func_8003B7CC.s +++ b/asm/non_matchings/unknown_032760/func_8003B7CC.s @@ -46,7 +46,7 @@ glabel func_8003B7CC /* 03C460 8003B860 15210007 */ bne $t1, $at, .L8003B880 /* 03C464 8003B864 A0680012 */ sb $t0, 0x12($v1) /* 03C468 8003B868 AFA30024 */ sw $v1, 0x24($sp) -/* 03C46C 8003B86C 0C032755 */ jal func_800C9D54 +/* 03C46C 8003B86C 0C032755 */ jal rmonPrintf /* 03C470 8003B870 AFA6002C */ sw $a2, 0x2c($sp) /* 03C474 8003B874 8FA30024 */ lw $v1, 0x24($sp) /* 03C478 8003B878 8FA6002C */ lw $a2, 0x2c($sp) diff --git a/asm/non_matchings/unknown_032760/func_8003B988.s b/asm/non_matchings/unknown_032760/func_8003B988.s index e9e9efc5..acfb60ea 100644 --- a/asm/non_matchings/unknown_032760/func_8003B988.s +++ b/asm/non_matchings/unknown_032760/func_8003B988.s @@ -105,7 +105,7 @@ glabel func_8003B988 /* 03C700 8003BB00 8FA80044 */ lw $t0, 0x44($sp) /* 03C704 8003BB04 240F008C */ li $t7, 140 /* 03C708 8003BB08 24040010 */ li $a0, 16 -/* 03C70C 8003BB0C 0C00030E */ jal func_80000C38 +/* 03C70C 8003BB0C 0C00030E */ jal set_sndfx_player_voice_limit /* 03C710 8003BB10 AD0F0008 */ sw $t7, 8($t0) /* 03C714 8003BB14 0C002050 */ jal func_80008140 /* 03C718 8003BB18 00000000 */ nop @@ -163,7 +163,7 @@ glabel func_8003B988 /* 03C7D8 8003BBD8 AFA90040 */ sw $t1, 0x40($sp) /* 03C7DC 8003BBDC 0C000326 */ jal func_80000C98 /* 03C7E0 8003BBE0 AFA80044 */ sw $t0, 0x44($sp) -/* 03C7E4 8003BBE4 0C00030E */ jal func_80000C38 +/* 03C7E4 8003BBE4 0C00030E */ jal set_sndfx_player_voice_limit /* 03C7E8 8003BBE8 24040006 */ li $a0, 6 /* 03C7EC 8003BBEC 0C00205A */ jal func_80008168 /* 03C7F0 8003BBF0 00000000 */ nop diff --git a/asm/non_matchings/unknown_032760/func_8003C2E4.s b/asm/non_matchings/unknown_032760/func_8003C2E4.s index 5fe87bf0..9afe9c04 100644 --- a/asm/non_matchings/unknown_032760/func_8003C2E4.s +++ b/asm/non_matchings/unknown_032760/func_8003C2E4.s @@ -84,7 +84,7 @@ glabel func_8003C2E4 /* 03D020 8003C420 2404FFF8 */ li $a0, -8 /* 03D024 8003C424 240B008C */ li $t3, 140 /* 03D028 8003C428 AE0B0008 */ sw $t3, 8($s0) -/* 03D02C 8003C42C 0C00030E */ jal func_80000C38 +/* 03D02C 8003C42C 0C00030E */ jal set_sndfx_player_voice_limit /* 03D030 8003C430 24040010 */ li $a0, 16 /* 03D034 8003C434 0C0006F0 */ jal play_sound /* 03D038 8003C438 24040011 */ li $a0, 17 @@ -122,7 +122,7 @@ glabel func_8003C2E4 .L8003C4AC: /* 03D0AC 8003C4AC 0C000326 */ jal func_80000C98 /* 03D0B0 8003C4B0 AE000008 */ sw $zero, 8($s0) -/* 03D0B4 8003C4B4 0C00030E */ jal func_80000C38 +/* 03D0B4 8003C4B4 0C00030E */ jal set_sndfx_player_voice_limit /* 03D0B8 8003C4B8 24040006 */ li $a0, 6 .L8003C4BC: /* 03D0BC 8003C4BC 8602000C */ lh $v0, 0xc($s0) diff --git a/asm/non_matchings/unknown_032760/func_8003C644.s b/asm/non_matchings/unknown_032760/func_8003C644.s index ddda579e..f8af78a0 100644 --- a/asm/non_matchings/unknown_032760/func_8003C644.s +++ b/asm/non_matchings/unknown_032760/func_8003C644.s @@ -26,7 +26,7 @@ glabel func_8003C644 /* 03D288 8003C688 2401FFFF */ li $at, -1 /* 03D28C 8003C68C 15C10003 */ bne $t6, $at, .L8003C69C /* 03D290 8003C690 3C04800E */ lui $a0, %hi(D_800E5FC8) # $a0, 0x800e -/* 03D294 8003C694 0C032755 */ jal func_800C9D54 +/* 03D294 8003C694 0C032755 */ jal rmonPrintf /* 03D298 8003C698 24845FC8 */ addiu $a0, %lo(D_800E5FC8) # addiu $a0, $a0, 0x5fc8 .L8003C69C: /* 03D29C 8003C69C 92380008 */ lbu $t8, 8($s1) diff --git a/asm/non_matchings/unknown_06B2B0/load_level.s b/asm/non_matchings/unknown_06B2B0/load_level.s index 95e4e7f4..91e3bd55 100644 --- a/asm/non_matchings/unknown_06B2B0/load_level.s +++ b/asm/non_matchings/unknown_06B2B0/load_level.s @@ -397,7 +397,7 @@ glabel load_level /* 06C400 8006B800 00000000 */ nop .L8006B804: /* 06C404 8006B804 906400B3 */ lbu $a0, 0xb3($v1) -/* 06C408 8006B808 0C0002F8 */ jal func_80000BE0 +/* 06C408 8006B808 0C0002F8 */ jal set_music_player_voice_limit /* 06C40C 8006B80C 00000000 */ nop /* 06C410 8006B810 0C00032F */ jal func_80000CBC /* 06C414 8006B814 00000000 */ nop diff --git a/asm/non_matchings/unknown_09F8F0/func_800A497C.s b/asm/non_matchings/unknown_09F8F0/func_800A497C.s index d61936d4..5a488f2a 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A497C.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A497C.s @@ -22,7 +22,7 @@ glabel func_800A497C /* 0A55CC 800A49CC 10000074 */ b .L800A4BA0 /* 0A55D0 800A49D0 83AD0027 */ lb $t5, 0x27($sp) .L800A49D4: -/* 0A55D4 800A49D4 0C0002F8 */ jal func_80000BE0 +/* 0A55D4 800A49D4 0C0002F8 */ jal set_music_player_voice_limit /* 0A55D8 800A49D8 AFA7002C */ sw $a3, 0x2c($sp) /* 0A55DC 800A49DC 0C0002CD */ jal play_music /* 0A55E0 800A49E0 24040019 */ li $a0, 25 diff --git a/first_diff.sh b/first_diff.sh new file mode 100755 index 00000000..dd51b5ae --- /dev/null +++ b/first_diff.sh @@ -0,0 +1 @@ +python3 tools/python/first_diff.py \ No newline at end of file diff --git a/generate_ctx.sh b/generate_ctx.sh new file mode 100755 index 00000000..24c8afc7 --- /dev/null +++ b/generate_ctx.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +find include/ src/ -type f -name "*.h" | sed -e 's/.*/#include "\0"/' > ctx_includes.c +python3 tools/python/m2ctx.py ctx_includes.c diff --git a/include/PR/libaudio.h b/include/PR/libaudio.h index 1179c933..fde5d00a 100644 --- a/include/PR/libaudio.h +++ b/include/PR/libaudio.h @@ -218,6 +218,7 @@ typedef struct { ALSound *soundArray[1]; } ALInstrument; +/* Size: 0x10 bytes */ typedef struct ALBank_s { s16 instCount; /* number of programs in this bank */ u8 flags; @@ -268,6 +269,7 @@ typedef struct { s32 *params; } ALSynConfig; +/* Size: 0x14 bytes */ typedef struct ALPlayer_s { struct ALPlayer_s *next; void *clientData; /* storage for client callback */ @@ -293,6 +295,7 @@ typedef struct ALVoiceConfig_s { u8 unityPitch; /* unity pitch flag */ } ALVoiceConfig; +/* Size: 0x4C bytes */ typedef struct { ALPlayer *head; /* client list head */ ALLink pFreeList; /* list of free physical voices */ @@ -522,6 +525,7 @@ typedef struct { u8 chan; } ALOscEvent; +/* Size: 0x10 bytes */ typedef struct { s16 type; union { @@ -545,6 +549,7 @@ typedef struct { ALEvent evt; } ALEventListItem; +/* Size: 0x14 bytes */ typedef struct { ALLink freeList; ALLink allocList; @@ -603,6 +608,7 @@ typedef struct { u8 unk10; } ALChanState_Custom; +/* Size: 0x1C bytes */ typedef struct ALSeq_s { u8 *base; /* ptr to start of sequence file */ u8 *trackStart; /* ptr to first MIDI event */ @@ -667,38 +673,43 @@ typedef ALMicroTime (*ALOscInit)(void **oscState,f32 *initVal, u8 oscType, typedef ALMicroTime (*ALOscUpdate)(void *oscState, f32 *updateVal); typedef void (*ALOscStop)(void *oscState); +/** + * Has an extra two bytes for the voice limit not found in standard implementations + * Size: 0x92 */ typedef struct { - ALPlayer node; /* note: must be first in structure */ - ALSynth *drvr; /* reference to the client driver */ - ALSeq *target; /* current sequence */ - ALMicroTime curTime; - ALBank *bank; /* current ALBank */ - s32 uspt; /* microseconds per tick */ - s32 nextDelta; /* microseconds to next callback */ - s32 state; - u16 chanMask; /* active channels */ - s16 vol; /* overall sequence volume */ - u8 maxChannels; /* number of MIDI channels */ - u8 debugFlags; /* control which error get reported */ - ALEvent nextEvent; - ALEventQueue evtq; - ALMicroTime frameTime; - ALChanState *chanState; /* 16 channels for MIDI */ - ALVoiceState *vAllocHead; /* list head for allocated voices */ - ALVoiceState *vAllocTail; /* list tail for allocated voices */ - ALVoiceState *vFreeList; /* list of free voice state structs */ - u8 unk70; - u8 unk71; - u8 unk72; // Might just be padding? - u8 unk73; // Might just be padding? - ALOscInit initOsc; - ALOscUpdate updateOsc; - ALOscStop stopOsc; - ALSeqMarker *loopStart; - ALSeqMarker *loopEnd; - s32 loopCount; /* -1 = loop forever, 0 = no loop */ + /* 0x00 */ ALPlayer node; /* note: must be first in structure */ + /* 0x14 */ ALSynth *drvr; /* reference to the client driver */ + /* 0x18 */ ALSeq *target; /* current sequence */ + /* 0x1C */ ALMicroTime curTime; + /* 0x20 */ ALBank *bank; /* current ALBank */ + /* 0x24 */ s32 uspt; /* microseconds per tick */ + /* 0x28 */ s32 nextDelta; /* microseconds to next callback */ + /* 0x2C */ s32 state; + /* 0x30 */ u16 chanMask; /* active channels */ + /* 0x32 */ s16 vol; /* overall sequence volume */ + /* 0x34 */ u8 maxChannels; /* number of MIDI channels */ + /* 0x35 */ u8 debugFlags; /* control which error get reported */ + /* 0x36 */ ALEvent nextEvent; + /* 0x48 */ ALEventQueue evtq; + /* 0x5C */ ALMicroTime frameTime; + /* 0x60 */ ALChanState *chanState; /* 16 channels for MIDI */ + /* 0x64 */ ALVoiceState *vAllocHead; /* list head for allocated voices */ + /* 0x68 */ ALVoiceState *vAllocTail; /* list tail for allocated voices */ + /* 0x6C */ ALVoiceState *vFreeList; /* list of free voice state structs */ + /* 0x70 */ u8 voiceLimit; + /* 0x71 */ u8 mappedVoices; + /* 0x72 */ u16 unk72; /* Might just be padding? */ + /* 0x74 */ ALOscInit initOsc; + /* 0x78 */ ALOscUpdate updateOsc; + /* 0x7C */ ALOscStop stopOsc; + /* 0x80 */ ALSeqMarker *loopStart; + /* 0x84 */ ALSeqMarker *loopEnd; + /* 0x88 */ s32 loopCount; /* -1 = loop forever, 0 = no loop */ } ALSeqPlayer; +/** + * This has an extra padded 4 bytes at the end for some reason. + * Size: 0x80 bytes */ typedef struct { ALPlayer node; /* note: must be first in structure */ ALSynth *drvr; /* reference to the client driver */ @@ -722,9 +733,40 @@ typedef struct { ALOscInit initOsc; ALOscUpdate updateOsc; ALOscStop stopOsc; - s32 unk7C; + s32 unk7C; /* Padded to match ALCSPlayer_Custom */ } ALCSPlayer; +/** + * This custom struct has a unk36 byte that is set to 0x7F in func_80002224. + * It is otherwise identical to the ALCSPlayer above, but we need to pad it's size to match + * Size: 0x80 bytes */ +typedef struct { + /* 0x00 */ ALPlayer node; /* note: must be first in structure */ + /* 0x14 */ ALSynth *drvr; /* reference to the client driver */ + /* 0x18 */ ALCSeq *target; /* current sequence */ + /* 0x1C */ ALMicroTime curTime; + /* 0x20 */ ALBank *bank; /* current ALBank */ + /* 0x24 */ s32 uspt; /* microseconds per tick */ + /* 0x28 */ s32 nextDelta; /* microseconds to next callback */ + /* 0x2C */ s32 state; + /* 0x30 */ u16 chanMask; /* active channels */ + /* 0x32 */ s16 vol; /* overall sequence volume */ + /* 0x34 */ u8 maxChannels; /* number of MIDI channels */ + /* 0x35 */ u8 debugFlags; /* control which error get reported */ + /* 0x36 */ u8 unk36; + /* 0x37 */ u8 unk37[3]; /* Padded to match ALCSPlayer */ + /* 0x40 */ ALEvent nextEvent; + /* 0x4C */ ALEventQueue evtq; + /* 0x60 */ ALMicroTime frameTime; + /* 0x64 */ ALChanState *chanState; /* 16 channels for MIDI */ + /* 0x68 */ ALVoiceState *vAllocHead; /* list head for allocated voices */ + /* 0x6C */ ALVoiceState *vAllocTail; /* list tail for allocated voices */ + /* 0x70 */ ALVoiceState *vFreeList; /* list of free voice state structs */ + /* 0x74 */ ALOscInit initOsc; + /* 0x78 */ ALOscUpdate updateOsc; + /* 0x7C */ ALOscStop stopOsc; +} ALCSPlayer_Custom; + /* Maintain backwards compatibility with old routine names. */ #define alSeqpSetProgram alSeqpSetChlProgram #define alSeqpGetProgram alSeqpGetChlProgram diff --git a/include/PR/os_cont.h b/include/PR/os_cont.h index 4108b582..7eee1f89 100644 --- a/include/PR/os_cont.h +++ b/include/PR/os_cont.h @@ -187,7 +187,7 @@ typedef struct { /* Controller interface */ -extern s32 osContInit(OSMesgQueue *, u8 *, OSContStatus *); +extern s32 osContInit(OSMesgQueue *mq, u8 *bitpattern, OSContStatus *status); extern s32 osContReset(OSMesgQueue *, OSContStatus *); extern s32 osContStartQuery(OSMesgQueue *); extern s32 osContStartReadData(OSMesgQueue *mq); diff --git a/include/PR/os_internal.h b/include/PR/os_internal.h index a18e0367..28445276 100644 --- a/include/PR/os_internal.h +++ b/include/PR/os_internal.h @@ -4,15 +4,32 @@ /* Internal functions used by the operating system */ /* Do not include this header in application code */ +#include "os_thread.h" + /* Variables */ -//extern u64 osClockRate; +extern u64 osClockRate; +/* + * CPU counter increments at 3/4 of bus clock rate: + * + * Bus Clock Proc Clock Counter (1/2 Proc Clock) + * --------- ---------- ------------------------ + * 62.5 Mhz 93.75 Mhz 46.875 Mhz + */ +extern u64 osClockRate; + +#define OS_CLOCK_RATE 62500000LL +#define OS_CPU_COUNTER (OS_CLOCK_RATE*3/4) +#define OS_NSEC_TO_CYCLES(n) (((u64)(n)*(OS_CPU_COUNTER/15625000LL))/(1000000000LL/15625000LL)) +#define OS_USEC_TO_CYCLES(n) (((u64)(n)*(OS_CPU_COUNTER/15625LL))/(1000000LL/15625LL)) +#define OS_CYCLES_TO_NSEC(c) (((u64)(c)*(1000000000LL/15625000LL))/(OS_CPU_COUNTER/15625000LL)) +#define OS_CYCLES_TO_USEC(c) (((u64)(c)*(1000000LL/15625LL))/(OS_CPU_COUNTER/15625LL)) /* Functions */ -/*u32 __osProbeTLB(void *); +u32 __osProbeTLB(void *); u32 __osDisableInt(void); -void __osRestoreInt(u32);*/ +void __osRestoreInt(u32); OSThread *__osGetCurrFaultedThread(void); #endif diff --git a/include/PR/os_message.h b/include/PR/os_message.h index 76900f47..706306d7 100644 --- a/include/PR/os_message.h +++ b/include/PR/os_message.h @@ -161,7 +161,7 @@ typedef struct OSMesgQueue_s { /* Message operations */ -extern void osCreateMesgQueue(OSMesgQueue *, OSMesg *, s32); +extern void osCreateMesgQueue(OSMesgQueue *mq, OSMesg *msg, s32 msgCount); extern s32 osSendMesg(OSMesgQueue *, OSMesg, s32); extern s32 osJamMesg(OSMesgQueue *, OSMesg, s32); extern s32 osRecvMesg(OSMesgQueue *, OSMesg *, s32); diff --git a/include/PR/os_pi.h b/include/PR/os_pi.h index e2e22644..b979afbf 100644 --- a/include/PR/os_pi.h +++ b/include/PR/os_pi.h @@ -23,7 +23,7 @@ typedef struct { s32 sectorNum; // 8 uintptr_t devAddr; // c #if defined(VERSION_EU) || defined(VERSION_SH) - u32 unk10; //error status added moved to blockinfo + u32 errStatus; //error status added moved to blockinfo #endif u32 bmCtlShadow; // 10 u32 seqCtlShadow; // 14 diff --git a/include/PR/os_time.h b/include/PR/os_time.h index 328e6015..edd3d258 100644 --- a/include/PR/os_time.h +++ b/include/PR/os_time.h @@ -6,22 +6,21 @@ /* Types */ -typedef struct OSTimer_str -{ - struct OSTimer_str *next; - struct OSTimer_str *prev; - u64 interval; - u64 remaining; +typedef u64 OSTime; + +typedef struct OSTimer_s { + struct OSTimer_s *next; + struct OSTimer_s *prev; + OSTime interval; + OSTime remaining; OSMesgQueue *mq; OSMesg *msg; } OSTimer; -typedef u64 OSTime; - /* Functions */ OSTime osGetTime(void); void osSetTime(OSTime time); -u32 osSetTimer(OSTimer *, OSTime, u64, OSMesgQueue *, OSMesg); +s32 osSetTimer(OSTimer *t, OSTime value, OSTime interval, OSMesgQueue *mq, OSMesg msg); #endif diff --git a/include/PR/pfs.h b/include/PR/pfs.h index 0e9dc7a2..68c16aba 100644 --- a/include/PR/pfs.h +++ b/include/PR/pfs.h @@ -80,7 +80,7 @@ typedef struct { int inode_table; /* block location */ int minode_table; /* mirrioring inode_table */ int dir_table; /* block location */ - int inodeStartPage; /* page # */ + int inode_start_page; /* page # */ u8 banks; u8 activebank; } OSPfs; @@ -102,7 +102,7 @@ typedef union { } __OSInodeUnit; typedef struct { - __OSInodeUnit inodePage[128]; + __OSInodeUnit inode_page[128]; } __OSInode; typedef struct { diff --git a/include/PR/rcp.h b/include/PR/rcp.h index 3795ff72..fc07e79a 100644 --- a/include/PR/rcp.h +++ b/include/PR/rcp.h @@ -68,7 +68,6 @@ The Indy development board use cartridge domain 1: **************************************************************************/ - /************************************************************************* * RDRAM Memory (Assumes that maximum size is 4 MB) */ @@ -735,7 +734,7 @@ The Indy development board use cartridge domain 1: * Bit 1: IO busy - set when IO is in progress * Bit 2: Error - set when CPU issues IO request while DMA is busy */ -#define PI_STATUS_ERROR 0x04 +#define PI_STATUS_ERROR 0x03 #define PI_STATUS_IO_BUSY 0x02 #define PI_STATUS_DMA_BUSY 0x01 diff --git a/include/controller.h b/include/controller.h index 8ce3e352..7b0f66be 100644 --- a/include/controller.h +++ b/include/controller.h @@ -100,6 +100,28 @@ typedef struct #define DIR_STATUS_UNKNOWN 1 #define DIR_STATUS_OCCUPIED 2 +extern s32 __osEepStatus(OSMesgQueue *, OSContStatus *); +u16 __osSumcalc(u8 *ptr, int length); +s32 __osIdCheckSum(u16 *ptr, u16 *csum, u16 *icsum); +s32 __osRepairPackId(OSPfs *pfs, __OSPackId *badid, __OSPackId *newid); +s32 __osCheckPackId(OSPfs *pfs, __OSPackId *temp); +s32 __osGetId(OSPfs *pfs); +s32 __osCheckId(OSPfs *pfs); +s32 __osPfsRWInode(OSPfs *pfs, __OSInode *inode, u8 flag, u8 bank); +s32 __osPfsSelectBank(OSPfs *pfs); +s32 __osPfsDeclearPage(OSPfs *pfs, __OSInode *inode, int file_size_in_pages, int *first_page, u8 bank, int *decleared, int *last_page); +s32 __osPfsReleasePages(OSPfs *pfs, __OSInode *inode, u8 start_page, u16 *sum, u8 bank, __OSInodeUnit *last_page, int flag); +s32 __osBlockSum(OSPfs *pfs, u8 page_no, u16 *sum, u8 bank); +s32 __osContRamRead(OSMesgQueue *mq, int channel, u16 address, u8 *buffer); +s32 __osContRamWrite(OSMesgQueue *mq, int channel, u16 address, u8 *buffer, int force); +void __osContGetInitData(u8 *pattern, OSContStatus *data); +void __osPackRequestData(u8 cmd); +void __osPfsRequestData(u8 cmd); +void __osPfsGetInitData(u8* pattern, OSContStatus* data); +u8 __osContAddressCrc(u16 addr); +u8 __osContDataCrc(u8 *data); +s32 __osPfsGetStatus(OSMesgQueue *queue, int channel); + extern u8 __osContLastCmd; extern OSTimer __osEepromTimer; extern OSMesg __osEepromTimerMsg; diff --git a/include/fast3d.h b/include/fast3d.h deleted file mode 100644 index 2eae9a40..00000000 --- a/include/fast3d.h +++ /dev/null @@ -1,20 +0,0 @@ -/* TODO: Replace this with a real gbi.h later */ - -#ifndef _FAST3D_H_ -#define _FAST3D_H_ - -#include "types.h" - -typedef struct Gfx { - u32 w0; - u32 w1; -} Gfx; - -#define fast3d_cmd(pkt, word0, word1) \ -{ \ - Gfx *_g = (Gfx*)(pkt); \ - _g->w0 = word0; \ - _g->w1 = word1; \ -} - -#endif diff --git a/include/hardware.h b/include/hardware.h deleted file mode 100644 index d8c886a5..00000000 --- a/include/hardware.h +++ /dev/null @@ -1,129 +0,0 @@ -#ifndef _HARDWARE_H_ -#define _HARDWARE_H_ -#include "libultra_internal.h" -//#include "types.h" - -#define HW_REG(reg, type) *(volatile type *)(u32*)(reg | 0xa0000000) - -#define AI_DRAM_ADDR_REG 0x04500000 -#define AI_LEN_REG 0x04500004 -#define AI_CONTROL_REG 0x04500008 -#define AI_STATUS_REG 0x0450000C -#define AI_STATUS_AI_FULL (1 << 31) -#define AI_STATUS_AI_BUSY (1 << 30) -#define AI_DACRATE_REG 0x04500010 -#define AI_BITRATE_REG 0x04500014 - -#define VI_STATUS_REG 0x04400000 -#define VI_CONTROL_REG 0x04400000 -#define VI_ORIGIN_REG 0x04400004 -#define VI_DRAM_ADDR_REG 0x04400004 -#define VI_WIDTH_REG 0x04400008 -#define VI_H_WIDTH_REG 0x04400008 -#define VI_INTR_REG 0x0440000C -#define VI_V_INTER_REG 0x0440000C -#define VI_CURRENT_REG 0x04400010 -#define VI_V_CURRENT_LINE_REG 0x04400010 -#define VI_BURST_REG 0x04400014 -#define VI_TIMING_REG 0x04400014 -#define VI_V_SYNC_REG 0x04400018 //VI vertical sync -#define VI_H_SYNC_REG 0x0440001C //VI horizontal sync -#define VI_LEAP_REG 0x04400020 //VI horizontal sync leap -#define VI_H_SYNC_LEAP_REG 0x04400020 -#define VI_H_START_REG 0x04400024 //VI horizontal video -#define VI_H_VIDEO_REG 0x04400024 -#define VI_V_START_REG 0x04400028 //VI vertical video -#define VI_V_VIDEO_REG 0x04400028 -#define VI_V_BURST_REG 0x0440002C //VI vertical burst -#define VI_X_SCALE_REG 0x04400030 //VI x-scale -#define VI_Y_SCALE_REG 0x04400034 //VI y-scale - -#define SP_IMEM_START 0x04001000 -#define SP_DMEM_START 0x04000000 - -#define SP_MEM_ADDR_REG 0x04040000 -#define SP_DRAM_ADDR_REG 0x04040004 -#define SP_RD_LEN_REG 0x04040008 -#define SP_WR_LEN_REG 0x0404000C -#define SP_STATUS_REG 0x04040010 -#define SP_PC_REG 0x04080000 - -#define PI_DRAM_ADDR_REG 0x04600000 //PI DRAM address -#define PI_CART_ADDR_REG 0x04600004 //PI pbus (cartridge) address -#define PI_RD_LEN_REG 0x04600008 //PI read length -#define PI_WR_LEN_REG 0x0460000C //PI write length -#define PI_STATUS_REG 0x04600010 //PI status -#define PI_BSD_DOM1_LAT_REG 0x04600014 //PI dom1 latency -#define PI_DOMAIN1_REG 0x04600014 -#define PI_BSD_DOM1_PWD_REG 0x04600018 //PI dom1 pulse width -#define PI_BSD_DOM1_PGS_REG 0x0460001C //PI dom1 page size -#define PI_BSD_DOM1_RLS_REG 0x04600020 //PI dom1 release -#define PI_BSD_DOM2_LAT_REG 0x04600024 //PI dom2 latency -#define PI_DOMAIN2_REG 0x04600024 -#define PI_BSD_DOM2_PWD_REG 0x04600028 //PI dom2 pulse width -#define PI_BSD_DOM2_PGS_REG 0x0460002C //PI dom2 page size -#define PI_BSD_DOM2_RLS_REG 0x04600030 //PI dom2 release - -#define PI_STATUS_BUSY 0x1 -#define PI_STATUS_IOBUSY 0x2 -#define PI_STATUS_ERROR 0x3 - -#define PI_STATUS_RESET_CONTROLLER 0x1 -#define PI_STATUS_CLEAR_INTR 0x2 - -#define SI_DRAM_ADDR_REG 0x04800000 -#define SI_PIF_ADDR_RD64B_REG 0x04800004 -#define SI_PIF_ADDR_WR64B_REG 0x04800010 -#define SI_STATUS_REG 0x04800018 - -#define SI_STATUS_DMA_BUSY 0x1 -#define SI_STATUS_IO_READ_BUSY 0x2 -#define SI_STATUS_DMA_ERROR 0x8 -#define SI_STATUS_INTERRUPT (1 << 12) - -#define MI_INIT_MODE_REG 0x04300000 -#define MI_MODE_REG MI_INIT_MODE_REG -#define MI_VERSION_REG 0x04300004 -#define MI_INTR_REG 0x04300008 -#define MI_INTR_MASK_REG 0x0430000C - -//https://github.com/LuigiBlood/64dd/wiki/Registers -#define ASIC_STATUS 0x05000508 - -#define DATA_REQUEST 0x40000000 -#define C2_TRANSFER 0x10000000 -#define BUFFER_MANAGER_ERROR 0x08000000 -#define BUFFER_MANAGER_INTERRUPT 0x04000000 -#define MECHANIC_INTERRUPT 0x02000000 -#define DISK_PRESENT 0x01000000 -#define BUSY_STATE 0x00800000 -#define RESET_STATE 0x00400000 -#define MOTOR_NOT_SPINNING 0x00100000 -#define HEAD_RETRACTED 0x00080000 -#define WRITE_PROTECT_ERROR 0x00040000 -#define MECHANIC_ERROR 0x00020000 -#define DISK_CHANGE 0x00010000 - -#define _64DD_PRESENT_MASK 0xFFFF - - -//ro -#define ASIC_BM_STATUS 0x05000510 - -#define MICRO_STATUS 0x02000000 -#define C1_DOUBLE 0x00400000 -#define C1_SINGLE 0x00200000 - -//wo -#define ASIC_BM_CTL 0x05000510 -#define BUFFER_MANAGER_RESET 0x10000000 -#define MECHANIC_INTERRUPT_RESET 0x01000000 -/*- Start Buffer Manager (0x80000000) -- Buffer Manager Mode (0x40000000) -- BM Interrupt Mask (0x20000000) -- Buffer Manager Reset (0x10000000) -- Disable OR Check? (0x08000000) -- Disable C1 Correction (0x04000000) -- Block Transfer (0x02000000) -- Mechanic Interrupt Reset (0x01000000)*/ -#endif diff --git a/include/libc/math.h b/include/libc/math.h new file mode 100644 index 00000000..8cea459b --- /dev/null +++ b/include/libc/math.h @@ -0,0 +1,13 @@ +#ifndef MATH_H +#define MATH_H + +#define M_PI 3.14159265358979323846 + +float sinf(float); +double sin(double); +float cosf(float); +double cos(double); + +float sqrtf(float); + +#endif diff --git a/include/libc/stdarg.h b/include/libc/stdarg.h new file mode 100644 index 00000000..aa7e3393 --- /dev/null +++ b/include/libc/stdarg.h @@ -0,0 +1,42 @@ +#ifndef STDARG_H +#define STDARG_H + +// When not building with IDO, use the builtin vaarg macros for portability. +#ifndef __sgi +#define va_list __builtin_va_list +#define va_start __builtin_va_start +#define va_arg __builtin_va_arg +#define va_end __builtin_va_end +#else + +typedef char *va_list; +#define _FP 1 +#define _INT 0 +#define _STRUCT 2 + +#define _VA_FP_SAVE_AREA 0x10 +#define _VA_ALIGN(p, a) (((unsigned int)(((char *)p) + ((a) > 4 ? (a) : 4) - 1)) & -((a) > 4 ? (a) : 4)) +#define va_start(vp, parmN) (vp = ((va_list)&parmN + sizeof(parmN))) + +#define __va_stack_arg(list, mode) \ + ( \ + ((list) = (char *)_VA_ALIGN(list, __builtin_alignof(mode)) + \ + _VA_ALIGN(sizeof(mode), 4)), \ + (((char *)list) - (_VA_ALIGN(sizeof(mode), 4) - sizeof(mode)))) + +#define __va_double_arg(list, mode) \ + ( \ + (((long)list & 0x1) /* 1 byte aligned? */ \ + ? (list = (char *)((long)list + 7), (char *)((long)list - 6 - _VA_FP_SAVE_AREA)) \ + : (((long)list & 0x2) /* 2 byte aligned? */ \ + ? (list = (char *)((long)list + 10), (char *)((long)list - 24 - _VA_FP_SAVE_AREA)) \ + : __va_stack_arg(list, mode)))) + +#define va_arg(list, mode) ((mode *)(((__builtin_classof(mode) == _FP && \ + __builtin_alignof(mode) == sizeof(double)) \ + ? __va_double_arg(list, mode) \ + : __va_stack_arg(list, mode))))[-1] +#define va_end(__list) + +#endif +#endif diff --git a/include/libc/stddef.h b/include/libc/stddef.h new file mode 100644 index 00000000..7e72a7bb --- /dev/null +++ b/include/libc/stddef.h @@ -0,0 +1,10 @@ +#ifndef STDDEF_H +#define STDDEF_H + +#include "PR/ultratypes.h" + +#ifndef offsetof +#define offsetof(st, m) ((size_t)&(((st *)0)->m)) +#endif + +#endif diff --git a/include/libc/stdio.h b/include/libc/stdio.h new file mode 100644 index 00000000..1cd4d0a3 --- /dev/null +++ b/include/libc/stdio.h @@ -0,0 +1,6 @@ +#ifndef STDIO_H +#define STDIO_H + +extern int sprintf(char *s, const char *fmt, ...); + +#endif diff --git a/include/libc/stdlib.h b/include/libc/stdlib.h new file mode 100644 index 00000000..c23b4542 --- /dev/null +++ b/include/libc/stdlib.h @@ -0,0 +1,19 @@ +#ifndef STDLIB_H +#define STDLIB_H + +typedef struct lldiv_t +{ + long long quot; + long long rem; +} lldiv_t; + +typedef struct ldiv_t +{ + long quot; + long rem; +} ldiv_t; + +lldiv_t lldiv(long long num, long long denom); +ldiv_t ldiv(long num, long denom); + +#endif diff --git a/include/libc/string.h b/include/libc/string.h new file mode 100644 index 00000000..183409eb --- /dev/null +++ b/include/libc/string.h @@ -0,0 +1,10 @@ +#ifndef STRING_H +#define STRING_H + +#include "PR/ultratypes.h" + +void *memcpy(void *dst, const void *src, size_t size); +size_t strlen(const char *str); +char *strchr(const char *str, s32 ch); + +#endif diff --git a/include/structs.h b/include/structs.h index 7b0c32c0..0656cd19 100644 --- a/include/structs.h +++ b/include/structs.h @@ -272,7 +272,7 @@ typedef struct LevelHeader { /* 0xB0 */ s16 unkB0; /* 0xB2 */ u8 unkB2; - /* 0xB3 */ u8 unkB3; + /* 0xB3 */ u8 voiceLimit; /* 0xB3 */ u8 unkB4; /* 0xB3 */ u8 unkB5; /* 0xB3 */ u8 unkB6; @@ -921,7 +921,7 @@ typedef struct unk80120AC0 { f32 unk28; f32 unk2C; f32 unk30; - s16 unk34; + s16 levelSegmentIndex; s16 pad36; s16 unk38; s8 pad3A; @@ -984,4 +984,55 @@ typedef struct unk80042178 { u8 pad0[0x20]; } unk80042178; +typedef struct unk8012A7E8_24 { + u8 unk00; + u8 unk01; + char *unk4; + s16 unk8; + s16 unkA; + s16 unkC; + s16 unkE; + u8 unk10; + u8 unk11; + u8 unk12; + u8 unk13; + u8 unk14; + u8 unk15; + u8 unk16; + u8 unk17; + u8 unk18; + u8 unk19; + struct unk8012A7E8_24 *unk1C; +} unk8012A7E8_24; + +/* Size: 0x28 bytes */ +typedef struct unk8012A7E8 { + s16 xpos; + s16 ypos; + s16 unk4; + s16 unk6; + s16 unk8; + s16 unkA; + s16 unkC; + s16 unkE; + u8 unk10; + u8 unk11; + u8 unk12; + u8 unk13; + u8 colorRed; + u8 colorGreen; + u8 colorBlue; + u8 colorAlpha; + u8 bgRed; + u8 bgGreen; + u8 bgBlue; + u8 bgAlpha; + u8 opacity; + u8 font; + u16 unk1E; + s16 unk20; + s16 unk22; + unk8012A7E8_24 *unk24; +} unk8012A7E8; + #endif diff --git a/lib/asm/exception/__osDispatchThread.s b/lib/asm/exception/__osDispatchThread.s index e66d875d..fe45b6bb 100644 --- a/lib/asm/exception/__osDispatchThread.s +++ b/lib/asm/exception/__osDispatchThread.s @@ -1,15 +1,15 @@ glabel __osDispatchThread -/* 0D4024 800D3424 3C04800E */ lui $a0, %hi(__RunQueue) # $a0, 0x800e +/* 0D4024 800D3424 3C04800E */ lui $a0, %hi(__osRunQueue) # $a0, 0x800e /* 0D4028 800D3428 0C034D05 */ jal __osPopThread -/* 0D402C 800D342C 24844888 */ addiu $a0, %lo(__RunQueue) # addiu $a0, $a0, 0x4888 +/* 0D402C 800D342C 24844888 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x4888 /* 0D4030 800D3430 3C01800E */ lui $at, %hi(__osRunningThread) # $at, 0x800e /* 0D4034 800D3434 AC224890 */ sw $v0, %lo(__osRunningThread)($at) /* 0D4038 800D3438 24080004 */ li $t0, 4 /* 0D403C 800D343C A4480010 */ sh $t0, 0x10($v0) /* 0D4040 800D3440 0040D025 */ move $k0, $v0 -/* 0D4044 800D3444 3C08800E */ lui $t0, %hi(D_800E38AC) # $t0, 0x800e +/* 0D4044 800D3444 3C08800E */ lui $t0, %hi(__OSGlobalIntMask) # $t0, 0x800e /* 0D4048 800D3448 8F5B0118 */ lw $k1, 0x118($k0) -/* 0D404C 800D344C 250838AC */ addiu $t0, %lo(D_800E38AC) # addiu $t0, $t0, 0x38ac +/* 0D404C 800D344C 250838AC */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x38ac /* 0D4050 800D3450 8D080000 */ lw $t0, ($t0) /* 0D4054 800D3454 3C01FFFF */ lui $at, (0xFFFF00FF >> 16) # lui $at, 0xffff /* 0D4058 800D3458 3369FF00 */ andi $t1, $k1, 0xff00 @@ -77,8 +77,8 @@ glabel __osDispatchThread /* 0D4150 800D3550 D75E01A8 */ ldc1 $f30, 0x1a8($k0) .L800D3554: /* 0D4154 800D3554 8F5B0128 */ lw $k1, 0x128($k0) -/* 0D4158 800D3558 3C1A800E */ lui $k0, %hi(D_800E38AC) # $k0, 0x800e -/* 0D415C 800D355C 275A38AC */ addiu $k0, %lo(D_800E38AC) # addiu $k0, $k0, 0x38ac +/* 0D4158 800D3558 3C1A800E */ lui $k0, %hi(__OSGlobalIntMask) # $k0, 0x800e +/* 0D415C 800D355C 275A38AC */ addiu $k0, %lo(__OSGlobalIntMask) # addiu $k0, $k0, 0x38ac /* 0D4160 800D3560 8F5A0000 */ lw $k0, ($k0) /* 0D4164 800D3564 001AD402 */ srl $k0, $k0, 0x10 /* 0D4168 800D3568 037AD824 */ and $k1, $k1, $k0 diff --git a/lib/asm/exception/__osEnqueueAndYield.s b/lib/asm/exception/__osEnqueueAndYield.s index c3d42941..38b921ee 100644 --- a/lib/asm/exception/__osEnqueueAndYield.s +++ b/lib/asm/exception/__osEnqueueAndYield.s @@ -32,8 +32,8 @@ glabel __osEnqueueAndYield /* 0D3F40 800D3340 3369FF00 */ andi $t1, $k1, 0xff00 /* 0D3F44 800D3344 1120000D */ beqz $t1, .L800D337C /* 0D3F48 800D3348 00000000 */ nop -/* 0D3F4C 800D334C 3C08800E */ lui $t0, %hi(D_800E38AC) # $t0, 0x800e -/* 0D3F50 800D3350 250838AC */ addiu $t0, %lo(D_800E38AC) # addiu $t0, $t0, 0x38ac +/* 0D3F4C 800D334C 3C08800E */ lui $t0, %hi(__OSGlobalIntMask) # $t0, 0x800e +/* 0D3F50 800D3350 250838AC */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x38ac /* 0D3F54 800D3354 8D080000 */ lw $t0, ($t0) /* 0D3F58 800D3358 2401FFFF */ li $at, -1 /* 0D3F5C 800D335C 01014026 */ xor $t0, $t0, $at @@ -49,8 +49,8 @@ glabel __osEnqueueAndYield /* 0D3F80 800D3380 8F7B000C */ lw $k1, %lo(D_A430000C)($k1) /* 0D3F84 800D3384 1360000B */ beqz $k1, .L800D33B4 /* 0D3F88 800D3388 00000000 */ nop -/* 0D3F8C 800D338C 3C1A800E */ lui $k0, %hi(D_800E38AC) # $k0, 0x800e -/* 0D3F90 800D3390 275A38AC */ addiu $k0, %lo(D_800E38AC) # addiu $k0, $k0, 0x38ac +/* 0D3F8C 800D338C 3C1A800E */ lui $k0, %hi(__OSGlobalIntMask) # $k0, 0x800e +/* 0D3F90 800D3390 275A38AC */ addiu $k0, %lo(__OSGlobalIntMask) # addiu $k0, $k0, 0x38ac /* 0D3F94 800D3394 8F5A0000 */ lw $k0, ($k0) /* 0D3F98 800D3398 8CA80128 */ lw $t0, 0x128($a1) /* 0D3F9C 800D339C 2401FFFF */ li $at, -1 diff --git a/lib/asm/exception/__osException.s b/lib/asm/exception/__osException.s index 205dc3aa..12038ec8 100644 --- a/lib/asm/exception/__osException.s +++ b/lib/asm/exception/__osException.s @@ -82,8 +82,8 @@ glabel __osException /* 0D399C 800D2D9C FF5F0100 */ sd $ra, 0x100($k0) /* 0D39A0 800D2DA0 1120000D */ beqz $t1, .L800D2DD8 /* 0D39A4 800D2DA4 FF480110 */ sd $t0, 0x110($k0) -/* 0D39A8 800D2DA8 3C08800E */ lui $t0, %hi(D_800E38AC) # $t0, 0x800e -/* 0D39AC 800D2DAC 250838AC */ addiu $t0, %lo(D_800E38AC) # addiu $t0, $t0, 0x38ac +/* 0D39A8 800D2DA8 3C08800E */ lui $t0, %hi(__OSGlobalIntMask) # $t0, 0x800e +/* 0D39AC 800D2DAC 250838AC */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x38ac /* 0D39B0 800D2DB0 8D080000 */ lw $t0, ($t0) /* 0D39B4 800D2DB4 2401FFFF */ li $at, -1 /* 0D39B8 800D2DB8 01014026 */ xor $t0, $t0, $at @@ -99,8 +99,8 @@ glabel __osException /* 0D39DC 800D2DDC 8D29000C */ lw $t1, %lo(D_A430000C)($t1) /* 0D39E0 800D2DE0 1120000B */ beqz $t1, .L800D2E10 /* 0D39E4 800D2DE4 00000000 */ nop -/* 0D39E8 800D2DE8 3C08800E */ lui $t0, %hi(D_800E38AC) # $t0, 0x800e -/* 0D39EC 800D2DEC 250838AC */ addiu $t0, %lo(D_800E38AC) # addiu $t0, $t0, 0x38ac +/* 0D39E8 800D2DE8 3C08800E */ lui $t0, %hi(__OSGlobalIntMask) # $t0, 0x800e +/* 0D39EC 800D2DEC 250838AC */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x38ac /* 0D39F0 800D2DF0 8D080000 */ lw $t0, ($t0) /* 0D39F4 800D2DF4 8F4C0128 */ lw $t4, 0x128($k0) /* 0D39F8 800D2DF8 2401FFFF */ li $at, -1 @@ -208,8 +208,8 @@ glabel __osException /* 0D3B6C 800D2F6C 1000FFD0 */ b .L800D2EB0 /* 0D3B70 800D2F70 00000000 */ nop .L800D2F74: -/* 0D3B74 800D2F74 3C08800E */ lui $t0, %hi(D_800E38AC) # $t0, 0x800e -/* 0D3B78 800D2F78 250838AC */ addiu $t0, %lo(D_800E38AC) # addiu $t0, $t0, 0x38ac +/* 0D3B74 800D2F74 3C08800E */ lui $t0, %hi(__OSGlobalIntMask) # $t0, 0x800e +/* 0D3B78 800D2F78 250838AC */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x38ac /* 0D3B7C 800D2F7C 8D080000 */ lw $t0, ($t0) /* 0D3B80 800D2F80 3C11A430 */ lui $s1, %hi(D_A4300008) # $s1, 0xa430 /* 0D3B84 800D2F84 8E310008 */ lw $s1, %lo(D_A4300008)($s1) @@ -298,10 +298,10 @@ glabel __osException .L800D30B4: /* 0D3CB4 800D30B4 8F5B0118 */ lw $k1, 0x118($k0) /* 0D3CB8 800D30B8 2401EFFF */ li $at, -4097 -/* 0D3CBC 800D30BC 3C09800E */ lui $t1, %hi(D_800E38A8) # $t1, 0x800e +/* 0D3CBC 800D30BC 3C09800E */ lui $t1, %hi(__osShutdown) # $t1, 0x800e /* 0D3CC0 800D30C0 0361D824 */ and $k1, $k1, $at /* 0D3CC4 800D30C4 AF5B0118 */ sw $k1, 0x118($k0) -/* 0D3CC8 800D30C8 252938A8 */ addiu $t1, %lo(D_800E38A8) # addiu $t1, $t1, 0x38a8 +/* 0D3CC8 800D30C8 252938A8 */ addiu $t1, %lo(__osShutdown) # addiu $t1, $t1, 0x38a8 /* 0D3CCC 800D30CC 8D2A0000 */ lw $t2, ($t1) /* 0D3CD0 800D30D0 11400003 */ beqz $t2, .L800D30E0 /* 0D3CD4 800D30D4 2401EFFF */ li $at, -4097 @@ -312,8 +312,8 @@ glabel __osException /* 0D3CE4 800D30E4 AD2A0000 */ sw $t2, ($t1) /* 0D3CE8 800D30E8 0C034C79 */ jal send_mesg /* 0D3CEC 800D30EC 24040070 */ li $a0, 112 -/* 0D3CF0 800D30F0 3C0A800E */ lui $t2, %hi(__RunQueue) # $t2, 0x800e -/* 0D3CF4 800D30F4 8D4A4888 */ lw $t2, %lo(__RunQueue)($t2) +/* 0D3CF0 800D30F0 3C0A800E */ lui $t2, %hi(__osRunQueue) # $t2, 0x800e +/* 0D3CF4 800D30F4 8D4A4888 */ lw $t2, %lo(__osRunQueue)($t2) /* 0D3CF8 800D30F8 2401EFFF */ li $at, -4097 /* 0D3CFC 800D30FC 02018024 */ and $s0, $s0, $at /* 0D3D00 800D3100 8D5B0118 */ lw $k1, 0x118($t2) @@ -346,23 +346,23 @@ glabel __osException /* 0D3D60 800D3160 10000001 */ b .L800D3168 /* 0D3D64 800D3164 00000000 */ nop .L800D3168: -/* 0D3D68 800D3168 3C0A800E */ lui $t2, %hi(__RunQueue) # $t2, 0x800e -/* 0D3D6C 800D316C 8D4A4888 */ lw $t2, %lo(__RunQueue)($t2) +/* 0D3D68 800D3168 3C0A800E */ lui $t2, %hi(__osRunQueue) # $t2, 0x800e +/* 0D3D6C 800D316C 8D4A4888 */ lw $t2, %lo(__osRunQueue)($t2) /* 0D3D70 800D3170 8F490004 */ lw $t1, 4($k0) /* 0D3D74 800D3174 8D4B0004 */ lw $t3, 4($t2) /* 0D3D78 800D3178 012B082A */ slt $at, $t1, $t3 /* 0D3D7C 800D317C 10200007 */ beqz $at, .L800D319C /* 0D3D80 800D3180 00000000 */ nop -/* 0D3D84 800D3184 3C04800E */ lui $a0, %hi(__RunQueue) # $a0, 0x800e +/* 0D3D84 800D3184 3C04800E */ lui $a0, %hi(__osRunQueue) # $a0, 0x800e /* 0D3D88 800D3188 03402825 */ move $a1, $k0 /* 0D3D8C 800D318C 0C034CF3 */ jal __osEnqueueThread -/* 0D3D90 800D3190 24844888 */ addiu $a0, %lo(__RunQueue) # addiu $a0, $a0, 0x4888 +/* 0D3D90 800D3190 24844888 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x4888 /* 0D3D94 800D3194 08034D09 */ j __osDispatchThread /* 0D3D98 800D3198 00000000 */ nop .L800D319C: -/* 0D3D9C 800D319C 3C09800E */ lui $t1, %hi(__RunQueue) # $t1, 0x800e -/* 0D3DA0 800D31A0 25294888 */ addiu $t1, %lo(__RunQueue) # addiu $t1, $t1, 0x4888 +/* 0D3D9C 800D319C 3C09800E */ lui $t1, %hi(__osRunQueue) # $t1, 0x800e +/* 0D3DA0 800D31A0 25294888 */ addiu $t1, %lo(__osRunQueue) # addiu $t1, $t1, 0x4888 /* 0D3DA4 800D31A4 8D2A0000 */ lw $t2, ($t1) /* 0D3DA8 800D31A8 AF4A0000 */ sw $t2, ($k0) /* 0D3DAC 800D31AC 08034D09 */ j __osDispatchThread diff --git a/lib/asm/exception/send_mesg.s b/lib/asm/exception/send_mesg.s index 24f4904f..b2ce7a64 100644 --- a/lib/asm/exception/send_mesg.s +++ b/lib/asm/exception/send_mesg.s @@ -40,10 +40,10 @@ glabel send_mesg /* 0D3E74 800D3274 0C034D05 */ jal __osPopThread /* 0D3E78 800D3278 01202025 */ move $a0, $t1 /* 0D3E7C 800D327C 00405025 */ move $t2, $v0 -/* 0D3E80 800D3280 3C04800E */ lui $a0, %hi(__RunQueue) # $a0, 0x800e +/* 0D3E80 800D3280 3C04800E */ lui $a0, %hi(__osRunQueue) # $a0, 0x800e /* 0D3E84 800D3284 01402825 */ move $a1, $t2 /* 0D3E88 800D3288 0C034CF3 */ jal __osEnqueueThread -/* 0D3E8C 800D328C 24844888 */ addiu $a0, %lo(__RunQueue) # addiu $a0, $a0, 0x4888 +/* 0D3E8C 800D328C 24844888 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x4888 .L800D3290: /* 0D3E90 800D3290 02400008 */ jr $s2 /* 0D3E94 800D3294 00000000 */ nop diff --git a/lib/asm/non_matchings/osEepromRead_0CEE80/osEepromRead.s b/lib/asm/non_matchings/osEepromRead_0CEE80/osEepromRead.s deleted file mode 100644 index 70db13bb..00000000 --- a/lib/asm/non_matchings/osEepromRead_0CEE80/osEepromRead.s +++ /dev/null @@ -1,136 +0,0 @@ -glabel osEepromRead -/* 0CEE80 800CE280 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0CEE84 800CE284 AFA5003C */ sw $a1, 0x3c($sp) -/* 0CEE88 800CE288 93AF003F */ lbu $t7, 0x3f($sp) -/* 0CEE8C 800CE28C 3C0E8013 */ lui $t6, %hi(__osEepPifRam) # $t6, 0x8013 -/* 0CEE90 800CE290 25CECE40 */ addiu $t6, %lo(__osEepPifRam) # addiu $t6, $t6, -0x31c0 -/* 0CEE94 800CE294 29E10041 */ slti $at, $t7, 0x41 -/* 0CEE98 800CE298 AFBF0014 */ sw $ra, 0x14($sp) -/* 0CEE9C 800CE29C AFA40038 */ sw $a0, 0x38($sp) -/* 0CEEA0 800CE2A0 AFA60040 */ sw $a2, 0x40($sp) -/* 0CEEA4 800CE2A4 AFA00034 */ sw $zero, 0x34($sp) -/* 0CEEA8 800CE2A8 AFA00030 */ sw $zero, 0x30($sp) -/* 0CEEAC 800CE2AC 14200003 */ bnez $at, .L800CE2BC -/* 0CEEB0 800CE2B0 AFAE002C */ sw $t6, 0x2c($sp) -/* 0CEEB4 800CE2B4 1000006A */ b .L800CE460 -/* 0CEEB8 800CE2B8 2402FFFF */ li $v0, -1 -.L800CE2BC: -/* 0CEEBC 800CE2BC 0C033594 */ jal __osSiGetAccess -/* 0CEEC0 800CE2C0 00000000 */ nop -/* 0CEEC4 800CE2C4 8FA40038 */ lw $a0, 0x38($sp) -/* 0CEEC8 800CE2C8 0C033A0F */ jal __osEepStatus -/* 0CEECC 800CE2CC 27A50028 */ addiu $a1, $sp, 0x28 -/* 0CEED0 800CE2D0 AFA20034 */ sw $v0, 0x34($sp) -/* 0CEED4 800CE2D4 8FB80034 */ lw $t8, 0x34($sp) -/* 0CEED8 800CE2D8 17000005 */ bnez $t8, .L800CE2F0 -/* 0CEEDC 800CE2DC 00000000 */ nop -/* 0CEEE0 800CE2E0 97B90028 */ lhu $t9, 0x28($sp) -/* 0CEEE4 800CE2E4 34018000 */ li $at, 32768 -/* 0CEEE8 800CE2E8 13210003 */ beq $t9, $at, .L800CE2F8 -/* 0CEEEC 800CE2EC 00000000 */ nop -.L800CE2F0: -/* 0CEEF0 800CE2F0 1000005B */ b .L800CE460 -/* 0CEEF4 800CE2F4 24020008 */ li $v0, 8 -.L800CE2F8: -/* 0CEEF8 800CE2F8 93A8002A */ lbu $t0, 0x2a($sp) -/* 0CEEFC 800CE2FC 31090080 */ andi $t1, $t0, 0x80 -/* 0CEF00 800CE300 11200008 */ beqz $t1, .L800CE324 -/* 0CEF04 800CE304 00000000 */ nop -.L800CE308: -/* 0CEF08 800CE308 8FA40038 */ lw $a0, 0x38($sp) -/* 0CEF0C 800CE30C 0C033A0F */ jal __osEepStatus -/* 0CEF10 800CE310 27A50028 */ addiu $a1, $sp, 0x28 -/* 0CEF14 800CE314 93AA002A */ lbu $t2, 0x2a($sp) -/* 0CEF18 800CE318 314B0080 */ andi $t3, $t2, 0x80 -/* 0CEF1C 800CE31C 1560FFFA */ bnez $t3, .L800CE308 -/* 0CEF20 800CE320 00000000 */ nop -.L800CE324: -/* 0CEF24 800CE324 0C03391C */ jal __osPackEepReadData -/* 0CEF28 800CE328 93A4003F */ lbu $a0, 0x3f($sp) -/* 0CEF2C 800CE32C 3C058013 */ lui $a1, %hi(__osEepPifRam) # $a1, 0x8013 -/* 0CEF30 800CE330 24A5CE40 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, -0x31c0 -/* 0CEF34 800CE334 0C0335B0 */ jal __osSiRawStartDma -/* 0CEF38 800CE338 24040001 */ li $a0, 1 -/* 0CEF3C 800CE33C AFA20034 */ sw $v0, 0x34($sp) -/* 0CEF40 800CE340 8FA40038 */ lw $a0, 0x38($sp) -/* 0CEF44 800CE344 00002825 */ move $a1, $zero -/* 0CEF48 800CE348 0C0322EC */ jal osRecvMesg -/* 0CEF4C 800CE34C 24060001 */ li $a2, 1 -/* 0CEF50 800CE350 AFA00030 */ sw $zero, 0x30($sp) -.L800CE354: -/* 0CEF54 800CE354 8FAD0030 */ lw $t5, 0x30($sp) -/* 0CEF58 800CE358 8FAF0030 */ lw $t7, 0x30($sp) -/* 0CEF5C 800CE35C 3C018013 */ lui $at, %hi(__osEepPifRam) # $at, 0x8013 -/* 0CEF60 800CE360 000D7080 */ sll $t6, $t5, 2 -/* 0CEF64 800CE364 002E0821 */ addu $at, $at, $t6 -/* 0CEF68 800CE368 240C00FF */ li $t4, 255 -/* 0CEF6C 800CE36C AC2CCE40 */ sw $t4, %lo(__osEepPifRam)($at) -/* 0CEF70 800CE370 25F80001 */ addiu $t8, $t7, 1 -/* 0CEF74 800CE374 2B010010 */ slti $at, $t8, 0x10 -/* 0CEF78 800CE378 1420FFF6 */ bnez $at, .L800CE354 -/* 0CEF7C 800CE37C AFB80030 */ sw $t8, 0x30($sp) -/* 0CEF80 800CE380 3C018013 */ lui $at, %hi(D_8012CE7C) # $at, 0x8013 -/* 0CEF84 800CE384 3C058013 */ lui $a1, %hi(__osEepPifRam) # $a1, 0x8013 -/* 0CEF88 800CE388 AC20CE7C */ sw $zero, %lo(D_8012CE7C)($at) -/* 0CEF8C 800CE38C 24A5CE40 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, -0x31c0 -/* 0CEF90 800CE390 0C0335B0 */ jal __osSiRawStartDma -/* 0CEF94 800CE394 00002025 */ move $a0, $zero -/* 0CEF98 800CE398 24190004 */ li $t9, 4 -/* 0CEF9C 800CE39C 3C018013 */ lui $at, %hi(__osContLastCmd) # $at, 0x8013 -/* 0CEFA0 800CE3A0 AFA20034 */ sw $v0, 0x34($sp) -/* 0CEFA4 800CE3A4 A039CD90 */ sb $t9, %lo(__osContLastCmd)($at) -/* 0CEFA8 800CE3A8 8FA40038 */ lw $a0, 0x38($sp) -/* 0CEFAC 800CE3AC 00002825 */ move $a1, $zero -/* 0CEFB0 800CE3B0 0C0322EC */ jal osRecvMesg -/* 0CEFB4 800CE3B4 24060001 */ li $a2, 1 -/* 0CEFB8 800CE3B8 AFA00030 */ sw $zero, 0x30($sp) -.L800CE3BC: -/* 0CEFBC 800CE3BC 8FAA0030 */ lw $t2, 0x30($sp) -/* 0CEFC0 800CE3C0 8FA8002C */ lw $t0, 0x2c($sp) -/* 0CEFC4 800CE3C4 254B0001 */ addiu $t3, $t2, 1 -/* 0CEFC8 800CE3C8 29610004 */ slti $at, $t3, 4 -/* 0CEFCC 800CE3CC 25090001 */ addiu $t1, $t0, 1 -/* 0CEFD0 800CE3D0 AFAB0030 */ sw $t3, 0x30($sp) -/* 0CEFD4 800CE3D4 1420FFF9 */ bnez $at, .L800CE3BC -/* 0CEFD8 800CE3D8 AFA9002C */ sw $t1, 0x2c($sp) -/* 0CEFDC 800CE3DC 8FAC002C */ lw $t4, 0x2c($sp) -/* 0CEFE0 800CE3E0 27AD001C */ addiu $t5, $sp, 0x1c -/* 0CEFE4 800CE3E4 89810000 */ lwl $at, ($t4) -/* 0CEFE8 800CE3E8 99810003 */ lwr $at, 3($t4) -/* 0CEFEC 800CE3EC ADA10000 */ sw $at, ($t5) -/* 0CEFF0 800CE3F0 898F0004 */ lwl $t7, 4($t4) -/* 0CEFF4 800CE3F4 998F0007 */ lwr $t7, 7($t4) -/* 0CEFF8 800CE3F8 ADAF0004 */ sw $t7, 4($t5) -/* 0CEFFC 800CE3FC 89810008 */ lwl $at, 8($t4) -/* 0CF000 800CE400 9981000B */ lwr $at, 0xb($t4) -/* 0CF004 800CE404 ADA10008 */ sw $at, 8($t5) -/* 0CF008 800CE408 93B8001D */ lbu $t8, 0x1d($sp) -/* 0CF00C 800CE40C 331900C0 */ andi $t9, $t8, 0xc0 -/* 0CF010 800CE410 00194103 */ sra $t0, $t9, 4 -/* 0CF014 800CE414 1500000F */ bnez $t0, .L800CE454 -/* 0CF018 800CE418 AFA80034 */ sw $t0, 0x34($sp) -/* 0CF01C 800CE41C AFA00030 */ sw $zero, 0x30($sp) -.L800CE420: -/* 0CF020 800CE420 8FA90030 */ lw $t1, 0x30($sp) -/* 0CF024 800CE424 8FAB0040 */ lw $t3, 0x40($sp) -/* 0CF028 800CE428 03A95021 */ addu $t2, $sp, $t1 -/* 0CF02C 800CE42C 914A0020 */ lbu $t2, 0x20($t2) -/* 0CF030 800CE430 A16A0000 */ sb $t2, ($t3) -/* 0CF034 800CE434 8FAC0030 */ lw $t4, 0x30($sp) -/* 0CF038 800CE438 8FAE0040 */ lw $t6, 0x40($sp) -/* 0CF03C 800CE43C 258F0001 */ addiu $t7, $t4, 1 -/* 0CF040 800CE440 29E10008 */ slti $at, $t7, 8 -/* 0CF044 800CE444 25CD0001 */ addiu $t5, $t6, 1 -/* 0CF048 800CE448 AFAF0030 */ sw $t7, 0x30($sp) -/* 0CF04C 800CE44C 1420FFF4 */ bnez $at, .L800CE420 -/* 0CF050 800CE450 AFAD0040 */ sw $t5, 0x40($sp) -.L800CE454: -/* 0CF054 800CE454 0C0335A5 */ jal __osSiRelAccess -/* 0CF058 800CE458 00000000 */ nop -/* 0CF05C 800CE45C 8FA20034 */ lw $v0, 0x34($sp) -.L800CE460: -/* 0CF060 800CE460 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CF064 800CE464 27BD0038 */ addiu $sp, $sp, 0x38 -/* 0CF068 800CE468 03E00008 */ jr $ra -/* 0CF06C 800CE46C 00000000 */ nop - diff --git a/lib/asm/non_matchings/osEepromWrite/__osEepStatus.s b/lib/asm/non_matchings/osEepromWrite/__osEepStatus.s deleted file mode 100644 index 83c4fe72..00000000 --- a/lib/asm/non_matchings/osEepromWrite/__osEepStatus.s +++ /dev/null @@ -1,145 +0,0 @@ -glabel __osEepStatus -/* 0CF43C 800CE83C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0CF440 800CE840 3C0E8013 */ lui $t6, %hi(__osEepPifRam) # $t6, 0x8013 -/* 0CF444 800CE844 25CECE40 */ addiu $t6, %lo(__osEepPifRam) # addiu $t6, $t6, -0x31c0 -/* 0CF448 800CE848 AFBF0014 */ sw $ra, 0x14($sp) -/* 0CF44C 800CE84C AFA40030 */ sw $a0, 0x30($sp) -/* 0CF450 800CE850 AFA50034 */ sw $a1, 0x34($sp) -/* 0CF454 800CE854 AFA0002C */ sw $zero, 0x2c($sp) -/* 0CF458 800CE858 AFAE0024 */ sw $t6, 0x24($sp) -/* 0CF45C 800CE85C AFA00028 */ sw $zero, 0x28($sp) -.L800CE860: -/* 0CF460 800CE860 8FAF0028 */ lw $t7, 0x28($sp) -/* 0CF464 800CE864 8FB90028 */ lw $t9, 0x28($sp) -/* 0CF468 800CE868 3C018013 */ lui $at, %hi(__osEepPifRam) # $at, 0x8013 -/* 0CF46C 800CE86C 000FC080 */ sll $t8, $t7, 2 -/* 0CF470 800CE870 00380821 */ addu $at, $at, $t8 -/* 0CF474 800CE874 AC20CE40 */ sw $zero, %lo(__osEepPifRam)($at) -/* 0CF478 800CE878 27280001 */ addiu $t0, $t9, 1 -/* 0CF47C 800CE87C 29010010 */ slti $at, $t0, 0x10 -/* 0CF480 800CE880 1420FFF7 */ bnez $at, .L800CE860 -/* 0CF484 800CE884 AFA80028 */ sw $t0, 0x28($sp) -/* 0CF488 800CE888 3C0A8013 */ lui $t2, %hi(__osEepPifRam) # $t2, 0x8013 -/* 0CF48C 800CE88C 24090001 */ li $t1, 1 -/* 0CF490 800CE890 3C018013 */ lui $at, %hi(D_8012CE7C) # $at, 0x8013 -/* 0CF494 800CE894 254ACE40 */ addiu $t2, %lo(__osEepPifRam) # addiu $t2, $t2, -0x31c0 -/* 0CF498 800CE898 AC29CE7C */ sw $t1, %lo(D_8012CE7C)($at) -/* 0CF49C 800CE89C AFAA0024 */ sw $t2, 0x24($sp) -/* 0CF4A0 800CE8A0 AFA00028 */ sw $zero, 0x28($sp) -.L800CE8A4: -/* 0CF4A4 800CE8A4 8FAB0024 */ lw $t3, 0x24($sp) -/* 0CF4A8 800CE8A8 A1600000 */ sb $zero, ($t3) -/* 0CF4AC 800CE8AC 8FAE0028 */ lw $t6, 0x28($sp) -/* 0CF4B0 800CE8B0 8FAC0024 */ lw $t4, 0x24($sp) -/* 0CF4B4 800CE8B4 25CF0001 */ addiu $t7, $t6, 1 -/* 0CF4B8 800CE8B8 29E10004 */ slti $at, $t7, 4 -/* 0CF4BC 800CE8BC 258D0001 */ addiu $t5, $t4, 1 -/* 0CF4C0 800CE8C0 AFAF0028 */ sw $t7, 0x28($sp) -/* 0CF4C4 800CE8C4 1420FFF7 */ bnez $at, .L800CE8A4 -/* 0CF4C8 800CE8C8 AFAD0024 */ sw $t5, 0x24($sp) -/* 0CF4CC 800CE8CC 241800FF */ li $t8, 255 -/* 0CF4D0 800CE8D0 24190001 */ li $t9, 1 -/* 0CF4D4 800CE8D4 24080003 */ li $t0, 3 -/* 0CF4D8 800CE8D8 240900FF */ li $t1, 255 -/* 0CF4DC 800CE8DC 240A00FF */ li $t2, 255 -/* 0CF4E0 800CE8E0 240B00FF */ li $t3, 255 -/* 0CF4E4 800CE8E4 240C00FF */ li $t4, 255 -/* 0CF4E8 800CE8E8 A3B8001C */ sb $t8, 0x1c($sp) -/* 0CF4EC 800CE8EC A3B9001D */ sb $t9, 0x1d($sp) -/* 0CF4F0 800CE8F0 A3A8001E */ sb $t0, 0x1e($sp) -/* 0CF4F4 800CE8F4 A3A0001F */ sb $zero, 0x1f($sp) -/* 0CF4F8 800CE8F8 A3A90020 */ sb $t1, 0x20($sp) -/* 0CF4FC 800CE8FC A3AA0021 */ sb $t2, 0x21($sp) -/* 0CF500 800CE900 A3AB0022 */ sb $t3, 0x22($sp) -/* 0CF504 800CE904 A3AC0023 */ sb $t4, 0x23($sp) -/* 0CF508 800CE908 27AE001C */ addiu $t6, $sp, 0x1c -/* 0CF50C 800CE90C 8DC10000 */ lw $at, ($t6) -/* 0CF510 800CE910 8FAD0024 */ lw $t5, 0x24($sp) -/* 0CF514 800CE914 240A00FE */ li $t2, 254 -/* 0CF518 800CE918 3C058013 */ lui $a1, %hi(__osEepPifRam) # $a1, 0x8013 -/* 0CF51C 800CE91C A9A10000 */ swl $at, ($t5) -/* 0CF520 800CE920 B9A10003 */ swr $at, 3($t5) -/* 0CF524 800CE924 8DD90004 */ lw $t9, 4($t6) -/* 0CF528 800CE928 24A5CE40 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, -0x31c0 -/* 0CF52C 800CE92C 24040001 */ li $a0, 1 -/* 0CF530 800CE930 A9B90004 */ swl $t9, 4($t5) -/* 0CF534 800CE934 B9B90007 */ swr $t9, 7($t5) -/* 0CF538 800CE938 8FA80024 */ lw $t0, 0x24($sp) -/* 0CF53C 800CE93C 25090008 */ addiu $t1, $t0, 8 -/* 0CF540 800CE940 AFA90024 */ sw $t1, 0x24($sp) -/* 0CF544 800CE944 0C0335B0 */ jal __osSiRawStartDma -/* 0CF548 800CE948 A12A0000 */ sb $t2, ($t1) -/* 0CF54C 800CE94C AFA2002C */ sw $v0, 0x2c($sp) -/* 0CF550 800CE950 8FA40030 */ lw $a0, 0x30($sp) -/* 0CF554 800CE954 00002825 */ move $a1, $zero -/* 0CF558 800CE958 0C0322EC */ jal osRecvMesg -/* 0CF55C 800CE95C 24060001 */ li $a2, 1 -/* 0CF560 800CE960 240B0005 */ li $t3, 5 -/* 0CF564 800CE964 3C018013 */ lui $at, %hi(__osContLastCmd) # $at, 0x8013 -/* 0CF568 800CE968 3C058013 */ lui $a1, %hi(__osEepPifRam) # $a1, 0x8013 -/* 0CF56C 800CE96C A02BCD90 */ sb $t3, %lo(__osContLastCmd)($at) -/* 0CF570 800CE970 24A5CE40 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, -0x31c0 -/* 0CF574 800CE974 0C0335B0 */ jal __osSiRawStartDma -/* 0CF578 800CE978 00002025 */ move $a0, $zero -/* 0CF57C 800CE97C AFA2002C */ sw $v0, 0x2c($sp) -/* 0CF580 800CE980 8FA40030 */ lw $a0, 0x30($sp) -/* 0CF584 800CE984 00002825 */ move $a1, $zero -/* 0CF588 800CE988 0C0322EC */ jal osRecvMesg -/* 0CF58C 800CE98C 24060001 */ li $a2, 1 -/* 0CF590 800CE990 8FAC002C */ lw $t4, 0x2c($sp) -/* 0CF594 800CE994 11800003 */ beqz $t4, .L800CE9A4 -/* 0CF598 800CE998 00000000 */ nop -/* 0CF59C 800CE99C 1000002C */ b .L800CEA50 -/* 0CF5A0 800CE9A0 01801025 */ move $v0, $t4 -.L800CE9A4: -/* 0CF5A4 800CE9A4 3C188013 */ lui $t8, %hi(__osEepPifRam) # $t8, 0x8013 -/* 0CF5A8 800CE9A8 2718CE40 */ addiu $t8, %lo(__osEepPifRam) # addiu $t8, $t8, -0x31c0 -/* 0CF5AC 800CE9AC AFB80024 */ sw $t8, 0x24($sp) -/* 0CF5B0 800CE9B0 AFA00028 */ sw $zero, 0x28($sp) -.L800CE9B4: -/* 0CF5B4 800CE9B4 8FAF0024 */ lw $t7, 0x24($sp) -/* 0CF5B8 800CE9B8 A1E00000 */ sb $zero, ($t7) -/* 0CF5BC 800CE9BC 8FB90028 */ lw $t9, 0x28($sp) -/* 0CF5C0 800CE9C0 8FAD0024 */ lw $t5, 0x24($sp) -/* 0CF5C4 800CE9C4 27280001 */ addiu $t0, $t9, 1 -/* 0CF5C8 800CE9C8 29010004 */ slti $at, $t0, 4 -/* 0CF5CC 800CE9CC 25AE0001 */ addiu $t6, $t5, 1 -/* 0CF5D0 800CE9D0 AFA80028 */ sw $t0, 0x28($sp) -/* 0CF5D4 800CE9D4 1420FFF7 */ bnez $at, .L800CE9B4 -/* 0CF5D8 800CE9D8 AFAE0024 */ sw $t6, 0x24($sp) -/* 0CF5DC 800CE9DC 8FA90024 */ lw $t1, 0x24($sp) -/* 0CF5E0 800CE9E0 27AA001C */ addiu $t2, $sp, 0x1c -/* 0CF5E4 800CE9E4 89210000 */ lwl $at, ($t1) -/* 0CF5E8 800CE9E8 99210003 */ lwr $at, 3($t1) -/* 0CF5EC 800CE9EC AD410000 */ sw $at, ($t2) -/* 0CF5F0 800CE9F0 892C0004 */ lwl $t4, 4($t1) -/* 0CF5F4 800CE9F4 992C0007 */ lwr $t4, 7($t1) -/* 0CF5F8 800CE9F8 AD4C0004 */ sw $t4, 4($t2) -/* 0CF5FC 800CE9FC 93B8001E */ lbu $t8, 0x1e($sp) -/* 0CF600 800CEA00 8FAE0034 */ lw $t6, 0x34($sp) -/* 0CF604 800CEA04 330F00C0 */ andi $t7, $t8, 0xc0 -/* 0CF608 800CEA08 000F6903 */ sra $t5, $t7, 4 -/* 0CF60C 800CEA0C A1CD0003 */ sb $t5, 3($t6) -/* 0CF610 800CEA10 93B90021 */ lbu $t9, 0x21($sp) -/* 0CF614 800CEA14 93AB0020 */ lbu $t3, 0x20($sp) -/* 0CF618 800CEA18 8FA90034 */ lw $t1, 0x34($sp) -/* 0CF61C 800CEA1C 00194200 */ sll $t0, $t9, 8 -/* 0CF620 800CEA20 010B5025 */ or $t2, $t0, $t3 -/* 0CF624 800CEA24 A52A0000 */ sh $t2, ($t1) -/* 0CF628 800CEA28 8FB80034 */ lw $t8, 0x34($sp) -/* 0CF62C 800CEA2C 93AC0022 */ lbu $t4, 0x22($sp) -/* 0CF630 800CEA30 A30C0002 */ sb $t4, 2($t8) -/* 0CF634 800CEA34 8FAF0034 */ lw $t7, 0x34($sp) -/* 0CF638 800CEA38 91ED0003 */ lbu $t5, 3($t7) -/* 0CF63C 800CEA3C 11A00003 */ beqz $t5, .L800CEA4C -/* 0CF640 800CEA40 00000000 */ nop -/* 0CF644 800CEA44 10000002 */ b .L800CEA50 -/* 0CF648 800CEA48 01A01025 */ move $v0, $t5 -.L800CEA4C: -/* 0CF64C 800CEA4C 00001025 */ move $v0, $zero -.L800CEA50: -/* 0CF650 800CEA50 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CF654 800CEA54 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0CF658 800CEA58 03E00008 */ jr $ra -/* 0CF65C 800CEA5C 00000000 */ nop - diff --git a/lib/asm/non_matchings/osViMgr_0D2590/viMgrMain.s b/lib/asm/non_matchings/osViMgr_0D2590/viMgrMain.s index 9f605f94..477d87aa 100644 --- a/lib/asm/non_matchings/osViMgr_0D2590/viMgrMain.s +++ b/lib/asm/non_matchings/osViMgr_0D2590/viMgrMain.s @@ -13,20 +13,20 @@ glabel viMgrMain /* 0D2734 800D1B34 0C035820 */ jal __osViGetCurrentContext /* 0D2738 800D1B38 AFA00044 */ sw $zero, 0x44($sp) /* 0D273C 800D1B3C 94430002 */ lhu $v1, 2($v0) -/* 0D2740 800D1B40 3C018013 */ lui $at, %hi(D_8012D190) # $at, 0x8013 +/* 0D2740 800D1B40 3C018013 */ lui $at, %hi(retrace) # $at, 0x8013 /* 0D2744 800D1B44 2416000E */ li $s6, 14 /* 0D2748 800D1B48 14600004 */ bnez $v1, .L800D1B5C -/* 0D274C 800D1B4C A423D190 */ sh $v1, %lo(D_8012D190)($at) +/* 0D274C 800D1B4C A423D190 */ sh $v1, %lo(retrace)($at) /* 0D2750 800D1B50 24030001 */ li $v1, 1 -/* 0D2754 800D1B54 3C018013 */ lui $at, %hi(D_8012D190) # $at, 0x8013 -/* 0D2758 800D1B58 A423D190 */ sh $v1, %lo(D_8012D190)($at) +/* 0D2754 800D1B54 3C018013 */ lui $at, %hi(retrace) # $at, 0x8013 +/* 0D2758 800D1B58 A423D190 */ sh $v1, %lo(retrace)($at) .L800D1B5C: -/* 0D275C 800D1B5C 3C138013 */ lui $s3, %hi(D_8012D22C) # $s3, 0x8013 +/* 0D275C 800D1B5C 3C138013 */ lui $s3, %hi(__osViIntrCount) # $s3, 0x8013 /* 0D2760 800D1B60 3C128013 */ lui $s2, %hi(__osBaseCounter) # $s2, 0x8013 /* 0D2764 800D1B64 3C118013 */ lui $s1, %hi(__osCurrentTime) # $s1, 0x8013 /* 0D2768 800D1B68 2631D220 */ addiu $s1, %lo(__osCurrentTime) # addiu $s1, $s1, -0x2de0 /* 0D276C 800D1B6C 2652D228 */ addiu $s2, %lo(__osBaseCounter) # addiu $s2, $s2, -0x2dd8 -/* 0D2770 800D1B70 2673D22C */ addiu $s3, %lo(D_8012D22C) # addiu $s3, $s3, -0x2dd4 +/* 0D2770 800D1B70 2673D22C */ addiu $s3, %lo(__osViIntrCount) # addiu $s3, $s3, -0x2dd4 /* 0D2774 800D1B74 2415000D */ li $s5, 13 /* 0D2778 800D1B78 27B40044 */ addiu $s4, $sp, 0x44 .L800D1B7C: @@ -46,13 +46,13 @@ glabel viMgrMain .L800D1BAC: /* 0D27AC 800D1BAC 0C035824 */ jal __osViSwapContext /* 0D27B0 800D1BB0 00000000 */ nop -/* 0D27B4 800D1BB4 3C038013 */ lui $v1, %hi(D_8012D190) # $v1, 0x8013 -/* 0D27B8 800D1BB8 9463D190 */ lhu $v1, %lo(D_8012D190)($v1) -/* 0D27BC 800D1BBC 3C018013 */ lui $at, %hi(D_8012D190) # $at, 0x8013 +/* 0D27B4 800D1BB4 3C038013 */ lui $v1, %hi(retrace) # $v1, 0x8013 +/* 0D27B8 800D1BB8 9463D190 */ lhu $v1, %lo(retrace)($v1) +/* 0D27BC 800D1BBC 3C018013 */ lui $at, %hi(retrace) # $at, 0x8013 /* 0D27C0 800D1BC0 2463FFFF */ addiu $v1, $v1, -1 /* 0D27C4 800D1BC4 306FFFFF */ andi $t7, $v1, 0xffff /* 0D27C8 800D1BC8 15E0000E */ bnez $t7, .L800D1C04 -/* 0D27CC 800D1BCC A42FD190 */ sh $t7, %lo(D_8012D190)($at) +/* 0D27CC 800D1BCC A42FD190 */ sh $t7, %lo(retrace)($at) /* 0D27D0 800D1BD0 0C035820 */ jal __osViGetCurrentContext /* 0D27D4 800D1BD4 00000000 */ nop /* 0D27D8 800D1BD8 8C580010 */ lw $t8, 0x10($v0) @@ -65,8 +65,8 @@ glabel viMgrMain /* 0D27F4 800D1BF4 8C450014 */ lw $a1, 0x14($v0) /* 0D27F8 800D1BF8 96030002 */ lhu $v1, 2($s0) .L800D1BFC: -/* 0D27FC 800D1BFC 3C018013 */ lui $at, %hi(D_8012D190) # $at, 0x8013 -/* 0D2800 800D1C00 A423D190 */ sh $v1, %lo(D_8012D190)($at) +/* 0D27FC 800D1BFC 3C018013 */ lui $at, %hi(retrace) # $at, 0x8013 +/* 0D2800 800D1C00 A423D190 */ sh $v1, %lo(retrace)($at) .L800D1C04: /* 0D2804 800D1C04 8E790000 */ lw $t9, ($s3) /* 0D2808 800D1C08 8E500000 */ lw $s0, ($s2) diff --git a/lib/asm/non_matchings/osViSetEventMsg_0D2980/osViSetEventMsg.s b/lib/asm/non_matchings/osViSetEventMsg_0D2980/osViSetEventMsg.s deleted file mode 100644 index 61a67310..00000000 --- a/lib/asm/non_matchings/osViSetEventMsg_0D2980/osViSetEventMsg.s +++ /dev/null @@ -1,31 +0,0 @@ -glabel osViSetEventMsg -/* 0D2980 800D1D80 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0D2984 800D1D84 AFBF001C */ sw $ra, 0x1c($sp) -/* 0D2988 800D1D88 AFA40028 */ sw $a0, 0x28($sp) -/* 0D298C 800D1D8C AFA5002C */ sw $a1, 0x2c($sp) -/* 0D2990 800D1D90 AFA60030 */ sw $a2, 0x30($sp) -/* 0D2994 800D1D94 0C034958 */ jal __osDisableInt -/* 0D2998 800D1D98 AFB00018 */ sw $s0, 0x18($sp) -/* 0D299C 800D1D9C 3C0F800E */ lui $t7, %hi(__osViNext) # $t7, 0x800e -/* 0D29A0 800D1DA0 8DEF4874 */ lw $t7, %lo(__osViNext)($t7) -/* 0D29A4 800D1DA4 8FAE0028 */ lw $t6, 0x28($sp) -/* 0D29A8 800D1DA8 3C19800E */ lui $t9, %hi(__osViNext) # $t9, 0x800e -/* 0D29AC 800D1DAC 3C09800E */ lui $t1, %hi(__osViNext) # $t1, 0x800e -/* 0D29B0 800D1DB0 ADEE0010 */ sw $t6, 0x10($t7) -/* 0D29B4 800D1DB4 8F394874 */ lw $t9, %lo(__osViNext)($t9) -/* 0D29B8 800D1DB8 8FB8002C */ lw $t8, 0x2c($sp) -/* 0D29BC 800D1DBC 00408025 */ move $s0, $v0 -/* 0D29C0 800D1DC0 02002025 */ move $a0, $s0 -/* 0D29C4 800D1DC4 AF380014 */ sw $t8, 0x14($t9) -/* 0D29C8 800D1DC8 8D294874 */ lw $t1, %lo(__osViNext)($t1) -/* 0D29CC 800D1DCC 8FA80030 */ lw $t0, 0x30($sp) -/* 0D29D0 800D1DD0 0C034960 */ jal __osRestoreInt -/* 0D29D4 800D1DD4 A5280002 */ sh $t0, 2($t1) -/* 0D29D8 800D1DD8 8FBF001C */ lw $ra, 0x1c($sp) -/* 0D29DC 800D1DDC 8FB00018 */ lw $s0, 0x18($sp) -/* 0D29E0 800D1DE0 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0D29E4 800D1DE4 03E00008 */ jr $ra -/* 0D29E8 800D1DE8 00000000 */ nop - -/* 0D29EC 800D1DEC 00000000 */ nop - diff --git a/lib/asm/non_matchings/sched/func_80079818.s b/lib/asm/non_matchings/sched/func_80079818.s index 6762e0ac..2be643fd 100644 --- a/lib/asm/non_matchings/sched/func_80079818.s +++ b/lib/asm/non_matchings/sched/func_80079818.s @@ -71,7 +71,7 @@ glabel func_80079818 /* 07A518 80079918 AC20E758 */ sw $zero, %lo(D_800DE758)($at) /* 07A51C 8007991C 0C033490 */ jal __osSpSetStatus /* 07A520 80079920 3484AA82 */ ori $a0, (0x00AAAA82 & 0xFFFF) # ori $a0, $a0, 0xaa82 -/* 07A524 80079924 0C033494 */ jal func_800CD250 +/* 07A524 80079924 0C033494 */ jal osDpSetStatus /* 07A528 80079928 240401D6 */ li $a0, 470 /* 07A52C 8007992C 10000005 */ b .L80079944 /* 07A530 80079930 00000000 */ nop diff --git a/lib/asm/non_matchings/unknown_072930/func_80071F80.s b/lib/asm/non_matchings/unknown_072930/_MakeMotorData.s similarity index 99% rename from lib/asm/non_matchings/unknown_072930/func_80071F80.s rename to lib/asm/non_matchings/unknown_072930/_MakeMotorData.s index 82926740..defffa72 100644 --- a/lib/asm/non_matchings/unknown_072930/func_80071F80.s +++ b/lib/asm/non_matchings/unknown_072930/_MakeMotorData.s @@ -1,4 +1,4 @@ -glabel func_80071F80 +glabel _MakeMotorData /* 072B80 80071F80 27BDFFA8 */ addiu $sp, $sp, -0x58 /* 072B84 80071F84 AFB00018 */ sw $s0, 0x18($sp) /* 072B88 80071F88 00808025 */ move $s0, $a0 diff --git a/lib/asm/non_matchings/unknown_072930/func_800720DC.s b/lib/asm/non_matchings/unknown_072930/osMotorInit.s similarity index 97% rename from lib/asm/non_matchings/unknown_072930/func_800720DC.s rename to lib/asm/non_matchings/unknown_072930/osMotorInit.s index cf2b876c..0508ae1a 100644 --- a/lib/asm/non_matchings/unknown_072930/func_800720DC.s +++ b/lib/asm/non_matchings/unknown_072930/osMotorInit.s @@ -1,4 +1,4 @@ -glabel func_800720DC +glabel osMotorInit /* 072CDC 800720DC 27BDFFA8 */ addiu $sp, $sp, -0x58 /* 072CE0 800720E0 AFB00020 */ sw $s0, 0x20($sp) /* 072CE4 800720E4 AFBF0024 */ sw $ra, 0x24($sp) @@ -79,7 +79,7 @@ glabel func_800720DC /* 072DF8 800721F8 AFA2002C */ sw $v0, 0x2c($sp) /* 072DFC 800721FC 24C63FF0 */ addiu $a2, %lo(D_80123FF0) # addiu $a2, $a2, 0x3ff0 /* 072E00 80072200 02002025 */ move $a0, $s0 -/* 072E04 80072204 0C01C7E0 */ jal func_80071F80 +/* 072E04 80072204 0C01C7E0 */ jal _MakeMotorData /* 072E08 80072208 24050600 */ li $a1, 1536 /* 072E0C 8007220C 8FA2002C */ lw $v0, 0x2c($sp) /* 072E10 80072210 3C188012 */ lui $t8, %hi(D_80123DD0) # $t8, 0x8012 @@ -88,7 +88,7 @@ glabel func_800720DC /* 072E1C 8007221C 24C63FD0 */ addiu $a2, %lo(D_80123FD0) # addiu $a2, $a2, 0x3fd0 /* 072E20 80072220 02002025 */ move $a0, $s0 /* 072E24 80072224 24050600 */ li $a1, 1536 -/* 072E28 80072228 0C01C7E0 */ jal func_80071F80 +/* 072E28 80072228 0C01C7E0 */ jal _MakeMotorData /* 072E2C 8007222C 00583821 */ addu $a3, $v0, $t8 /* 072E30 80072230 00001025 */ move $v0, $zero .L80072234: diff --git a/lib/asm/non_matchings/unknown_072930/func_80071E58.s b/lib/asm/non_matchings/unknown_072930/osMotorStart.s similarity index 99% rename from lib/asm/non_matchings/unknown_072930/func_80071E58.s rename to lib/asm/non_matchings/unknown_072930/osMotorStart.s index 5eeb6cfc..165e2e22 100644 --- a/lib/asm/non_matchings/unknown_072930/func_80071E58.s +++ b/lib/asm/non_matchings/unknown_072930/osMotorStart.s @@ -1,4 +1,4 @@ -glabel func_80071E58 +glabel osMotorStart /* 072A58 80071E58 27BDFFB0 */ addiu $sp, $sp, -0x50 /* 072A5C 80071E5C AFBF0014 */ sw $ra, 0x14($sp) /* 072A60 80071E60 0C033594 */ jal __osSiGetAccess diff --git a/lib/asm/non_matchings/unknown_072930/func_80071D30.s b/lib/asm/non_matchings/unknown_072930/osMotorStop.s similarity index 99% rename from lib/asm/non_matchings/unknown_072930/func_80071D30.s rename to lib/asm/non_matchings/unknown_072930/osMotorStop.s index b39521db..30c01635 100644 --- a/lib/asm/non_matchings/unknown_072930/func_80071D30.s +++ b/lib/asm/non_matchings/unknown_072930/osMotorStop.s @@ -1,4 +1,4 @@ -glabel func_80071D30 +glabel osMotorStop /* 072930 80071D30 27BDFFB0 */ addiu $sp, $sp, -0x50 /* 072934 80071D34 AFBF0014 */ sw $ra, 0x14($sp) /* 072938 80071D38 0C033594 */ jal __osSiGetAccess diff --git a/lib/asm/non_matchings/unknown_0C84E0/alCSPSetChlPan.s b/lib/asm/non_matchings/unknown_0C84E0/alCSPSetChlPan.s deleted file mode 100644 index d7d592c3..00000000 --- a/lib/asm/non_matchings/unknown_0C84E0/alCSPSetChlPan.s +++ /dev/null @@ -1,27 +0,0 @@ -glabel alCSPSetChlPan -/* 0C84E0 800C78E0 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0C84E4 800C78E4 00A03825 */ move $a3, $a1 -/* 0C84E8 800C78E8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C84EC 800C78EC AFA5002C */ sw $a1, 0x2c($sp) -/* 0C84F0 800C78F0 AFA60030 */ sw $a2, 0x30($sp) -/* 0C84F4 800C78F4 00C04025 */ move $t0, $a2 -/* 0C84F8 800C78F8 240E0002 */ li $t6, 2 -/* 0C84FC 800C78FC 34EF00B0 */ ori $t7, $a3, 0xb0 -/* 0C8500 800C7900 2418000A */ li $t8, 10 -/* 0C8504 800C7904 A7AE0018 */ sh $t6, 0x18($sp) -/* 0C8508 800C7908 AFA0001C */ sw $zero, 0x1c($sp) -/* 0C850C 800C790C A3AF0020 */ sb $t7, 0x20($sp) -/* 0C8510 800C7910 A3B80021 */ sb $t8, 0x21($sp) -/* 0C8514 800C7914 A3A80022 */ sb $t0, 0x22($sp) -/* 0C8518 800C7918 00003025 */ move $a2, $zero -/* 0C851C 800C791C 27A50018 */ addiu $a1, $sp, 0x18 -/* 0C8520 800C7920 0C03246B */ jal alEvtqPostEvent -/* 0C8524 800C7924 24840048 */ addiu $a0, $a0, 0x48 -/* 0C8528 800C7928 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C852C 800C792C 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0C8530 800C7930 03E00008 */ jr $ra -/* 0C8534 800C7934 00000000 */ nop - -/* 0C8538 800C7938 00000000 */ nop -/* 0C853C 800C793C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C85E0/alCSPSetTempo.s b/lib/asm/non_matchings/unknown_0C85E0/alCSPSetTempo.s deleted file mode 100644 index da3eca0a..00000000 --- a/lib/asm/non_matchings/unknown_0C85E0/alCSPSetTempo.s +++ /dev/null @@ -1,31 +0,0 @@ -glabel alCSPSetTempo -/* 0C85E0 800C79E0 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0C85E4 800C79E4 3C0100FF */ lui $at, 0xff -/* 0C85E8 800C79E8 00A1C824 */ and $t9, $a1, $at -/* 0C85EC 800C79EC 30AAFF00 */ andi $t2, $a1, 0xff00 -/* 0C85F0 800C79F0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C85F4 800C79F4 240E0007 */ li $t6, 7 -/* 0C85F8 800C79F8 240F00FF */ li $t7, 255 -/* 0C85FC 800C79FC 24180051 */ li $t8, 81 -/* 0C8600 800C7A00 00194C03 */ sra $t1, $t9, 0x10 -/* 0C8604 800C7A04 000A5A03 */ sra $t3, $t2, 8 -/* 0C8608 800C7A08 00A06025 */ move $t4, $a1 -/* 0C860C 800C7A0C A7AE0018 */ sh $t6, 0x18($sp) -/* 0C8610 800C7A10 A3AF0020 */ sb $t7, 0x20($sp) -/* 0C8614 800C7A14 A3B80021 */ sb $t8, 0x21($sp) -/* 0C8618 800C7A18 A3A90023 */ sb $t1, 0x23($sp) -/* 0C861C 800C7A1C A3AB0024 */ sb $t3, 0x24($sp) -/* 0C8620 800C7A20 A3AC0025 */ sb $t4, 0x25($sp) -/* 0C8624 800C7A24 27A50018 */ addiu $a1, $sp, 0x18 -/* 0C8628 800C7A28 24840048 */ addiu $a0, $a0, 0x48 -/* 0C862C 800C7A2C 0C03246B */ jal alEvtqPostEvent -/* 0C8630 800C7A30 00003025 */ move $a2, $zero -/* 0C8634 800C7A34 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C8638 800C7A38 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0C863C 800C7A3C 03E00008 */ jr $ra -/* 0C8640 800C7A40 00000000 */ nop - -/* 0C8644 800C7A44 00000000 */ nop -/* 0C8648 800C7A48 00000000 */ nop -/* 0C864C 800C7A4C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C91A0/osAiSetFrequency.s b/lib/asm/non_matchings/unknown_0C91A0/osAiSetFrequency.s deleted file mode 100644 index 1f05f6a4..00000000 --- a/lib/asm/non_matchings/unknown_0C91A0/osAiSetFrequency.s +++ /dev/null @@ -1,98 +0,0 @@ -glabel osAiSetFrequency -/* 0C9200 800C8600 3C0E800E */ lui $t6, %hi(osViClock) # $t6, 0x800e -/* 0C9204 800C8604 8DCE4878 */ lw $t6, %lo(osViClock)($t6) -/* 0C9208 800C8608 44844000 */ mtc1 $a0, $f8 -/* 0C920C 800C860C 27BDFFF0 */ addiu $sp, $sp, -0x10 -/* 0C9210 800C8610 448E2000 */ mtc1 $t6, $f4 -/* 0C9214 800C8614 468042A0 */ cvt.s.w $f10, $f8 -/* 0C9218 800C8618 04810005 */ bgez $a0, .L800C8630 -/* 0C921C 800C861C 468021A0 */ cvt.s.w $f6, $f4 -/* 0C9220 800C8620 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0C9224 800C8624 44818000 */ mtc1 $at, $f16 -/* 0C9228 800C8628 00000000 */ nop -/* 0C922C 800C862C 46105280 */ add.s $f10, $f10, $f16 -.L800C8630: -/* 0C9230 800C8630 460A3483 */ div.s $f18, $f6, $f10 -/* 0C9234 800C8634 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0C9238 800C8638 44812000 */ mtc1 $at, $f4 -/* 0C923C 800C863C 24050001 */ li $a1, 1 -/* 0C9240 800C8640 46049300 */ add.s $f12, $f18, $f4 -/* 0C9244 800C8644 444FF800 */ cfc1 $t7, $31 -/* 0C9248 800C8648 44C5F800 */ ctc1 $a1, $31 -/* 0C924C 800C864C 00000000 */ nop -/* 0C9250 800C8650 46006224 */ cvt.w.s $f8, $f12 -/* 0C9254 800C8654 4445F800 */ cfc1 $a1, $31 -/* 0C9258 800C8658 00000000 */ nop -/* 0C925C 800C865C 30A10004 */ andi $at, $a1, 4 -/* 0C9260 800C8660 30A50078 */ andi $a1, $a1, 0x78 -/* 0C9264 800C8664 10A00013 */ beqz $a1, .L800C86B4 -/* 0C9268 800C8668 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0C926C 800C866C 44814000 */ mtc1 $at, $f8 -/* 0C9270 800C8670 24050001 */ li $a1, 1 -/* 0C9274 800C8674 46086201 */ sub.s $f8, $f12, $f8 -/* 0C9278 800C8678 44C5F800 */ ctc1 $a1, $31 -/* 0C927C 800C867C 00000000 */ nop -/* 0C9280 800C8680 46004224 */ cvt.w.s $f8, $f8 -/* 0C9284 800C8684 4445F800 */ cfc1 $a1, $31 -/* 0C9288 800C8688 00000000 */ nop -/* 0C928C 800C868C 30A10004 */ andi $at, $a1, 4 -/* 0C9290 800C8690 30A50078 */ andi $a1, $a1, 0x78 -/* 0C9294 800C8694 14A00005 */ bnez $a1, .L800C86AC -/* 0C9298 800C8698 00000000 */ nop -/* 0C929C 800C869C 44054000 */ mfc1 $a1, $f8 -/* 0C92A0 800C86A0 3C018000 */ lui $at, 0x8000 -/* 0C92A4 800C86A4 10000007 */ b .L800C86C4 -/* 0C92A8 800C86A8 00A12825 */ or $a1, $a1, $at -.L800C86AC: -/* 0C92AC 800C86AC 10000005 */ b .L800C86C4 -/* 0C92B0 800C86B0 2405FFFF */ li $a1, -1 -.L800C86B4: -/* 0C92B4 800C86B4 44054000 */ mfc1 $a1, $f8 -/* 0C92B8 800C86B8 00000000 */ nop -/* 0C92BC 800C86BC 04A0FFFB */ bltz $a1, .L800C86AC -/* 0C92C0 800C86C0 00000000 */ nop -.L800C86C4: -/* 0C92C4 800C86C4 44CFF800 */ ctc1 $t7, $31 -/* 0C92C8 800C86C8 2CA10084 */ sltiu $at, $a1, 0x84 -/* 0C92CC 800C86CC 10200003 */ beqz $at, .L800C86DC -/* 0C92D0 800C86D0 00000000 */ nop -/* 0C92D4 800C86D4 10000020 */ b .L800C8758 -/* 0C92D8 800C86D8 2402FFFF */ li $v0, -1 -.L800C86DC: -/* 0C92DC 800C86DC 24010042 */ li $at, 66 -/* 0C92E0 800C86E0 00A1001B */ divu $zero, $a1, $at -/* 0C92E4 800C86E4 00003012 */ mflo $a2 -/* 0C92E8 800C86E8 30D800FF */ andi $t8, $a2, 0xff -/* 0C92EC 800C86EC 03003025 */ move $a2, $t8 -/* 0C92F0 800C86F0 28C10011 */ slti $at, $a2, 0x11 -/* 0C92F4 800C86F4 14200002 */ bnez $at, .L800C8700 -/* 0C92F8 800C86F8 00000000 */ nop -/* 0C92FC 800C86FC 24060010 */ li $a2, 16 -.L800C8700: -/* 0C9300 800C8700 24B9FFFF */ addiu $t9, $a1, -1 -/* 0C9304 800C8704 3C08A450 */ lui $t0, %hi(D_A4500010) # $t0, 0xa450 -/* 0C9308 800C8708 AD190010 */ sw $t9, %lo(D_A4500010)($t0) -/* 0C930C 800C870C 24C9FFFF */ addiu $t1, $a2, -1 -/* 0C9310 800C8710 3C0AA450 */ lui $t2, %hi(D_A4500014) # $t2, 0xa450 -/* 0C9314 800C8714 AD490014 */ sw $t1, %lo(D_A4500014)($t2) -/* 0C9318 800C8718 240B0001 */ li $t3, 1 -/* 0C931C 800C871C 3C0CA450 */ lui $t4, %hi(D_A4500008) # $t4, 0xa450 -/* 0C9320 800C8720 AD8B0008 */ sw $t3, %lo(D_A4500008)($t4) -/* 0C9324 800C8724 3C0D800E */ lui $t5, %hi(osViClock) # $t5, 0x800e -/* 0C9328 800C8728 8DAD4878 */ lw $t5, %lo(osViClock)($t5) -/* 0C932C 800C872C 01A5001A */ div $zero, $t5, $a1 -/* 0C9330 800C8730 00001012 */ mflo $v0 -/* 0C9334 800C8734 14A00002 */ bnez $a1, .L800C8740 -/* 0C9338 800C8738 00000000 */ nop -/* 0C933C 800C873C 0007000D */ break 7 -.L800C8740: -/* 0C9340 800C8740 2401FFFF */ li $at, -1 -/* 0C9344 800C8744 14A10004 */ bne $a1, $at, .L800C8758 -/* 0C9348 800C8748 3C018000 */ lui $at, 0x8000 -/* 0C934C 800C874C 15A10002 */ bne $t5, $at, .L800C8758 -/* 0C9350 800C8750 00000000 */ nop -/* 0C9354 800C8754 0006000D */ break 6 -.L800C8758: -/* 0C9358 800C8758 03E00008 */ jr $ra -/* 0C935C 800C875C 27BD0010 */ addiu $sp, $sp, 0x10 - diff --git a/lib/asm/non_matchings/unknown_0C98F0/osVirtualToPhysical.s b/lib/asm/non_matchings/unknown_0C98F0/osVirtualToPhysical.s deleted file mode 100644 index 621b912a..00000000 --- a/lib/asm/non_matchings/unknown_0C98F0/osVirtualToPhysical.s +++ /dev/null @@ -1,38 +0,0 @@ -glabel osVirtualToPhysical -/* 0C98F0 800C8CF0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0C98F4 800C8CF4 AFA40018 */ sw $a0, 0x18($sp) -/* 0C98F8 800C8CF8 8FAE0018 */ lw $t6, 0x18($sp) -/* 0C98FC 800C8CFC 3C018000 */ lui $at, 0x8000 -/* 0C9900 800C8D00 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C9904 800C8D04 01C1082B */ sltu $at, $t6, $at -/* 0C9908 800C8D08 14200007 */ bnez $at, .L800C8D28 -/* 0C990C 800C8D0C 3C01A000 */ lui $at, 0xa000 -/* 0C9910 800C8D10 01C1082B */ sltu $at, $t6, $at -/* 0C9914 800C8D14 10200004 */ beqz $at, .L800C8D28 -/* 0C9918 800C8D18 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff -/* 0C991C 800C8D1C 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 0C9920 800C8D20 1000000E */ b .L800C8D5C -/* 0C9924 800C8D24 01C11024 */ and $v0, $t6, $at -.L800C8D28: -/* 0C9928 800C8D28 8FAF0018 */ lw $t7, 0x18($sp) -/* 0C992C 800C8D2C 3C01A000 */ lui $at, 0xa000 -/* 0C9930 800C8D30 01E1082B */ sltu $at, $t7, $at -/* 0C9934 800C8D34 14200007 */ bnez $at, .L800C8D54 -/* 0C9938 800C8D38 3C01C000 */ lui $at, 0xc000 -/* 0C993C 800C8D3C 01E1082B */ sltu $at, $t7, $at -/* 0C9940 800C8D40 10200004 */ beqz $at, .L800C8D54 -/* 0C9944 800C8D44 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff -/* 0C9948 800C8D48 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 0C994C 800C8D4C 10000003 */ b .L800C8D5C -/* 0C9950 800C8D50 01E11024 */ and $v0, $t7, $at -.L800C8D54: -/* 0C9954 800C8D54 0C034D6C */ jal __osProbeTLB -/* 0C9958 800C8D58 8FA40018 */ lw $a0, 0x18($sp) -.L800C8D5C: -/* 0C995C 800C8D5C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C9960 800C8D60 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0C9964 800C8D64 03E00008 */ jr $ra -/* 0C9968 800C8D68 00000000 */ nop - -/* 0C996C 800C8D6C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C9970/osAiSetNextBuffer.s b/lib/asm/non_matchings/unknown_0C9970/osAiSetNextBuffer.s deleted file mode 100644 index 0b80d732..00000000 --- a/lib/asm/non_matchings/unknown_0C9970/osAiSetNextBuffer.s +++ /dev/null @@ -1,52 +0,0 @@ -glabel osAiSetNextBuffer -/* 0C9970 800C8D70 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0C9974 800C8D74 3C0F800E */ lui $t7, %hi(D_800E3790) # $t7, 0x800e -/* 0C9978 800C8D78 91EF3790 */ lbu $t7, %lo(D_800E3790)($t7) -/* 0C997C 800C8D7C AFA40020 */ sw $a0, 0x20($sp) -/* 0C9980 800C8D80 8FAE0020 */ lw $t6, 0x20($sp) -/* 0C9984 800C8D84 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C9988 800C8D88 AFA50024 */ sw $a1, 0x24($sp) -/* 0C998C 800C8D8C 11E00003 */ beqz $t7, .L800C8D9C -/* 0C9990 800C8D90 AFAE001C */ sw $t6, 0x1c($sp) -/* 0C9994 800C8D94 25D8E000 */ addiu $t8, $t6, -0x2000 -/* 0C9998 800C8D98 AFB8001C */ sw $t8, 0x1c($sp) -.L800C8D9C: -/* 0C999C 800C8D9C 8FB90020 */ lw $t9, 0x20($sp) -/* 0C99A0 800C8DA0 8FA80024 */ lw $t0, 0x24($sp) -/* 0C99A4 800C8DA4 24012000 */ li $at, 8192 -/* 0C99A8 800C8DA8 03284821 */ addu $t1, $t9, $t0 -/* 0C99AC 800C8DAC 312A3FFF */ andi $t2, $t1, 0x3fff -/* 0C99B0 800C8DB0 15410005 */ bne $t2, $at, .L800C8DC8 -/* 0C99B4 800C8DB4 00000000 */ nop -/* 0C99B8 800C8DB8 240B0001 */ li $t3, 1 -/* 0C99BC 800C8DBC 3C01800E */ lui $at, %hi(D_800E3790) # $at, 0x800e -/* 0C99C0 800C8DC0 10000003 */ b .L800C8DD0 -/* 0C99C4 800C8DC4 A02B3790 */ sb $t3, %lo(D_800E3790)($at) -.L800C8DC8: -/* 0C99C8 800C8DC8 3C01800E */ lui $at, %hi(D_800E3790) # $at, 0x800e -/* 0C99CC 800C8DCC A0203790 */ sb $zero, %lo(D_800E3790)($at) -.L800C8DD0: -/* 0C99D0 800C8DD0 0C034D9C */ jal __osAiDeviceBusy -/* 0C99D4 800C8DD4 00000000 */ nop -/* 0C99D8 800C8DD8 10400003 */ beqz $v0, .L800C8DE8 -/* 0C99DC 800C8DDC 00000000 */ nop -/* 0C99E0 800C8DE0 10000009 */ b .L800C8E08 -/* 0C99E4 800C8DE4 2402FFFF */ li $v0, -1 -.L800C8DE8: -/* 0C99E8 800C8DE8 0C03233C */ jal osVirtualToPhysical -/* 0C99EC 800C8DEC 8FA4001C */ lw $a0, 0x1c($sp) -/* 0C99F0 800C8DF0 3C0CA450 */ lui $t4, 0xa450 -/* 0C99F4 800C8DF4 AD820000 */ sw $v0, ($t4) -/* 0C99F8 800C8DF8 8FAD0024 */ lw $t5, 0x24($sp) -/* 0C99FC 800C8DFC 3C0FA450 */ lui $t7, %hi(D_A4500004) # $t7, 0xa450 -/* 0C9A00 800C8E00 00001025 */ move $v0, $zero -/* 0C9A04 800C8E04 ADED0004 */ sw $t5, %lo(D_A4500004)($t7) -.L800C8E08: -/* 0C9A08 800C8E08 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C9A0C 800C8E0C 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0C9A10 800C8E10 03E00008 */ jr $ra -/* 0C9A14 800C8E14 00000000 */ nop - -/* 0C9A18 800C8E18 00000000 */ nop -/* 0C9A1C 800C8E1C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C9A20/func_800C8E20.s b/lib/asm/non_matchings/unknown_0C9A20/func_800C8E20.s index 56289001..b399ec13 100644 --- a/lib/asm/non_matchings/unknown_0C9A20/func_800C8E20.s +++ b/lib/asm/non_matchings/unknown_0C9A20/func_800C8E20.s @@ -1,4 +1,4 @@ -glabel func_800C8E20 +glabel osAiGetLength /* 0C9A20 800C8E20 3C0EA450 */ lui $t6, 0xa450 /* 0C9A24 800C8E24 03E00008 */ jr $ra /* 0C9A28 800C8E28 8DC20004 */ lw $v0, 4($t6) diff --git a/lib/asm/non_matchings/unknown_0CA530/osSetIntMask.s b/lib/asm/non_matchings/unknown_0CA530/osSetIntMask.s index a5216acb..ec4e2972 100644 --- a/lib/asm/non_matchings/unknown_0CA530/osSetIntMask.s +++ b/lib/asm/non_matchings/unknown_0CA530/osSetIntMask.s @@ -1,8 +1,8 @@ glabel osSetIntMask /* 0CA630 800C9A30 400C6000 */ mfc0 $t4, $12 /* 0CA634 800C9A34 3182FF01 */ andi $v0, $t4, 0xff01 -/* 0CA638 800C9A38 3C08800E */ lui $t0, %hi(D_800E38AC) # $t0, 0x800e -/* 0CA63C 800C9A3C 250838AC */ addiu $t0, %lo(D_800E38AC) # addiu $t0, $t0, 0x38ac +/* 0CA638 800C9A38 3C08800E */ lui $t0, %hi(__OSGlobalIntMask) # $t0, 0x800e +/* 0CA63C 800C9A3C 250838AC */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x38ac /* 0CA640 800C9A40 8D0B0000 */ lw $t3, ($t0) /* 0CA644 800C9A44 2401FFFF */ li $at, -1 /* 0CA648 800C9A48 01614026 */ xor $t0, $t3, $at diff --git a/lib/asm/non_matchings/unknown_0CA940/func_800C9D40.s b/lib/asm/non_matchings/unknown_0CA940/func_800C9D40.s deleted file mode 100644 index 348ec106..00000000 --- a/lib/asm/non_matchings/unknown_0CA940/func_800C9D40.s +++ /dev/null @@ -1,7 +0,0 @@ -glabel func_800C9D40 -/* 0CA940 800C9D40 AFA40000 */ sw $a0, ($sp) -/* 0CA944 800C9D44 AFA50004 */ sw $a1, 4($sp) -/* 0CA948 800C9D48 AFA60008 */ sw $a2, 8($sp) -/* 0CA94C 800C9D4C 03E00008 */ jr $ra -/* 0CA950 800C9D50 24020001 */ li $v0, 1 - diff --git a/lib/asm/non_matchings/unknown_0CA940/func_800C9D54.s b/lib/asm/non_matchings/unknown_0CA940/func_800C9D54.s deleted file mode 100644 index b513d761..00000000 --- a/lib/asm/non_matchings/unknown_0CA940/func_800C9D54.s +++ /dev/null @@ -1,22 +0,0 @@ -glabel func_800C9D54 -/* 0CA954 800C9D54 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0CA958 800C9D58 AFA40020 */ sw $a0, 0x20($sp) -/* 0CA95C 800C9D5C AFBF0014 */ sw $ra, 0x14($sp) -/* 0CA960 800C9D60 AFA50024 */ sw $a1, 0x24($sp) -/* 0CA964 800C9D64 AFA60028 */ sw $a2, 0x28($sp) -/* 0CA968 800C9D68 AFA7002C */ sw $a3, 0x2c($sp) -/* 0CA96C 800C9D6C 3C04800D */ lui $a0, %hi(func_800C9D40) # $a0, 0x800d -/* 0CA970 800C9D70 24849D40 */ addiu $a0, %lo(func_800C9D40) # addiu $a0, $a0, -0x62c0 -/* 0CA974 800C9D74 27A70024 */ addiu $a3, $sp, 0x24 -/* 0CA978 800C9D78 8FA60020 */ lw $a2, 0x20($sp) -/* 0CA97C 800C9D7C 0C034FC4 */ jal _Printf -/* 0CA980 800C9D80 00002825 */ move $a1, $zero -/* 0CA984 800C9D84 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CA988 800C9D88 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0CA98C 800C9D8C 03E00008 */ jr $ra -/* 0CA990 800C9D90 00000000 */ nop - -/* 0CA994 800C9D94 00000000 */ nop -/* 0CA998 800C9D98 00000000 */ nop -/* 0CA99C 800C9D9C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CCF90/guPerspectiveF.s b/lib/asm/non_matchings/unknown_0CCF90/guPerspectiveF.s deleted file mode 100644 index a593c03f..00000000 --- a/lib/asm/non_matchings/unknown_0CCF90/guPerspectiveF.s +++ /dev/null @@ -1,180 +0,0 @@ -.late_rodata -glabel D_800E9640 -.double 0.017453292222222222 - -.text -glabel guPerspectiveF -/* 0CD520 800CC920 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0CD524 800CC924 44867000 */ mtc1 $a2, $f14 -/* 0CD528 800CC928 AFBF0014 */ sw $ra, 0x14($sp) -/* 0CD52C 800CC92C AFA7003C */ sw $a3, 0x3c($sp) -/* 0CD530 800CC930 AFA40030 */ sw $a0, 0x30($sp) -/* 0CD534 800CC934 AFA50034 */ sw $a1, 0x34($sp) -/* 0CD538 800CC938 0C035250 */ jal guMtxIdentF -/* 0CD53C 800CC93C E7AE0038 */ swc1 $f14, 0x38($sp) -/* 0CD540 800CC940 C7AE0038 */ lwc1 $f14, 0x38($sp) -/* 0CD544 800CC944 3C01800F */ lui $at, %hi(D_800E9640) # $at, 0x800f -/* 0CD548 800CC948 D4269640 */ ldc1 $f6, %lo(D_800E9640)($at) -/* 0CD54C 800CC94C 46007121 */ cvt.d.s $f4, $f14 -/* 0CD550 800CC950 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 0CD554 800CC954 46262202 */ mul.d $f8, $f4, $f6 -/* 0CD558 800CC958 44815000 */ mtc1 $at, $f10 -/* 0CD55C 800CC95C 462043A0 */ cvt.s.d $f14, $f8 -/* 0CD560 800CC960 460A7303 */ div.s $f12, $f14, $f10 -/* 0CD564 800CC964 0C0352AC */ jal cosf -/* 0CD568 800CC968 E7AC001C */ swc1 $f12, 0x1c($sp) -/* 0CD56C 800CC96C C7AC001C */ lwc1 $f12, 0x1c($sp) -/* 0CD570 800CC970 0C035308 */ jal sinf -/* 0CD574 800CC974 E7A00020 */ swc1 $f0, 0x20($sp) -/* 0CD578 800CC978 C7A40020 */ lwc1 $f4, 0x20($sp) -/* 0CD57C 800CC97C C7A6003C */ lwc1 $f6, 0x3c($sp) -/* 0CD580 800CC980 C7AE0040 */ lwc1 $f14, 0x40($sp) -/* 0CD584 800CC984 46002083 */ div.s $f2, $f4, $f0 -/* 0CD588 800CC988 C7B00044 */ lwc1 $f16, 0x44($sp) -/* 0CD58C 800CC98C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 -/* 0CD590 800CC990 44812000 */ mtc1 $at, $f4 -/* 0CD594 800CC994 46107480 */ add.s $f18, $f14, $f16 -/* 0CD598 800CC998 8FA20030 */ lw $v0, 0x30($sp) -/* 0CD59C 800CC99C 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 0CD5A0 800CC9A0 46107301 */ sub.s $f12, $f14, $f16 -/* 0CD5A4 800CC9A4 8FA50034 */ lw $a1, 0x34($sp) -/* 0CD5A8 800CC9A8 E444002C */ swc1 $f4, 0x2c($v0) -/* 0CD5AC 800CC9AC 00001825 */ move $v1, $zero -/* 0CD5B0 800CC9B0 24040004 */ li $a0, 4 -/* 0CD5B4 800CC9B4 460C9283 */ div.s $f10, $f18, $f12 -/* 0CD5B8 800CC9B8 E4420014 */ swc1 $f2, 0x14($v0) -/* 0CD5BC 800CC9BC 46061203 */ div.s $f8, $f2, $f6 -/* 0CD5C0 800CC9C0 44813000 */ mtc1 $at, $f6 -/* 0CD5C4 800CC9C4 E44A0028 */ swc1 $f10, 0x28($v0) -/* 0CD5C8 800CC9C8 E4480000 */ swc1 $f8, ($v0) -/* 0CD5CC 800CC9CC 460E3202 */ mul.s $f8, $f6, $f14 -/* 0CD5D0 800CC9D0 44803000 */ mtc1 $zero, $f6 -/* 0CD5D4 800CC9D4 00000000 */ nop -/* 0CD5D8 800CC9D8 E446003C */ swc1 $f6, 0x3c($v0) -/* 0CD5DC 800CC9DC 46104282 */ mul.s $f10, $f8, $f16 -/* 0CD5E0 800CC9E0 460C5103 */ div.s $f4, $f10, $f12 -/* 0CD5E4 800CC9E4 E4440038 */ swc1 $f4, 0x38($v0) -/* 0CD5E8 800CC9E8 C7A00048 */ lwc1 $f0, 0x48($sp) -/* 0CD5EC 800CC9EC C4460000 */ lwc1 $f6, ($v0) -/* 0CD5F0 800CC9F0 24630001 */ addiu $v1, $v1, 1 -/* 0CD5F4 800CC9F4 C4500004 */ lwc1 $f16, 4($v0) -/* 0CD5F8 800CC9F8 46003282 */ mul.s $f10, $f6, $f0 -/* 0CD5FC 800CC9FC C44C0008 */ lwc1 $f12, 8($v0) -/* 0CD600 800CCA00 10640010 */ beq $v1, $a0, .L800CCA44 -/* 0CD604 800CCA04 C44E000C */ lwc1 $f14, 0xc($v0) -.L800CCA08: -/* 0CD608 800CCA08 46008202 */ mul.s $f8, $f16, $f0 -/* 0CD60C 800CCA0C C4460010 */ lwc1 $f6, 0x10($v0) -/* 0CD610 800CCA10 C4500014 */ lwc1 $f16, 0x14($v0) -/* 0CD614 800CCA14 46006102 */ mul.s $f4, $f12, $f0 -/* 0CD618 800CCA18 C44C0018 */ lwc1 $f12, 0x18($v0) -/* 0CD61C 800CCA1C 24630001 */ addiu $v1, $v1, 1 -/* 0CD620 800CCA20 46007082 */ mul.s $f2, $f14, $f0 -/* 0CD624 800CCA24 C44E001C */ lwc1 $f14, 0x1c($v0) -/* 0CD628 800CCA28 E44A0000 */ swc1 $f10, ($v0) -/* 0CD62C 800CCA2C 46003282 */ mul.s $f10, $f6, $f0 -/* 0CD630 800CCA30 E4480004 */ swc1 $f8, 4($v0) -/* 0CD634 800CCA34 E4440008 */ swc1 $f4, 8($v0) -/* 0CD638 800CCA38 24420010 */ addiu $v0, $v0, 0x10 -/* 0CD63C 800CCA3C 1464FFF2 */ bne $v1, $a0, .L800CCA08 -/* 0CD640 800CCA40 E442FFFC */ swc1 $f2, -4($v0) -.L800CCA44: -/* 0CD644 800CCA44 46008202 */ mul.s $f8, $f16, $f0 -/* 0CD648 800CCA48 24420010 */ addiu $v0, $v0, 0x10 -/* 0CD64C 800CCA4C E44AFFF0 */ swc1 $f10, -0x10($v0) -/* 0CD650 800CCA50 46006102 */ mul.s $f4, $f12, $f0 -/* 0CD654 800CCA54 00000000 */ nop -/* 0CD658 800CCA58 46007082 */ mul.s $f2, $f14, $f0 -/* 0CD65C 800CCA5C E448FFF4 */ swc1 $f8, -0xc($v0) -/* 0CD660 800CCA60 E444FFF8 */ swc1 $f4, -8($v0) -/* 0CD664 800CCA64 E442FFFC */ swc1 $f2, -4($v0) -/* 0CD668 800CCA68 10A00035 */ beqz $a1, .L800CCB40 -/* 0CD66C 800CCA6C 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 0CD670 800CCA70 44814800 */ mtc1 $at, $f9 -/* 0CD674 800CCA74 44804000 */ mtc1 $zero, $f8 -/* 0CD678 800CCA78 46009021 */ cvt.d.s $f0, $f18 -/* 0CD67C 800CCA7C 340EFFFF */ li $t6, 65535 -/* 0CD680 800CCA80 4628003E */ c.le.d $f0, $f8 -/* 0CD684 800CCA84 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 0CD688 800CCA88 45020004 */ bc1fl .L800CCA9C -/* 0CD68C 800CCA8C 44815800 */ mtc1 $at, $f11 -/* 0CD690 800CCA90 1000002B */ b .L800CCB40 -/* 0CD694 800CCA94 A4AE0000 */ sh $t6, ($a1) -/* 0CD698 800CCA98 44815800 */ mtc1 $at, $f11 -.L800CCA9C: -/* 0CD69C 800CCA9C 44805000 */ mtc1 $zero, $f10 -/* 0CD6A0 800CCAA0 24180001 */ li $t8, 1 -/* 0CD6A4 800CCAA4 3C0141E0 */ li $at, 0x41E00000 # 28.000000 -/* 0CD6A8 800CCAA8 46205103 */ div.d $f4, $f10, $f0 -/* 0CD6AC 800CCAAC 24080001 */ li $t0, 1 -/* 0CD6B0 800CCAB0 444FF800 */ cfc1 $t7, $31 -/* 0CD6B4 800CCAB4 44D8F800 */ ctc1 $t8, $31 -/* 0CD6B8 800CCAB8 00000000 */ nop -/* 0CD6BC 800CCABC 462021A4 */ cvt.w.d $f6, $f4 -/* 0CD6C0 800CCAC0 4458F800 */ cfc1 $t8, $31 -/* 0CD6C4 800CCAC4 00000000 */ nop -/* 0CD6C8 800CCAC8 33180078 */ andi $t8, $t8, 0x78 -/* 0CD6CC 800CCACC 53000014 */ beql $t8, $zero, .L800CCB20 -/* 0CD6D0 800CCAD0 44183000 */ mfc1 $t8, $f6 -/* 0CD6D4 800CCAD4 44813800 */ mtc1 $at, $f7 -/* 0CD6D8 800CCAD8 44803000 */ mtc1 $zero, $f6 -/* 0CD6DC 800CCADC 24180001 */ li $t8, 1 -/* 0CD6E0 800CCAE0 46262181 */ sub.d $f6, $f4, $f6 -/* 0CD6E4 800CCAE4 44D8F800 */ ctc1 $t8, $31 -/* 0CD6E8 800CCAE8 00000000 */ nop -/* 0CD6EC 800CCAEC 462031A4 */ cvt.w.d $f6, $f6 -/* 0CD6F0 800CCAF0 4458F800 */ cfc1 $t8, $31 -/* 0CD6F4 800CCAF4 00000000 */ nop -/* 0CD6F8 800CCAF8 33180078 */ andi $t8, $t8, 0x78 -/* 0CD6FC 800CCAFC 17000005 */ bnez $t8, .L800CCB14 -/* 0CD700 800CCB00 00000000 */ nop -/* 0CD704 800CCB04 44183000 */ mfc1 $t8, $f6 -/* 0CD708 800CCB08 3C018000 */ lui $at, 0x8000 -/* 0CD70C 800CCB0C 10000007 */ b .L800CCB2C -/* 0CD710 800CCB10 0301C025 */ or $t8, $t8, $at -.L800CCB14: -/* 0CD714 800CCB14 10000005 */ b .L800CCB2C -/* 0CD718 800CCB18 2418FFFF */ li $t8, -1 -/* 0CD71C 800CCB1C 44183000 */ mfc1 $t8, $f6 -.L800CCB20: -/* 0CD720 800CCB20 00000000 */ nop -/* 0CD724 800CCB24 0700FFFB */ bltz $t8, .L800CCB14 -/* 0CD728 800CCB28 00000000 */ nop -.L800CCB2C: -/* 0CD72C 800CCB2C 44CFF800 */ ctc1 $t7, $31 -/* 0CD730 800CCB30 3319FFFF */ andi $t9, $t8, 0xffff -/* 0CD734 800CCB34 1F200002 */ bgtz $t9, .L800CCB40 -/* 0CD738 800CCB38 A4B80000 */ sh $t8, ($a1) -/* 0CD73C 800CCB3C A4A80000 */ sh $t0, ($a1) -.L800CCB40: -/* 0CD740 800CCB40 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CD744 800CCB44 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0CD748 800CCB48 03E00008 */ jr $ra -/* 0CD74C 800CCB4C 00000000 */ nop - -/* 0CD750 800CCB50 27BDFF98 */ addiu $sp, $sp, -0x68 -/* 0CD754 800CCB54 44866000 */ mtc1 $a2, $f12 -/* 0CD758 800CCB58 44877000 */ mtc1 $a3, $f14 -/* 0CD75C 800CCB5C C7A40078 */ lwc1 $f4, 0x78($sp) -/* 0CD760 800CCB60 C7A6007C */ lwc1 $f6, 0x7c($sp) -/* 0CD764 800CCB64 C7A80080 */ lwc1 $f8, 0x80($sp) -/* 0CD768 800CCB68 AFBF0024 */ sw $ra, 0x24($sp) -/* 0CD76C 800CCB6C AFA40068 */ sw $a0, 0x68($sp) -/* 0CD770 800CCB70 44066000 */ mfc1 $a2, $f12 -/* 0CD774 800CCB74 44077000 */ mfc1 $a3, $f14 -/* 0CD778 800CCB78 27A40028 */ addiu $a0, $sp, 0x28 -/* 0CD77C 800CCB7C E7A40010 */ swc1 $f4, 0x10($sp) -/* 0CD780 800CCB80 E7A60014 */ swc1 $f6, 0x14($sp) -/* 0CD784 800CCB84 0C033248 */ jal guPerspectiveF -/* 0CD788 800CCB88 E7A80018 */ swc1 $f8, 0x18($sp) -/* 0CD78C 800CCB8C 27A40028 */ addiu $a0, $sp, 0x28 -/* 0CD790 800CCB90 0C035210 */ jal guMtxF2L -/* 0CD794 800CCB94 8FA50068 */ lw $a1, 0x68($sp) -/* 0CD798 800CCB98 8FBF0024 */ lw $ra, 0x24($sp) -/* 0CD79C 800CCB9C 27BD0068 */ addiu $sp, $sp, 0x68 -/* 0CD7A0 800CCBA0 03E00008 */ jr $ra -/* 0CD7A4 800CCBA4 00000000 */ nop - -/* 0CD7A8 800CCBA8 00000000 */ nop -/* 0CD7AC 800CCBAC 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CCF90/osInitialize.s b/lib/asm/non_matchings/unknown_0CCF90/osInitialize.s index 61dbb97c..a422c429 100644 --- a/lib/asm/non_matchings/unknown_0CCF90/osInitialize.s +++ b/lib/asm/non_matchings/unknown_0CCF90/osInitialize.s @@ -109,16 +109,16 @@ glabel osInitialize /* 0CD33C 800CC73C 0101C824 */ and $t9, $t0, $at /* 0CD340 800CC740 13200006 */ beqz $t9, .L800CC75C /* 0CD344 800CC744 AFB90038 */ sw $t9, 0x38($sp) -/* 0CD348 800CC748 3C01800E */ lui $at, %hi(D_800E38A4) # $at, 0x800e +/* 0CD348 800CC748 3C01800E */ lui $at, %hi(osClockRate) # $at, 0x800e /* 0CD34C 800CC74C 03205825 */ move $t3, $t9 /* 0CD350 800CC750 240A0000 */ li $t2, 0 -/* 0CD354 800CC754 AC2A38A0 */ sw $t2, %lo(D_800E38A0)($at) -/* 0CD358 800CC758 AC2B38A4 */ sw $t3, %lo(D_800E38A4)($at) +/* 0CD354 800CC754 AC2A38A0 */ sw $t2, %lo(osClockRate)($at) +/* 0CD358 800CC758 AC2B38A4 */ sw $t3, %lo(osClockRate+4)($at) .L800CC75C: -/* 0CD35C 800CC75C 3C04800E */ lui $a0, %hi(D_800E38A0) # $a0, 0x800e -/* 0CD360 800CC760 3C05800E */ lui $a1, %hi(D_800E38A4) # $a1, 0x800e -/* 0CD364 800CC764 8CA538A4 */ lw $a1, %lo(D_800E38A4)($a1) -/* 0CD368 800CC768 8C8438A0 */ lw $a0, %lo(D_800E38A0)($a0) +/* 0CD35C 800CC75C 3C04800E */ lui $a0, %hi(osClockRate) # $a0, 0x800e +/* 0CD360 800CC760 3C05800E */ lui $a1, %hi(osClockRate+4) # $a1, 0x800e +/* 0CD364 800CC764 8CA538A4 */ lw $a1, %lo(osClockRate+4)($a1) +/* 0CD368 800CC768 8C8438A0 */ lw $a0, %lo(osClockRate)($a0) /* 0CD36C 800CC76C 24060000 */ li $a2, 0 /* 0CD370 800CC770 0C033AF2 */ jal __ll_mul /* 0CD374 800CC774 24070003 */ li $a3, 3 @@ -131,13 +131,13 @@ glabel osInitialize /* 0CD390 800CC790 24070004 */ li $a3, 4 /* 0CD394 800CC794 3C098000 */ lui $t1, %hi(osResetType) # $t1, 0x8000 /* 0CD398 800CC798 8D29030C */ lw $t1, %lo(osResetType)($t1) -/* 0CD39C 800CC79C 3C01800E */ lui $at, %hi(D_800E38A4) # $at, 0x800e -/* 0CD3A0 800CC7A0 AC2238A0 */ sw $v0, %lo(D_800E38A0)($at) +/* 0CD39C 800CC79C 3C01800E */ lui $at, %hi(osClockRate) # $at, 0x800e +/* 0CD3A0 800CC7A0 AC2238A0 */ sw $v0, %lo(osClockRate)($at) /* 0CD3A4 800CC7A4 15200005 */ bnez $t1, .L800CC7BC -/* 0CD3A8 800CC7A8 AC2338A4 */ sw $v1, %lo(D_800E38A4)($at) +/* 0CD3A8 800CC7A8 AC2338A4 */ sw $v1, %lo(osClockRate+4)($at) /* 0CD3AC 800CC7AC 3C048000 */ lui $a0, %hi(osAppNMIBuffer) # $a0, 0x8000 /* 0CD3B0 800CC7B0 2484031C */ addiu $a0, %lo(osAppNMIBuffer) # addiu $a0, $a0, 0x31c -/* 0CD3B4 800CC7B4 0C034138 */ jal memzero +/* 0CD3B4 800CC7B4 0C034138 */ jal bzero /* 0CD3B8 800CC7B8 24050040 */ li $a1, 64 .L800CC7BC: /* 0CD3BC 800CC7BC 3C0DA460 */ lui $t5, %hi(D_A4600010) # $t5, 0xa460 diff --git a/lib/asm/non_matchings/unknown_0CCF90/osSetThreadPri.s b/lib/asm/non_matchings/unknown_0CCF90/osSetThreadPri.s index 37d1296e..fbfda341 100644 --- a/lib/asm/non_matchings/unknown_0CCF90/osSetThreadPri.s +++ b/lib/asm/non_matchings/unknown_0CCF90/osSetThreadPri.s @@ -37,8 +37,8 @@ glabel osSetThreadPri /* 0CD4C8 800CC8C8 01802825 */ move $a1, $t4 .L800CC8CC: /* 0CD4CC 800CC8CC 3C0D800E */ lui $t5, %hi(__osRunningThread) # $t5, 0x800e -/* 0CD4D0 800CC8D0 3C0F800E */ lui $t7, %hi(__RunQueue) # $t7, 0x800e -/* 0CD4D4 800CC8D4 8DEF4888 */ lw $t7, %lo(__RunQueue)($t7) +/* 0CD4D0 800CC8D0 3C0F800E */ lui $t7, %hi(__osRunQueue) # $t7, 0x800e +/* 0CD4D4 800CC8D4 8DEF4888 */ lw $t7, %lo(__osRunQueue)($t7) /* 0CD4D8 800CC8D8 8DAD4890 */ lw $t5, %lo(__osRunningThread)($t5) /* 0CD4DC 800CC8DC 8DF90004 */ lw $t9, 4($t7) /* 0CD4E0 800CC8E0 8DAE0004 */ lw $t6, 4($t5) @@ -46,10 +46,10 @@ glabel osSetThreadPri /* 0CD4E8 800CC8E8 10200006 */ beqz $at, .L800CC904 /* 0CD4EC 800CC8EC 00000000 */ nop /* 0CD4F0 800CC8F0 24080002 */ li $t0, 2 -/* 0CD4F4 800CC8F4 3C04800E */ lui $a0, %hi(__RunQueue) # $a0, 0x800e +/* 0CD4F4 800CC8F4 3C04800E */ lui $a0, %hi(__osRunQueue) # $a0, 0x800e /* 0CD4F8 800CC8F8 A5A80010 */ sh $t0, 0x10($t5) /* 0CD4FC 800CC8FC 0C034CB3 */ jal __osEnqueueAndYield -/* 0CD500 800CC900 24844888 */ addiu $a0, %lo(__RunQueue) # addiu $a0, $a0, 0x4888 +/* 0CD500 800CC900 24844888 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x4888 .L800CC904: /* 0CD504 800CC904 0C034960 */ jal __osRestoreInt /* 0CD508 800CC908 02002025 */ move $a0, $s0 diff --git a/lib/asm/non_matchings/unknown_0CD820/func_800CD14C.s b/lib/asm/non_matchings/unknown_0CD820/__osPackReadData.s similarity index 99% rename from lib/asm/non_matchings/unknown_0CD820/func_800CD14C.s rename to lib/asm/non_matchings/unknown_0CD820/__osPackReadData.s index d31c9226..f5005ee2 100644 --- a/lib/asm/non_matchings/unknown_0CD820/func_800CD14C.s +++ b/lib/asm/non_matchings/unknown_0CD820/__osPackReadData.s @@ -1,4 +1,4 @@ -glabel func_800CD14C +glabel __osPackReadData /* 0CDD4C 800CD14C 27BDFFF0 */ addiu $sp, $sp, -0x10 /* 0CDD50 800CD150 3C0E8013 */ lui $t6, %hi(D_8012CD50) # $t6, 0x8013 /* 0CDD54 800CD154 25CECD50 */ addiu $t6, %lo(D_8012CD50) # addiu $t6, $t6, -0x32b0 diff --git a/lib/asm/non_matchings/unknown_0CD820/osContInit.s b/lib/asm/non_matchings/unknown_0CD820/osContInit.s index dd831715..46389661 100644 --- a/lib/asm/non_matchings/unknown_0CD820/osContInit.s +++ b/lib/asm/non_matchings/unknown_0CD820/osContInit.s @@ -16,12 +16,12 @@ glabel osContInit /* 0CD854 800CCC54 0C03486C */ jal osGetTime /* 0CD858 800CCC58 AC2F38C0 */ sw $t7, %lo(D_800E38C0)($at) /* 0CD85C 800CCC5C 3C050007 */ lui $a1, (0x0007A120 >> 16) # lui $a1, 7 -/* 0CD860 800CCC60 3C06800E */ lui $a2, %hi(D_800E38A0) # $a2, 0x800e -/* 0CD864 800CCC64 3C07800E */ lui $a3, %hi(D_800E38A4) # $a3, 0x800e +/* 0CD860 800CCC60 3C06800E */ lui $a2, %hi(osClockRate) # $a2, 0x800e +/* 0CD864 800CCC64 3C07800E */ lui $a3, %hi(osClockRate+4) # $a3, 0x800e /* 0CD868 800CCC68 AFA20070 */ sw $v0, 0x70($sp) /* 0CD86C 800CCC6C AFA30074 */ sw $v1, 0x74($sp) -/* 0CD870 800CCC70 8CE738A4 */ lw $a3, %lo(D_800E38A4)($a3) -/* 0CD874 800CCC74 8CC638A0 */ lw $a2, %lo(D_800E38A0)($a2) +/* 0CD870 800CCC70 8CE738A4 */ lw $a3, %lo(osClockRate+4)($a3) +/* 0CD874 800CCC74 8CC638A0 */ lw $a2, %lo(osClockRate)($a2) /* 0CD878 800CCC78 34A5A120 */ ori $a1, (0x0007A120 & 0xFFFF) # ori $a1, $a1, 0xa120 /* 0CD87C 800CCC7C 0C033AF2 */ jal __ll_mul /* 0CD880 800CCC80 24040000 */ li $a0, 0 @@ -48,10 +48,10 @@ glabel osContInit /* 0CD8D0 800CCCD0 0C032208 */ jal osCreateMesgQueue /* 0CD8D4 800CCCD4 24060001 */ li $a2, 1 /* 0CD8D8 800CCCD8 3C050007 */ lui $a1, (0x0007A120 >> 16) # lui $a1, 7 -/* 0CD8DC 800CCCDC 3C06800E */ lui $a2, %hi(D_800E38A0) # $a2, 0x800e -/* 0CD8E0 800CCCE0 3C07800E */ lui $a3, %hi(D_800E38A4) # $a3, 0x800e -/* 0CD8E4 800CCCE4 8CE738A4 */ lw $a3, %lo(D_800E38A4)($a3) -/* 0CD8E8 800CCCE8 8CC638A0 */ lw $a2, %lo(D_800E38A0)($a2) +/* 0CD8DC 800CCCDC 3C06800E */ lui $a2, %hi(osClockRate) # $a2, 0x800e +/* 0CD8E0 800CCCE0 3C07800E */ lui $a3, %hi(osClockRate) # $a3, 0x800e +/* 0CD8E4 800CCCE4 8CE738A4 */ lw $a3, %lo(osClockRate+4)($a3) +/* 0CD8E8 800CCCE8 8CC638A0 */ lw $a2, %lo(osClockRate)($a2) /* 0CD8EC 800CCCEC 34A5A120 */ ori $a1, (0x0007A120 & 0xFFFF) # ori $a1, $a1, 0xa120 /* 0CD8F0 800CCCF0 0C033AF2 */ jal __ll_mul /* 0CD8F4 800CCCF4 24040000 */ li $a0, 0 diff --git a/lib/asm/non_matchings/unknown_0CD820/osContStartReadData.s b/lib/asm/non_matchings/unknown_0CD820/osContStartReadData.s index e0e68a7b..93432d31 100644 --- a/lib/asm/non_matchings/unknown_0CD820/osContStartReadData.s +++ b/lib/asm/non_matchings/unknown_0CD820/osContStartReadData.s @@ -9,7 +9,7 @@ glabel osContStartReadData /* 0CDBFC 800CCFFC 24010001 */ li $at, 1 /* 0CDC00 800CD000 11C1000C */ beq $t6, $at, .L800CD034 /* 0CDC04 800CD004 00000000 */ nop -/* 0CDC08 800CD008 0C033453 */ jal func_800CD14C +/* 0CDC08 800CD008 0C033453 */ jal __osPackReadData /* 0CDC0C 800CD00C 00000000 */ nop /* 0CDC10 800CD010 3C058013 */ lui $a1, %hi(D_8012CD50) # $a1, 0x8013 /* 0CDC14 800CD014 24A5CD50 */ addiu $a1, %lo(D_8012CD50) # addiu $a1, $a1, -0x32b0 diff --git a/lib/asm/non_matchings/unknown_0CDE50/func_800CD250.s b/lib/asm/non_matchings/unknown_0CDE50/func_800CD250.s deleted file mode 100644 index d287663a..00000000 --- a/lib/asm/non_matchings/unknown_0CDE50/func_800CD250.s +++ /dev/null @@ -1,7 +0,0 @@ -glabel func_800CD250 -/* 0CDE50 800CD250 3C0EA410 */ lui $t6, 0xa410 -/* 0CDE54 800CD254 03E00008 */ jr $ra -/* 0CDE58 800CD258 ADC4000C */ sw $a0, 0xc($t6) - -/* 0CDE5C 800CD25C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CDE90/__osPfsRequestData.s b/lib/asm/non_matchings/unknown_0CDE90/__osPfsRequestData.s deleted file mode 100644 index 5bf21989..00000000 --- a/lib/asm/non_matchings/unknown_0CDE90/__osPfsRequestData.s +++ /dev/null @@ -1,68 +0,0 @@ -glabel __osPfsRequestData -/* 0CE030 800CD430 27BDFFF0 */ addiu $sp, $sp, -0x10 -/* 0CE034 800CD434 308400FF */ andi $a0, $a0, 0xff -/* 0CE038 800CD438 3C018013 */ lui $at, %hi(__osContLastCmd) # $at, 0x8013 -/* 0CE03C 800CD43C A024CD90 */ sb $a0, %lo(__osContLastCmd)($at) -/* 0CE040 800CD440 AFA00000 */ sw $zero, ($sp) -.L800CD444: -/* 0CE044 800CD444 8FAE0000 */ lw $t6, ($sp) -/* 0CE048 800CD448 8FB80000 */ lw $t8, ($sp) -/* 0CE04C 800CD44C 3C018013 */ lui $at, %hi(__osPfsPifRam) # $at, 0x8013 -/* 0CE050 800CD450 000E7880 */ sll $t7, $t6, 2 -/* 0CE054 800CD454 002F0821 */ addu $at, $at, $t7 -/* 0CE058 800CD458 AC20CDE0 */ sw $zero, %lo(__osPfsPifRam)($at) -/* 0CE05C 800CD45C 27190001 */ addiu $t9, $t8, 1 -/* 0CE060 800CD460 2B210010 */ slti $at, $t9, 0x10 -/* 0CE064 800CD464 1420FFF7 */ bnez $at, .L800CD444 -/* 0CE068 800CD468 AFB90000 */ sw $t9, ($sp) -/* 0CE06C 800CD46C 3C198013 */ lui $t9, %hi(__osMaxControllers) # $t9, 0x8013 -/* 0CE070 800CD470 9339CD91 */ lbu $t9, %lo(__osMaxControllers)($t9) -/* 0CE074 800CD474 3C098013 */ lui $t1, %hi(__osPfsPifRam) # $t1, 0x8013 -/* 0CE078 800CD478 24080001 */ li $t0, 1 -/* 0CE07C 800CD47C 3C018013 */ lui $at, %hi(D_8012CE1C) # $at, 0x8013 -/* 0CE080 800CD480 2529CDE0 */ addiu $t1, %lo(__osPfsPifRam) # addiu $t1, $t1, -0x3220 -/* 0CE084 800CD484 240A00FF */ li $t2, 255 -/* 0CE088 800CD488 240B0001 */ li $t3, 1 -/* 0CE08C 800CD48C 240C0003 */ li $t4, 3 -/* 0CE090 800CD490 240D00FF */ li $t5, 255 -/* 0CE094 800CD494 240E00FF */ li $t6, 255 -/* 0CE098 800CD498 240F00FF */ li $t7, 255 -/* 0CE09C 800CD49C 241800FF */ li $t8, 255 -/* 0CE0A0 800CD4A0 AC28CE1C */ sw $t0, %lo(D_8012CE1C)($at) -/* 0CE0A4 800CD4A4 AFA9000C */ sw $t1, 0xc($sp) -/* 0CE0A8 800CD4A8 A3AA0004 */ sb $t2, 4($sp) -/* 0CE0AC 800CD4AC A3AB0005 */ sb $t3, 5($sp) -/* 0CE0B0 800CD4B0 A3AC0006 */ sb $t4, 6($sp) -/* 0CE0B4 800CD4B4 A3A40007 */ sb $a0, 7($sp) -/* 0CE0B8 800CD4B8 A3AD0008 */ sb $t5, 8($sp) -/* 0CE0BC 800CD4BC A3AE0009 */ sb $t6, 9($sp) -/* 0CE0C0 800CD4C0 A3AF000A */ sb $t7, 0xa($sp) -/* 0CE0C4 800CD4C4 A3B8000B */ sb $t8, 0xb($sp) -/* 0CE0C8 800CD4C8 1B200013 */ blez $t9, .L800CD518 -/* 0CE0CC 800CD4CC AFA00000 */ sw $zero, ($sp) -.L800CD4D0: -/* 0CE0D0 800CD4D0 27A90004 */ addiu $t1, $sp, 4 -/* 0CE0D4 800CD4D4 8D210000 */ lw $at, ($t1) -/* 0CE0D8 800CD4D8 8FA8000C */ lw $t0, 0xc($sp) -/* 0CE0DC 800CD4DC 3C188013 */ lui $t8, %hi(__osMaxControllers) # $t8, 0x8013 -/* 0CE0E0 800CD4E0 A9010000 */ swl $at, ($t0) -/* 0CE0E4 800CD4E4 B9010003 */ swr $at, 3($t0) -/* 0CE0E8 800CD4E8 8D2B0004 */ lw $t3, 4($t1) -/* 0CE0EC 800CD4EC A90B0004 */ swl $t3, 4($t0) -/* 0CE0F0 800CD4F0 B90B0007 */ swr $t3, 7($t0) -/* 0CE0F4 800CD4F4 8FAE0000 */ lw $t6, ($sp) -/* 0CE0F8 800CD4F8 9318CD91 */ lbu $t8, %lo(__osMaxControllers)($t8) -/* 0CE0FC 800CD4FC 8FAC000C */ lw $t4, 0xc($sp) -/* 0CE100 800CD500 25CF0001 */ addiu $t7, $t6, 1 -/* 0CE104 800CD504 01F8082A */ slt $at, $t7, $t8 -/* 0CE108 800CD508 258D0008 */ addiu $t5, $t4, 8 -/* 0CE10C 800CD50C AFAF0000 */ sw $t7, ($sp) -/* 0CE110 800CD510 1420FFEF */ bnez $at, .L800CD4D0 -/* 0CE114 800CD514 AFAD000C */ sw $t5, 0xc($sp) -.L800CD518: -/* 0CE118 800CD518 8FAA000C */ lw $t2, 0xc($sp) -/* 0CE11C 800CD51C 241900FE */ li $t9, 254 -/* 0CE120 800CD520 27BD0010 */ addiu $sp, $sp, 0x10 -/* 0CE124 800CD524 03E00008 */ jr $ra -/* 0CE128 800CD528 A1590000 */ sb $t9, ($t2) - diff --git a/lib/asm/non_matchings/unknown_0CDE90/osPfsIsPlug.s b/lib/asm/non_matchings/unknown_0CDE90/osPfsIsPlug.s deleted file mode 100644 index c49b772a..00000000 --- a/lib/asm/non_matchings/unknown_0CDE90/osPfsIsPlug.s +++ /dev/null @@ -1,114 +0,0 @@ -glabel osPfsIsPlug -/* 0CDE90 800CD290 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 0CDE94 800CD294 AFBF0014 */ sw $ra, 0x14($sp) -/* 0CDE98 800CD298 240E0003 */ li $t6, 3 -/* 0CDE9C 800CD29C AFA40040 */ sw $a0, 0x40($sp) -/* 0CDEA0 800CD2A0 AFA50044 */ sw $a1, 0x44($sp) -/* 0CDEA4 800CD2A4 AFA0003C */ sw $zero, 0x3c($sp) -/* 0CDEA8 800CD2A8 A3A0001F */ sb $zero, 0x1f($sp) -/* 0CDEAC 800CD2AC 0C033594 */ jal __osSiGetAccess -/* 0CDEB0 800CD2B0 AFAE0018 */ sw $t6, 0x18($sp) -.L800CD2B4: -/* 0CDEB4 800CD2B4 0C03350C */ jal __osPfsRequestData -/* 0CDEB8 800CD2B8 00002025 */ move $a0, $zero -/* 0CDEBC 800CD2BC 3C058013 */ lui $a1, %hi(__osPfsPifRam) # $a1, 0x8013 -/* 0CDEC0 800CD2C0 24A5CDE0 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, -0x3220 -/* 0CDEC4 800CD2C4 0C0335B0 */ jal __osSiRawStartDma -/* 0CDEC8 800CD2C8 24040001 */ li $a0, 1 -/* 0CDECC 800CD2CC AFA2003C */ sw $v0, 0x3c($sp) -/* 0CDED0 800CD2D0 8FA40040 */ lw $a0, 0x40($sp) -/* 0CDED4 800CD2D4 27A50038 */ addiu $a1, $sp, 0x38 -/* 0CDED8 800CD2D8 0C0322EC */ jal osRecvMesg -/* 0CDEDC 800CD2DC 24060001 */ li $a2, 1 -/* 0CDEE0 800CD2E0 3C058013 */ lui $a1, %hi(__osPfsPifRam) # $a1, 0x8013 -/* 0CDEE4 800CD2E4 24A5CDE0 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, -0x3220 -/* 0CDEE8 800CD2E8 0C0335B0 */ jal __osSiRawStartDma -/* 0CDEEC 800CD2EC 00002025 */ move $a0, $zero -/* 0CDEF0 800CD2F0 AFA2003C */ sw $v0, 0x3c($sp) -/* 0CDEF4 800CD2F4 8FA40040 */ lw $a0, 0x40($sp) -/* 0CDEF8 800CD2F8 27A50038 */ addiu $a1, $sp, 0x38 -/* 0CDEFC 800CD2FC 0C0322EC */ jal osRecvMesg -/* 0CDF00 800CD300 24060001 */ li $a2, 1 -/* 0CDF04 800CD304 27A40037 */ addiu $a0, $sp, 0x37 -/* 0CDF08 800CD308 0C03354B */ jal __osPfsGetInitData -/* 0CDF0C 800CD30C 27A50024 */ addiu $a1, $sp, 0x24 -/* 0CDF10 800CD310 3C0F8013 */ lui $t7, %hi(__osMaxControllers) # $t7, 0x8013 -/* 0CDF14 800CD314 91EFCD91 */ lbu $t7, %lo(__osMaxControllers)($t7) -/* 0CDF18 800CD318 AFA00020 */ sw $zero, 0x20($sp) -/* 0CDF1C 800CD31C 19E00014 */ blez $t7, .L800CD370 -/* 0CDF20 800CD320 00000000 */ nop -.L800CD324: -/* 0CDF24 800CD324 8FB80020 */ lw $t8, 0x20($sp) -/* 0CDF28 800CD328 0018C880 */ sll $t9, $t8, 2 -/* 0CDF2C 800CD32C 03B94021 */ addu $t0, $sp, $t9 -/* 0CDF30 800CD330 91080026 */ lbu $t0, 0x26($t0) -/* 0CDF34 800CD334 31090004 */ andi $t1, $t0, 4 -/* 0CDF38 800CD338 15200005 */ bnez $t1, .L800CD350 -/* 0CDF3C 800CD33C 00000000 */ nop -/* 0CDF40 800CD340 8FAA0018 */ lw $t2, 0x18($sp) -/* 0CDF44 800CD344 254BFFFF */ addiu $t3, $t2, -1 -/* 0CDF48 800CD348 10000009 */ b .L800CD370 -/* 0CDF4C 800CD34C AFAB0018 */ sw $t3, 0x18($sp) -.L800CD350: -/* 0CDF50 800CD350 8FAC0020 */ lw $t4, 0x20($sp) -/* 0CDF54 800CD354 3C0E8013 */ lui $t6, %hi(__osMaxControllers) # $t6, 0x8013 -/* 0CDF58 800CD358 91CECD91 */ lbu $t6, %lo(__osMaxControllers)($t6) -/* 0CDF5C 800CD35C 258D0001 */ addiu $t5, $t4, 1 -/* 0CDF60 800CD360 AFAD0020 */ sw $t5, 0x20($sp) -/* 0CDF64 800CD364 01AE082A */ slt $at, $t5, $t6 -/* 0CDF68 800CD368 1420FFEE */ bnez $at, .L800CD324 -/* 0CDF6C 800CD36C 00000000 */ nop -.L800CD370: -/* 0CDF70 800CD370 3C0F8013 */ lui $t7, %hi(__osMaxControllers) # $t7, 0x8013 -/* 0CDF74 800CD374 91EFCD91 */ lbu $t7, %lo(__osMaxControllers)($t7) -/* 0CDF78 800CD378 8FB80020 */ lw $t8, 0x20($sp) -/* 0CDF7C 800CD37C 15F80002 */ bne $t7, $t8, .L800CD388 -/* 0CDF80 800CD380 00000000 */ nop -/* 0CDF84 800CD384 AFA00018 */ sw $zero, 0x18($sp) -.L800CD388: -/* 0CDF88 800CD388 8FB90018 */ lw $t9, 0x18($sp) -/* 0CDF8C 800CD38C 1F20FFC9 */ bgtz $t9, .L800CD2B4 -/* 0CDF90 800CD390 00000000 */ nop -/* 0CDF94 800CD394 3C088013 */ lui $t0, %hi(__osMaxControllers) # $t0, 0x8013 -/* 0CDF98 800CD398 9108CD91 */ lbu $t0, %lo(__osMaxControllers)($t0) -/* 0CDF9C 800CD39C AFA00020 */ sw $zero, 0x20($sp) -/* 0CDFA0 800CD3A0 19000019 */ blez $t0, .L800CD408 -/* 0CDFA4 800CD3A4 00000000 */ nop -.L800CD3A8: -/* 0CDFA8 800CD3A8 8FA90020 */ lw $t1, 0x20($sp) -/* 0CDFAC 800CD3AC 27AB0024 */ addiu $t3, $sp, 0x24 -/* 0CDFB0 800CD3B0 00095080 */ sll $t2, $t1, 2 -/* 0CDFB4 800CD3B4 014B6021 */ addu $t4, $t2, $t3 -/* 0CDFB8 800CD3B8 918D0003 */ lbu $t5, 3($t4) -/* 0CDFBC 800CD3BC 15A0000A */ bnez $t5, .L800CD3E8 -/* 0CDFC0 800CD3C0 00000000 */ nop -/* 0CDFC4 800CD3C4 918E0002 */ lbu $t6, 2($t4) -/* 0CDFC8 800CD3C8 31CF0001 */ andi $t7, $t6, 1 -/* 0CDFCC 800CD3CC 11E00006 */ beqz $t7, .L800CD3E8 -/* 0CDFD0 800CD3D0 00000000 */ nop -/* 0CDFD4 800CD3D4 93B8001F */ lbu $t8, 0x1f($sp) -/* 0CDFD8 800CD3D8 24190001 */ li $t9, 1 -/* 0CDFDC 800CD3DC 01394004 */ sllv $t0, $t9, $t1 -/* 0CDFE0 800CD3E0 03085025 */ or $t2, $t8, $t0 -/* 0CDFE4 800CD3E4 A3AA001F */ sb $t2, 0x1f($sp) -.L800CD3E8: -/* 0CDFE8 800CD3E8 8FAB0020 */ lw $t3, 0x20($sp) -/* 0CDFEC 800CD3EC 3C0C8013 */ lui $t4, %hi(__osMaxControllers) # $t4, 0x8013 -/* 0CDFF0 800CD3F0 918CCD91 */ lbu $t4, %lo(__osMaxControllers)($t4) -/* 0CDFF4 800CD3F4 256D0001 */ addiu $t5, $t3, 1 -/* 0CDFF8 800CD3F8 AFAD0020 */ sw $t5, 0x20($sp) -/* 0CDFFC 800CD3FC 01AC082A */ slt $at, $t5, $t4 -/* 0CE000 800CD400 1420FFE9 */ bnez $at, .L800CD3A8 -/* 0CE004 800CD404 00000000 */ nop -.L800CD408: -/* 0CE008 800CD408 0C0335A5 */ jal __osSiRelAccess -/* 0CE00C 800CD40C 00000000 */ nop -/* 0CE010 800CD410 93AE001F */ lbu $t6, 0x1f($sp) -/* 0CE014 800CD414 8FAF0044 */ lw $t7, 0x44($sp) -/* 0CE018 800CD418 A1EE0000 */ sb $t6, ($t7) -/* 0CE01C 800CD41C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CE020 800CD420 8FA2003C */ lw $v0, 0x3c($sp) -/* 0CE024 800CD424 27BD0040 */ addiu $sp, $sp, 0x40 -/* 0CE028 800CD428 03E00008 */ jr $ra -/* 0CE02C 800CD42C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CEE10/osEepromProbe.s b/lib/asm/non_matchings/unknown_0CEE10/osEepromProbe.s deleted file mode 100644 index 10b6f8d8..00000000 --- a/lib/asm/non_matchings/unknown_0CEE10/osEepromProbe.s +++ /dev/null @@ -1,33 +0,0 @@ -glabel osEepromProbe -/* 0CEE10 800CE210 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0CEE14 800CE214 AFBF0014 */ sw $ra, 0x14($sp) -/* 0CEE18 800CE218 AFA40020 */ sw $a0, 0x20($sp) -/* 0CEE1C 800CE21C 0C033594 */ jal __osSiGetAccess -/* 0CEE20 800CE220 AFA0001C */ sw $zero, 0x1c($sp) -/* 0CEE24 800CE224 8FA40020 */ lw $a0, 0x20($sp) -/* 0CEE28 800CE228 0C033A0F */ jal __osEepStatus -/* 0CEE2C 800CE22C 27A50018 */ addiu $a1, $sp, 0x18 -/* 0CEE30 800CE230 AFA2001C */ sw $v0, 0x1c($sp) -/* 0CEE34 800CE234 8FAE001C */ lw $t6, 0x1c($sp) -/* 0CEE38 800CE238 15C00008 */ bnez $t6, .L800CE25C -/* 0CEE3C 800CE23C 00000000 */ nop -/* 0CEE40 800CE240 97AF0018 */ lhu $t7, 0x18($sp) -/* 0CEE44 800CE244 31F88000 */ andi $t8, $t7, 0x8000 -/* 0CEE48 800CE248 13000004 */ beqz $t8, .L800CE25C -/* 0CEE4C 800CE24C 00000000 */ nop -/* 0CEE50 800CE250 24190001 */ li $t9, 1 -/* 0CEE54 800CE254 10000002 */ b .L800CE260 -/* 0CEE58 800CE258 AFB9001C */ sw $t9, 0x1c($sp) -.L800CE25C: -/* 0CEE5C 800CE25C AFA0001C */ sw $zero, 0x1c($sp) -.L800CE260: -/* 0CEE60 800CE260 0C0335A5 */ jal __osSiRelAccess -/* 0CEE64 800CE264 00000000 */ nop -/* 0CEE68 800CE268 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CEE6C 800CE26C 8FA2001C */ lw $v0, 0x1c($sp) -/* 0CEE70 800CE270 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0CEE74 800CE274 03E00008 */ jr $ra -/* 0CEE78 800CE278 00000000 */ nop - -/* 0CEE7C 800CE27C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CF070/__osPackEepReadData.s b/lib/asm/non_matchings/unknown_0CF070/__osPackEepReadData.s deleted file mode 100644 index ff0e6f42..00000000 --- a/lib/asm/non_matchings/unknown_0CF070/__osPackEepReadData.s +++ /dev/null @@ -1,74 +0,0 @@ -glabel __osPackEepReadData -/* 0CF070 800CE470 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0CF074 800CE474 3C0E8013 */ lui $t6, %hi(__osEepPifRam) # $t6, 0x8013 -/* 0CF078 800CE478 25CECE40 */ addiu $t6, %lo(__osEepPifRam) # addiu $t6, $t6, -0x31c0 -/* 0CF07C 800CE47C 308400FF */ andi $a0, $a0, 0xff -/* 0CF080 800CE480 AFAE0014 */ sw $t6, 0x14($sp) -/* 0CF084 800CE484 AFA00004 */ sw $zero, 4($sp) -.L800CE488: -/* 0CF088 800CE488 8FB80004 */ lw $t8, 4($sp) -/* 0CF08C 800CE48C 8FA80004 */ lw $t0, 4($sp) -/* 0CF090 800CE490 3C018013 */ lui $at, %hi(__osEepPifRam) # $at, 0x8013 -/* 0CF094 800CE494 0018C880 */ sll $t9, $t8, 2 -/* 0CF098 800CE498 00390821 */ addu $at, $at, $t9 -/* 0CF09C 800CE49C 240F00FF */ li $t7, 255 -/* 0CF0A0 800CE4A0 AC2FCE40 */ sw $t7, %lo(__osEepPifRam)($at) -/* 0CF0A4 800CE4A4 25090001 */ addiu $t1, $t0, 1 -/* 0CF0A8 800CE4A8 29210010 */ slti $at, $t1, 0x10 -/* 0CF0AC 800CE4AC 1420FFF6 */ bnez $at, .L800CE488 -/* 0CF0B0 800CE4B0 AFA90004 */ sw $t1, 4($sp) -/* 0CF0B4 800CE4B4 240A0001 */ li $t2, 1 -/* 0CF0B8 800CE4B8 3C018013 */ lui $at, %hi(D_8012CE7C) # $at, 0x8013 -/* 0CF0BC 800CE4BC 240B0002 */ li $t3, 2 -/* 0CF0C0 800CE4C0 240C0008 */ li $t4, 8 -/* 0CF0C4 800CE4C4 240D0004 */ li $t5, 4 -/* 0CF0C8 800CE4C8 AC2ACE7C */ sw $t2, %lo(D_8012CE7C)($at) -/* 0CF0CC 800CE4CC A3AB0008 */ sb $t3, 8($sp) -/* 0CF0D0 800CE4D0 A3AC0009 */ sb $t4, 9($sp) -/* 0CF0D4 800CE4D4 A3AD000A */ sb $t5, 0xa($sp) -/* 0CF0D8 800CE4D8 A3A4000B */ sb $a0, 0xb($sp) -/* 0CF0DC 800CE4DC AFA00004 */ sw $zero, 4($sp) -.L800CE4E0: -/* 0CF0E0 800CE4E0 8FAE0004 */ lw $t6, 4($sp) -/* 0CF0E4 800CE4E4 03AEC021 */ addu $t8, $sp, $t6 -/* 0CF0E8 800CE4E8 A300000C */ sb $zero, 0xc($t8) -/* 0CF0EC 800CE4EC 8FAF0004 */ lw $t7, 4($sp) -/* 0CF0F0 800CE4F0 25F90001 */ addiu $t9, $t7, 1 -/* 0CF0F4 800CE4F4 2B210008 */ slti $at, $t9, 8 -/* 0CF0F8 800CE4F8 1420FFF9 */ bnez $at, .L800CE4E0 -/* 0CF0FC 800CE4FC AFB90004 */ sw $t9, 4($sp) -/* 0CF100 800CE500 AFA00004 */ sw $zero, 4($sp) -.L800CE504: -/* 0CF104 800CE504 8FA80014 */ lw $t0, 0x14($sp) -/* 0CF108 800CE508 A1000000 */ sb $zero, ($t0) -/* 0CF10C 800CE50C 8FAB0004 */ lw $t3, 4($sp) -/* 0CF110 800CE510 8FA90014 */ lw $t1, 0x14($sp) -/* 0CF114 800CE514 256C0001 */ addiu $t4, $t3, 1 -/* 0CF118 800CE518 29810004 */ slti $at, $t4, 4 -/* 0CF11C 800CE51C 252A0001 */ addiu $t2, $t1, 1 -/* 0CF120 800CE520 AFAC0004 */ sw $t4, 4($sp) -/* 0CF124 800CE524 1420FFF7 */ bnez $at, .L800CE504 -/* 0CF128 800CE528 AFAA0014 */ sw $t2, 0x14($sp) -/* 0CF12C 800CE52C 27AE0008 */ addiu $t6, $sp, 8 -/* 0CF130 800CE530 8DC10000 */ lw $at, ($t6) -/* 0CF134 800CE534 8FAD0014 */ lw $t5, 0x14($sp) -/* 0CF138 800CE538 240900FE */ li $t1, 254 -/* 0CF13C 800CE53C A9A10000 */ swl $at, ($t5) -/* 0CF140 800CE540 B9A10003 */ swr $at, 3($t5) -/* 0CF144 800CE544 8DCF0004 */ lw $t7, 4($t6) -/* 0CF148 800CE548 A9AF0004 */ swl $t7, 4($t5) -/* 0CF14C 800CE54C B9AF0007 */ swr $t7, 7($t5) -/* 0CF150 800CE550 8DC10008 */ lw $at, 8($t6) -/* 0CF154 800CE554 A9A10008 */ swl $at, 8($t5) -/* 0CF158 800CE558 B9A1000B */ swr $at, 0xb($t5) -/* 0CF15C 800CE55C 8FB90014 */ lw $t9, 0x14($sp) -/* 0CF160 800CE560 2728000C */ addiu $t0, $t9, 0xc -/* 0CF164 800CE564 AFA80014 */ sw $t0, 0x14($sp) -/* 0CF168 800CE568 A1090000 */ sb $t1, ($t0) -/* 0CF16C 800CE56C 03E00008 */ jr $ra -/* 0CF170 800CE570 27BD0018 */ addiu $sp, $sp, 0x18 - -/* 0CF174 800CE574 00000000 */ nop -/* 0CF178 800CE578 00000000 */ nop -/* 0CF17C 800CE57C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D0130/osPfsNumFiles.s b/lib/asm/non_matchings/unknown_0D0130/osPfsNumFiles.s deleted file mode 100644 index 6fecb5b7..00000000 --- a/lib/asm/non_matchings/unknown_0D0130/osPfsNumFiles.s +++ /dev/null @@ -1,95 +0,0 @@ -glabel osPfsNumFiles -/* 0D0F90 800D0390 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 0D0F94 800D0394 AFA40048 */ sw $a0, 0x48($sp) -/* 0D0F98 800D0398 8FAE0048 */ lw $t6, 0x48($sp) -/* 0D0F9C 800D039C AFBF0014 */ sw $ra, 0x14($sp) -/* 0D0FA0 800D03A0 AFA5004C */ sw $a1, 0x4c($sp) -/* 0D0FA4 800D03A4 AFA60050 */ sw $a2, 0x50($sp) -/* 0D0FA8 800D03A8 AFA0001C */ sw $zero, 0x1c($sp) -/* 0D0FAC 800D03AC 8DCF0000 */ lw $t7, ($t6) -/* 0D0FB0 800D03B0 31F80001 */ andi $t8, $t7, 1 -/* 0D0FB4 800D03B4 17000003 */ bnez $t8, .L800D03C4 -/* 0D0FB8 800D03B8 00000000 */ nop -/* 0D0FBC 800D03BC 10000041 */ b .L800D04C4 -/* 0D0FC0 800D03C0 24020005 */ li $v0, 5 -.L800D03C4: -/* 0D0FC4 800D03C4 0C0356F0 */ jal __osCheckId -/* 0D0FC8 800D03C8 8FA40048 */ lw $a0, 0x48($sp) -/* 0D0FCC 800D03CC 24010002 */ li $at, 2 -/* 0D0FD0 800D03D0 14410003 */ bne $v0, $at, .L800D03E0 -/* 0D0FD4 800D03D4 00000000 */ nop -/* 0D0FD8 800D03D8 1000003A */ b .L800D04C4 -/* 0D0FDC 800D03DC 24020002 */ li $v0, 2 -.L800D03E0: -/* 0D0FE0 800D03E0 8FB90048 */ lw $t9, 0x48($sp) -/* 0D0FE4 800D03E4 93280065 */ lbu $t0, 0x65($t9) -/* 0D0FE8 800D03E8 1100000A */ beqz $t0, .L800D0414 -/* 0D0FEC 800D03EC 00000000 */ nop -/* 0D0FF0 800D03F0 A3200065 */ sb $zero, 0x65($t9) -/* 0D0FF4 800D03F4 0C0357F7 */ jal __osPfsSelectBank -/* 0D0FF8 800D03F8 8FA40048 */ lw $a0, 0x48($sp) -/* 0D0FFC 800D03FC AFA20040 */ sw $v0, 0x40($sp) -/* 0D1000 800D0400 8FA90040 */ lw $t1, 0x40($sp) -/* 0D1004 800D0404 11200003 */ beqz $t1, .L800D0414 -/* 0D1008 800D0408 00000000 */ nop -/* 0D100C 800D040C 1000002D */ b .L800D04C4 -/* 0D1010 800D0410 01201025 */ move $v0, $t1 -.L800D0414: -/* 0D1014 800D0414 8FAA0048 */ lw $t2, 0x48($sp) -/* 0D1018 800D0418 AFA00044 */ sw $zero, 0x44($sp) -/* 0D101C 800D041C 8D4B0050 */ lw $t3, 0x50($t2) -/* 0D1020 800D0420 19600020 */ blez $t3, .L800D04A4 -/* 0D1024 800D0424 00000000 */ nop -.L800D0428: -/* 0D1028 800D0428 8FAC0048 */ lw $t4, 0x48($sp) -/* 0D102C 800D042C 8FAE0044 */ lw $t6, 0x44($sp) -/* 0D1030 800D0430 27A70020 */ addiu $a3, $sp, 0x20 -/* 0D1034 800D0434 8D8D005C */ lw $t5, 0x5c($t4) -/* 0D1038 800D0438 8D840004 */ lw $a0, 4($t4) -/* 0D103C 800D043C 8D850008 */ lw $a1, 8($t4) -/* 0D1040 800D0440 0C033728 */ jal __osContRamRead -/* 0D1044 800D0444 01AE3021 */ addu $a2, $t5, $t6 -/* 0D1048 800D0448 AFA20040 */ sw $v0, 0x40($sp) -/* 0D104C 800D044C 8FAF0040 */ lw $t7, 0x40($sp) -/* 0D1050 800D0450 11E00003 */ beqz $t7, .L800D0460 -/* 0D1054 800D0454 00000000 */ nop -/* 0D1058 800D0458 1000001A */ b .L800D04C4 -/* 0D105C 800D045C 01E01025 */ move $v0, $t7 -.L800D0460: -/* 0D1060 800D0460 97B80024 */ lhu $t8, 0x24($sp) -/* 0D1064 800D0464 13000007 */ beqz $t8, .L800D0484 -/* 0D1068 800D0468 00000000 */ nop -/* 0D106C 800D046C 8FA80020 */ lw $t0, 0x20($sp) -/* 0D1070 800D0470 11000004 */ beqz $t0, .L800D0484 -/* 0D1074 800D0474 00000000 */ nop -/* 0D1078 800D0478 8FB9001C */ lw $t9, 0x1c($sp) -/* 0D107C 800D047C 27290001 */ addiu $t1, $t9, 1 -/* 0D1080 800D0480 AFA9001C */ sw $t1, 0x1c($sp) -.L800D0484: -/* 0D1084 800D0484 8FAA0044 */ lw $t2, 0x44($sp) -/* 0D1088 800D0488 8FAC0048 */ lw $t4, 0x48($sp) -/* 0D108C 800D048C 254B0001 */ addiu $t3, $t2, 1 -/* 0D1090 800D0490 AFAB0044 */ sw $t3, 0x44($sp) -/* 0D1094 800D0494 8D8D0050 */ lw $t5, 0x50($t4) -/* 0D1098 800D0498 016D082A */ slt $at, $t3, $t5 -/* 0D109C 800D049C 1420FFE2 */ bnez $at, .L800D0428 -/* 0D10A0 800D04A0 00000000 */ nop -.L800D04A4: -/* 0D10A4 800D04A4 8FAE001C */ lw $t6, 0x1c($sp) -/* 0D10A8 800D04A8 8FAF0050 */ lw $t7, 0x50($sp) -/* 0D10AC 800D04AC 00001025 */ move $v0, $zero -/* 0D10B0 800D04B0 ADEE0000 */ sw $t6, ($t7) -/* 0D10B4 800D04B4 8FB80048 */ lw $t8, 0x48($sp) -/* 0D10B8 800D04B8 8FB9004C */ lw $t9, 0x4c($sp) -/* 0D10BC 800D04BC 8F080050 */ lw $t0, 0x50($t8) -/* 0D10C0 800D04C0 AF280000 */ sw $t0, ($t9) -.L800D04C4: -/* 0D10C4 800D04C4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D10C8 800D04C8 27BD0048 */ addiu $sp, $sp, 0x48 -/* 0D10CC 800D04CC 03E00008 */ jr $ra -/* 0D10D0 800D04D0 00000000 */ nop - -/* 0D10D4 800D04D4 00000000 */ nop -/* 0D10D8 800D04D8 00000000 */ nop -/* 0D10DC 800D04DC 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D0130/osPfsReFormat.s b/lib/asm/non_matchings/unknown_0D0130/osPfsReFormat.s deleted file mode 100644 index e82c3b0d..00000000 --- a/lib/asm/non_matchings/unknown_0D0130/osPfsReFormat.s +++ /dev/null @@ -1,279 +0,0 @@ -glabel osPfsReFormat -/* 0D0B90 800CFF90 27BDFEB0 */ addiu $sp, $sp, -0x150 -/* 0D0B94 800CFF94 AFBF001C */ sw $ra, 0x1c($sp) -/* 0D0B98 800CFF98 AFA40150 */ sw $a0, 0x150($sp) -/* 0D0B9C 800CFF9C AFA50154 */ sw $a1, 0x154($sp) -/* 0D0BA0 800CFFA0 0C033594 */ jal __osSiGetAccess -/* 0D0BA4 800CFFA4 AFA60158 */ sw $a2, 0x158($sp) -/* 0D0BA8 800CFFA8 8FA40154 */ lw $a0, 0x154($sp) -/* 0D0BAC 800CFFAC 0C033B75 */ jal __osPfsGetStatus -/* 0D0BB0 800CFFB0 8FA50158 */ lw $a1, 0x158($sp) -/* 0D0BB4 800CFFB4 AFA20020 */ sw $v0, 0x20($sp) -/* 0D0BB8 800CFFB8 8FAE0020 */ lw $t6, 0x20($sp) -/* 0D0BBC 800CFFBC 11C00003 */ beqz $t6, .L800CFFCC -/* 0D0BC0 800CFFC0 00000000 */ nop -/* 0D0BC4 800CFFC4 100000EE */ b .L800D0380 -/* 0D0BC8 800CFFC8 01C01025 */ move $v0, $t6 -.L800CFFCC: -/* 0D0BCC 800CFFCC 8FAF0150 */ lw $t7, 0x150($sp) -/* 0D0BD0 800CFFD0 8DF80000 */ lw $t8, ($t7) -/* 0D0BD4 800CFFD4 3B190001 */ xori $t9, $t8, 1 -/* 0D0BD8 800CFFD8 ADF90000 */ sw $t9, ($t7) -/* 0D0BDC 800CFFDC 8FA90150 */ lw $t1, 0x150($sp) -/* 0D0BE0 800CFFE0 8FA80154 */ lw $t0, 0x154($sp) -/* 0D0BE4 800CFFE4 AD280004 */ sw $t0, 4($t1) -/* 0D0BE8 800CFFE8 8FAB0150 */ lw $t3, 0x150($sp) -/* 0D0BEC 800CFFEC 8FAA0158 */ lw $t2, 0x158($sp) -/* 0D0BF0 800CFFF0 0C0335A5 */ jal __osSiRelAccess -/* 0D0BF4 800CFFF4 AD6A0008 */ sw $t2, 8($t3) -/* 0D0BF8 800CFFF8 0C035659 */ jal __osGetId -/* 0D0BFC 800CFFFC 8FA40150 */ lw $a0, 0x150($sp) -/* 0D0C00 800D0000 AFA20020 */ sw $v0, 0x20($sp) -/* 0D0C04 800D0004 8FAC0020 */ lw $t4, 0x20($sp) -/* 0D0C08 800D0008 11800003 */ beqz $t4, .L800D0018 -/* 0D0C0C 800D000C 00000000 */ nop -/* 0D0C10 800D0010 100000DB */ b .L800D0380 -/* 0D0C14 800D0014 01801025 */ move $v0, $t4 -.L800D0018: -/* 0D0C18 800D0018 8FAD0150 */ lw $t5, 0x150($sp) -/* 0D0C1C 800D001C 91AE0065 */ lbu $t6, 0x65($t5) -/* 0D0C20 800D0020 11C0000A */ beqz $t6, .L800D004C -/* 0D0C24 800D0024 00000000 */ nop -/* 0D0C28 800D0028 A1A00065 */ sb $zero, 0x65($t5) -/* 0D0C2C 800D002C 0C0357F7 */ jal __osPfsSelectBank -/* 0D0C30 800D0030 8FA40150 */ lw $a0, 0x150($sp) -/* 0D0C34 800D0034 AFA20020 */ sw $v0, 0x20($sp) -/* 0D0C38 800D0038 8FB80020 */ lw $t8, 0x20($sp) -/* 0D0C3C 800D003C 13000003 */ beqz $t8, .L800D004C -/* 0D0C40 800D0040 00000000 */ nop -/* 0D0C44 800D0044 100000CE */ b .L800D0380 -/* 0D0C48 800D0048 03001025 */ move $v0, $t8 -.L800D004C: -/* 0D0C4C 800D004C AFA0014C */ sw $zero, 0x14c($sp) -.L800D0050: -/* 0D0C50 800D0050 8FB9014C */ lw $t9, 0x14c($sp) -/* 0D0C54 800D0054 03B97821 */ addu $t7, $sp, $t9 -/* 0D0C58 800D0058 A1E00028 */ sb $zero, 0x28($t7) -/* 0D0C5C 800D005C 8FA8014C */ lw $t0, 0x14c($sp) -/* 0D0C60 800D0060 25090001 */ addiu $t1, $t0, 1 -/* 0D0C64 800D0064 29210020 */ slti $at, $t1, 0x20 -/* 0D0C68 800D0068 1420FFF9 */ bnez $at, .L800D0050 -/* 0D0C6C 800D006C AFA9014C */ sw $t1, 0x14c($sp) -/* 0D0C70 800D0070 8FAA0150 */ lw $t2, 0x150($sp) -/* 0D0C74 800D0074 AFA0014C */ sw $zero, 0x14c($sp) -/* 0D0C78 800D0078 8D4B0050 */ lw $t3, 0x50($t2) -/* 0D0C7C 800D007C 19600018 */ blez $t3, .L800D00E0 -/* 0D0C80 800D0080 00000000 */ nop -.L800D0084: -/* 0D0C84 800D0084 8FAC0150 */ lw $t4, 0x150($sp) -/* 0D0C88 800D0088 8FAD014C */ lw $t5, 0x14c($sp) -/* 0D0C8C 800D008C 8FA40154 */ lw $a0, 0x154($sp) -/* 0D0C90 800D0090 8D8E005C */ lw $t6, 0x5c($t4) -/* 0D0C94 800D0094 AFA00010 */ sw $zero, 0x10($sp) -/* 0D0C98 800D0098 8FA50158 */ lw $a1, 0x158($sp) -/* 0D0C9C 800D009C 27A70028 */ addiu $a3, $sp, 0x28 -/* 0D0CA0 800D00A0 0C03363C */ jal __osContRamWrite -/* 0D0CA4 800D00A4 01CD3021 */ addu $a2, $t6, $t5 -/* 0D0CA8 800D00A8 AFA20020 */ sw $v0, 0x20($sp) -/* 0D0CAC 800D00AC 8FB80020 */ lw $t8, 0x20($sp) -/* 0D0CB0 800D00B0 13000003 */ beqz $t8, .L800D00C0 -/* 0D0CB4 800D00B4 00000000 */ nop -/* 0D0CB8 800D00B8 100000B1 */ b .L800D0380 -/* 0D0CBC 800D00BC 03001025 */ move $v0, $t8 -.L800D00C0: -/* 0D0CC0 800D00C0 8FB9014C */ lw $t9, 0x14c($sp) -/* 0D0CC4 800D00C4 8FA80150 */ lw $t0, 0x150($sp) -/* 0D0CC8 800D00C8 272F0001 */ addiu $t7, $t9, 1 -/* 0D0CCC 800D00CC AFAF014C */ sw $t7, 0x14c($sp) -/* 0D0CD0 800D00D0 8D090050 */ lw $t1, 0x50($t0) -/* 0D0CD4 800D00D4 01E9082A */ slt $at, $t7, $t1 -/* 0D0CD8 800D00D8 1420FFEA */ bnez $at, .L800D0084 -/* 0D0CDC 800D00DC 00000000 */ nop -.L800D00E0: -/* 0D0CE0 800D00E0 8FAA0150 */ lw $t2, 0x150($sp) -/* 0D0CE4 800D00E4 AFA0014C */ sw $zero, 0x14c($sp) -/* 0D0CE8 800D00E8 8D4B0060 */ lw $t3, 0x60($t2) -/* 0D0CEC 800D00EC 1960000D */ blez $t3, .L800D0124 -/* 0D0CF0 800D00F0 00000000 */ nop -.L800D00F4: -/* 0D0CF4 800D00F4 8FAC014C */ lw $t4, 0x14c($sp) -/* 0D0CF8 800D00F8 000C7040 */ sll $t6, $t4, 1 -/* 0D0CFC 800D00FC 03AE6821 */ addu $t5, $sp, $t6 -/* 0D0D00 800D0100 A5A00048 */ sh $zero, 0x48($t5) -/* 0D0D04 800D0104 8FB8014C */ lw $t8, 0x14c($sp) -/* 0D0D08 800D0108 8FA80150 */ lw $t0, 0x150($sp) -/* 0D0D0C 800D010C 27190001 */ addiu $t9, $t8, 1 -/* 0D0D10 800D0110 AFB9014C */ sw $t9, 0x14c($sp) -/* 0D0D14 800D0114 8D0F0060 */ lw $t7, 0x60($t0) -/* 0D0D18 800D0118 032F082A */ slt $at, $t9, $t7 -/* 0D0D1C 800D011C 1420FFF5 */ bnez $at, .L800D00F4 -/* 0D0D20 800D0120 00000000 */ nop -.L800D0124: -/* 0D0D24 800D0124 8FA90150 */ lw $t1, 0x150($sp) -/* 0D0D28 800D0128 8D2A0060 */ lw $t2, 0x60($t1) -/* 0D0D2C 800D012C 29410080 */ slti $at, $t2, 0x80 -/* 0D0D30 800D0130 1020000B */ beqz $at, .L800D0160 -/* 0D0D34 800D0134 AFAA014C */ sw $t2, 0x14c($sp) -.L800D0138: -/* 0D0D38 800D0138 8FAC014C */ lw $t4, 0x14c($sp) -/* 0D0D3C 800D013C 240B0003 */ li $t3, 3 -/* 0D0D40 800D0140 000C7040 */ sll $t6, $t4, 1 -/* 0D0D44 800D0144 03AE6821 */ addu $t5, $sp, $t6 -/* 0D0D48 800D0148 A5AB0048 */ sh $t3, 0x48($t5) -/* 0D0D4C 800D014C 8FB8014C */ lw $t8, 0x14c($sp) -/* 0D0D50 800D0150 27080001 */ addiu $t0, $t8, 1 -/* 0D0D54 800D0154 29010080 */ slti $at, $t0, 0x80 -/* 0D0D58 800D0158 1420FFF7 */ bnez $at, .L800D0138 -/* 0D0D5C 800D015C AFA8014C */ sw $t0, 0x14c($sp) -.L800D0160: -/* 0D0D60 800D0160 8FB90150 */ lw $t9, 0x150($sp) -/* 0D0D64 800D0164 27AA0048 */ addiu $t2, $sp, 0x48 -/* 0D0D68 800D0168 8F2F0060 */ lw $t7, 0x60($t9) -/* 0D0D6C 800D016C 000F2823 */ negu $a1, $t7 -/* 0D0D70 800D0170 00056040 */ sll $t4, $a1, 1 -/* 0D0D74 800D0174 01802825 */ move $a1, $t4 -/* 0D0D78 800D0178 000F4840 */ sll $t1, $t7, 1 -/* 0D0D7C 800D017C 012A2021 */ addu $a0, $t1, $t2 -/* 0D0D80 800D0180 0C0354BC */ jal __osSumcalc -/* 0D0D84 800D0184 24A50100 */ addiu $a1, $a1, 0x100 -/* 0D0D88 800D0188 27AB0048 */ addiu $t3, $sp, 0x48 -/* 0D0D8C 800D018C A5620000 */ sh $v0, ($t3) -/* 0D0D90 800D0190 27AE0048 */ addiu $t6, $sp, 0x48 -/* 0D0D94 800D0194 AFAE0024 */ sw $t6, 0x24($sp) -/* 0D0D98 800D0198 AFA0014C */ sw $zero, 0x14c($sp) -.L800D019C: -/* 0D0D9C 800D019C 8FAD0150 */ lw $t5, 0x150($sp) -/* 0D0DA0 800D01A0 8FA8014C */ lw $t0, 0x14c($sp) -/* 0D0DA4 800D01A4 8FA90024 */ lw $t1, 0x24($sp) -/* 0D0DA8 800D01A8 8DB80054 */ lw $t8, 0x54($t5) -/* 0D0DAC 800D01AC 0008C940 */ sll $t9, $t0, 5 -/* 0D0DB0 800D01B0 AFA00010 */ sw $zero, 0x10($sp) -/* 0D0DB4 800D01B4 8FA40154 */ lw $a0, 0x154($sp) -/* 0D0DB8 800D01B8 8FA50158 */ lw $a1, 0x158($sp) -/* 0D0DBC 800D01BC 03293821 */ addu $a3, $t9, $t1 -/* 0D0DC0 800D01C0 0C03363C */ jal __osContRamWrite -/* 0D0DC4 800D01C4 03083021 */ addu $a2, $t8, $t0 -/* 0D0DC8 800D01C8 AFA20020 */ sw $v0, 0x20($sp) -/* 0D0DCC 800D01CC 8FAA0020 */ lw $t2, 0x20($sp) -/* 0D0DD0 800D01D0 11400003 */ beqz $t2, .L800D01E0 -/* 0D0DD4 800D01D4 00000000 */ nop -/* 0D0DD8 800D01D8 10000069 */ b .L800D0380 -/* 0D0DDC 800D01DC 01401025 */ move $v0, $t2 -.L800D01E0: -/* 0D0DE0 800D01E0 8FAF0150 */ lw $t7, 0x150($sp) -/* 0D0DE4 800D01E4 8FAB014C */ lw $t3, 0x14c($sp) -/* 0D0DE8 800D01E8 8FAD0024 */ lw $t5, 0x24($sp) -/* 0D0DEC 800D01EC 8DEC0058 */ lw $t4, 0x58($t7) -/* 0D0DF0 800D01F0 000B7140 */ sll $t6, $t3, 5 -/* 0D0DF4 800D01F4 AFA00010 */ sw $zero, 0x10($sp) -/* 0D0DF8 800D01F8 8FA40154 */ lw $a0, 0x154($sp) -/* 0D0DFC 800D01FC 8FA50158 */ lw $a1, 0x158($sp) -/* 0D0E00 800D0200 01CD3821 */ addu $a3, $t6, $t5 -/* 0D0E04 800D0204 0C03363C */ jal __osContRamWrite -/* 0D0E08 800D0208 018B3021 */ addu $a2, $t4, $t3 -/* 0D0E0C 800D020C AFA20020 */ sw $v0, 0x20($sp) -/* 0D0E10 800D0210 8FB80020 */ lw $t8, 0x20($sp) -/* 0D0E14 800D0214 13000003 */ beqz $t8, .L800D0224 -/* 0D0E18 800D0218 00000000 */ nop -/* 0D0E1C 800D021C 10000058 */ b .L800D0380 -/* 0D0E20 800D0220 03001025 */ move $v0, $t8 -.L800D0224: -/* 0D0E24 800D0224 8FA8014C */ lw $t0, 0x14c($sp) -/* 0D0E28 800D0228 25190001 */ addiu $t9, $t0, 1 -/* 0D0E2C 800D022C 2B210008 */ slti $at, $t9, 8 -/* 0D0E30 800D0230 1420FFDA */ bnez $at, .L800D019C -/* 0D0E34 800D0234 AFB9014C */ sw $t9, 0x14c($sp) -/* 0D0E38 800D0238 8FAA0150 */ lw $t2, 0x150($sp) -/* 0D0E3C 800D023C 24090001 */ li $t1, 1 -/* 0D0E40 800D0240 AFA90148 */ sw $t1, 0x148($sp) -/* 0D0E44 800D0244 914F0064 */ lbu $t7, 0x64($t2) -/* 0D0E48 800D0248 29E10002 */ slti $at, $t7, 2 -/* 0D0E4C 800D024C 1420004B */ bnez $at, .L800D037C -/* 0D0E50 800D0250 00000000 */ nop -.L800D0254: -/* 0D0E54 800D0254 240C0001 */ li $t4, 1 -/* 0D0E58 800D0258 AFAC014C */ sw $t4, 0x14c($sp) -.L800D025C: -/* 0D0E5C 800D025C 8FAE014C */ lw $t6, 0x14c($sp) -/* 0D0E60 800D0260 240B0003 */ li $t3, 3 -/* 0D0E64 800D0264 000E6840 */ sll $t5, $t6, 1 -/* 0D0E68 800D0268 03ADC021 */ addu $t8, $sp, $t5 -/* 0D0E6C 800D026C A70B0048 */ sh $t3, 0x48($t8) -/* 0D0E70 800D0270 8FA8014C */ lw $t0, 0x14c($sp) -/* 0D0E74 800D0274 25190001 */ addiu $t9, $t0, 1 -/* 0D0E78 800D0278 2B210080 */ slti $at, $t9, 0x80 -/* 0D0E7C 800D027C 1420FFF7 */ bnez $at, .L800D025C -/* 0D0E80 800D0280 AFB9014C */ sw $t9, 0x14c($sp) -/* 0D0E84 800D0284 27A40048 */ addiu $a0, $sp, 0x48 -/* 0D0E88 800D0288 24840002 */ addiu $a0, $a0, 2 -/* 0D0E8C 800D028C 0C0354BC */ jal __osSumcalc -/* 0D0E90 800D0290 240500FE */ li $a1, 254 -/* 0D0E94 800D0294 27A90048 */ addiu $t1, $sp, 0x48 -/* 0D0E98 800D0298 A5220000 */ sh $v0, ($t1) -/* 0D0E9C 800D029C 27AA0048 */ addiu $t2, $sp, 0x48 -/* 0D0EA0 800D02A0 AFAA0024 */ sw $t2, 0x24($sp) -/* 0D0EA4 800D02A4 AFA0014C */ sw $zero, 0x14c($sp) -.L800D02A8: -/* 0D0EA8 800D02A8 8FAF0150 */ lw $t7, 0x150($sp) -/* 0D0EAC 800D02AC 8FAE0148 */ lw $t6, 0x148($sp) -/* 0D0EB0 800D02B0 8FB8014C */ lw $t8, 0x14c($sp) -/* 0D0EB4 800D02B4 8DEC0054 */ lw $t4, 0x54($t7) -/* 0D0EB8 800D02B8 8FB90024 */ lw $t9, 0x24($sp) -/* 0D0EBC 800D02BC 000E58C0 */ sll $t3, $t6, 3 -/* 0D0EC0 800D02C0 00184140 */ sll $t0, $t8, 5 -/* 0D0EC4 800D02C4 018B6821 */ addu $t5, $t4, $t3 -/* 0D0EC8 800D02C8 AFA00010 */ sw $zero, 0x10($sp) -/* 0D0ECC 800D02CC 8FA40154 */ lw $a0, 0x154($sp) -/* 0D0ED0 800D02D0 8FA50158 */ lw $a1, 0x158($sp) -/* 0D0ED4 800D02D4 01B83021 */ addu $a2, $t5, $t8 -/* 0D0ED8 800D02D8 0C03363C */ jal __osContRamWrite -/* 0D0EDC 800D02DC 01193821 */ addu $a3, $t0, $t9 -/* 0D0EE0 800D02E0 AFA20020 */ sw $v0, 0x20($sp) -/* 0D0EE4 800D02E4 8FA90020 */ lw $t1, 0x20($sp) -/* 0D0EE8 800D02E8 11200003 */ beqz $t1, .L800D02F8 -/* 0D0EEC 800D02EC 00000000 */ nop -/* 0D0EF0 800D02F0 10000023 */ b .L800D0380 -/* 0D0EF4 800D02F4 01201025 */ move $v0, $t1 -.L800D02F8: -/* 0D0EF8 800D02F8 8FAA0150 */ lw $t2, 0x150($sp) -/* 0D0EFC 800D02FC 8FAE0148 */ lw $t6, 0x148($sp) -/* 0D0F00 800D0300 8FAD014C */ lw $t5, 0x14c($sp) -/* 0D0F04 800D0304 8D4F0058 */ lw $t7, 0x58($t2) -/* 0D0F08 800D0308 8FA80024 */ lw $t0, 0x24($sp) -/* 0D0F0C 800D030C 000E60C0 */ sll $t4, $t6, 3 -/* 0D0F10 800D0310 000DC140 */ sll $t8, $t5, 5 -/* 0D0F14 800D0314 01EC5821 */ addu $t3, $t7, $t4 -/* 0D0F18 800D0318 AFA00010 */ sw $zero, 0x10($sp) -/* 0D0F1C 800D031C 8FA40154 */ lw $a0, 0x154($sp) -/* 0D0F20 800D0320 8FA50158 */ lw $a1, 0x158($sp) -/* 0D0F24 800D0324 016D3021 */ addu $a2, $t3, $t5 -/* 0D0F28 800D0328 0C03363C */ jal __osContRamWrite -/* 0D0F2C 800D032C 03083821 */ addu $a3, $t8, $t0 -/* 0D0F30 800D0330 AFA20020 */ sw $v0, 0x20($sp) -/* 0D0F34 800D0334 8FB90020 */ lw $t9, 0x20($sp) -/* 0D0F38 800D0338 13200003 */ beqz $t9, .L800D0348 -/* 0D0F3C 800D033C 00000000 */ nop -/* 0D0F40 800D0340 1000000F */ b .L800D0380 -/* 0D0F44 800D0344 03201025 */ move $v0, $t9 -.L800D0348: -/* 0D0F48 800D0348 8FA9014C */ lw $t1, 0x14c($sp) -/* 0D0F4C 800D034C 252A0001 */ addiu $t2, $t1, 1 -/* 0D0F50 800D0350 29410008 */ slti $at, $t2, 8 -/* 0D0F54 800D0354 1420FFD4 */ bnez $at, .L800D02A8 -/* 0D0F58 800D0358 AFAA014C */ sw $t2, 0x14c($sp) -/* 0D0F5C 800D035C 8FAE0148 */ lw $t6, 0x148($sp) -/* 0D0F60 800D0360 8FAC0150 */ lw $t4, 0x150($sp) -/* 0D0F64 800D0364 25CF0001 */ addiu $t7, $t6, 1 -/* 0D0F68 800D0368 AFAF0148 */ sw $t7, 0x148($sp) -/* 0D0F6C 800D036C 918B0064 */ lbu $t3, 0x64($t4) -/* 0D0F70 800D0370 01EB082A */ slt $at, $t7, $t3 -/* 0D0F74 800D0374 1420FFB7 */ bnez $at, .L800D0254 -/* 0D0F78 800D0378 00000000 */ nop -.L800D037C: -/* 0D0F7C 800D037C 00001025 */ move $v0, $zero -.L800D0380: -/* 0D0F80 800D0380 8FBF001C */ lw $ra, 0x1c($sp) -/* 0D0F84 800D0384 27BD0150 */ addiu $sp, $sp, 0x150 -/* 0D0F88 800D0388 03E00008 */ jr $ra -/* 0D0F8C 800D038C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D10E0/memzero.s b/lib/asm/non_matchings/unknown_0D10E0/bzero.s similarity index 99% rename from lib/asm/non_matchings/unknown_0D10E0/memzero.s rename to lib/asm/non_matchings/unknown_0D10E0/bzero.s index 36180d98..d62c4bca 100644 --- a/lib/asm/non_matchings/unknown_0D10E0/memzero.s +++ b/lib/asm/non_matchings/unknown_0D10E0/bzero.s @@ -1,4 +1,4 @@ -glabel memzero +glabel bzero /* 0D10E0 800D04E0 28A1000C */ slti $at, $a1, 0xc /* 0D10E4 800D04E4 1420001D */ bnez $at, .L800D055C /* 0D10E8 800D04E8 00041823 */ negu $v1, $a0 diff --git a/lib/asm/non_matchings/unknown_0D1A80/osPfsFindFile.s b/lib/asm/non_matchings/unknown_0D1A80/osPfsFindFile.s deleted file mode 100644 index eee24ea8..00000000 --- a/lib/asm/non_matchings/unknown_0D1A80/osPfsFindFile.s +++ /dev/null @@ -1,127 +0,0 @@ -glabel osPfsFindFile -/* 0D1A80 800D0E80 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 0D1A84 800D0E84 AFBF0014 */ sw $ra, 0x14($sp) -/* 0D1A88 800D0E88 AFA40048 */ sw $a0, 0x48($sp) -/* 0D1A8C 800D0E8C AFA5004C */ sw $a1, 0x4c($sp) -/* 0D1A90 800D0E90 AFA60050 */ sw $a2, 0x50($sp) -/* 0D1A94 800D0E94 AFA70054 */ sw $a3, 0x54($sp) -/* 0D1A98 800D0E98 AFA0001C */ sw $zero, 0x1c($sp) -/* 0D1A9C 800D0E9C 0C0356F0 */ jal __osCheckId -/* 0D1AA0 800D0EA0 8FA40048 */ lw $a0, 0x48($sp) -/* 0D1AA4 800D0EA4 24010002 */ li $at, 2 -/* 0D1AA8 800D0EA8 14410003 */ bne $v0, $at, .L800D0EB8 -/* 0D1AAC 800D0EAC 00000000 */ nop -/* 0D1AB0 800D0EB0 1000005C */ b .L800D1024 -/* 0D1AB4 800D0EB4 24020002 */ li $v0, 2 -.L800D0EB8: -/* 0D1AB8 800D0EB8 8FAE0048 */ lw $t6, 0x48($sp) -/* 0D1ABC 800D0EBC AFA00044 */ sw $zero, 0x44($sp) -/* 0D1AC0 800D0EC0 8DCF0050 */ lw $t7, 0x50($t6) -/* 0D1AC4 800D0EC4 19E00053 */ blez $t7, .L800D1014 -/* 0D1AC8 800D0EC8 00000000 */ nop -.L800D0ECC: -/* 0D1ACC 800D0ECC 8FB80048 */ lw $t8, 0x48($sp) -/* 0D1AD0 800D0ED0 8FA80044 */ lw $t0, 0x44($sp) -/* 0D1AD4 800D0ED4 27A70020 */ addiu $a3, $sp, 0x20 -/* 0D1AD8 800D0ED8 8F19005C */ lw $t9, 0x5c($t8) -/* 0D1ADC 800D0EDC 8F040004 */ lw $a0, 4($t8) -/* 0D1AE0 800D0EE0 8F050008 */ lw $a1, 8($t8) -/* 0D1AE4 800D0EE4 0C033728 */ jal __osContRamRead -/* 0D1AE8 800D0EE8 03283021 */ addu $a2, $t9, $t0 -/* 0D1AEC 800D0EEC AFA2001C */ sw $v0, 0x1c($sp) -/* 0D1AF0 800D0EF0 8FA9001C */ lw $t1, 0x1c($sp) -/* 0D1AF4 800D0EF4 11200003 */ beqz $t1, .L800D0F04 -/* 0D1AF8 800D0EF8 00000000 */ nop -/* 0D1AFC 800D0EFC 10000049 */ b .L800D1024 -/* 0D1B00 800D0F00 01201025 */ move $v0, $t1 -.L800D0F04: -/* 0D1B04 800D0F04 97AA0024 */ lhu $t2, 0x24($sp) -/* 0D1B08 800D0F08 97AB004E */ lhu $t3, 0x4e($sp) -/* 0D1B0C 800D0F0C 154B0039 */ bne $t2, $t3, .L800D0FF4 -/* 0D1B10 800D0F10 00000000 */ nop -/* 0D1B14 800D0F14 8FAC0020 */ lw $t4, 0x20($sp) -/* 0D1B18 800D0F18 8FAD0050 */ lw $t5, 0x50($sp) -/* 0D1B1C 800D0F1C 158D0035 */ bne $t4, $t5, .L800D0FF4 -/* 0D1B20 800D0F20 00000000 */ nop -/* 0D1B24 800D0F24 8FAE0054 */ lw $t6, 0x54($sp) -/* 0D1B28 800D0F28 AFA00018 */ sw $zero, 0x18($sp) -/* 0D1B2C 800D0F2C 11C00012 */ beqz $t6, .L800D0F78 -/* 0D1B30 800D0F30 00000000 */ nop -/* 0D1B34 800D0F34 AFA00040 */ sw $zero, 0x40($sp) -.L800D0F38: -/* 0D1B38 800D0F38 8FB80040 */ lw $t8, 0x40($sp) -/* 0D1B3C 800D0F3C 8FAF0054 */ lw $t7, 0x54($sp) -/* 0D1B40 800D0F40 03B84821 */ addu $t1, $sp, $t8 -/* 0D1B44 800D0F44 01F8C821 */ addu $t9, $t7, $t8 -/* 0D1B48 800D0F48 93280000 */ lbu $t0, ($t9) -/* 0D1B4C 800D0F4C 91290030 */ lbu $t1, 0x30($t1) -/* 0D1B50 800D0F50 11090004 */ beq $t0, $t1, .L800D0F64 -/* 0D1B54 800D0F54 00000000 */ nop -/* 0D1B58 800D0F58 240A0001 */ li $t2, 1 -/* 0D1B5C 800D0F5C 10000006 */ b .L800D0F78 -/* 0D1B60 800D0F60 AFAA0018 */ sw $t2, 0x18($sp) -.L800D0F64: -/* 0D1B64 800D0F64 8FAB0040 */ lw $t3, 0x40($sp) -/* 0D1B68 800D0F68 256C0001 */ addiu $t4, $t3, 1 -/* 0D1B6C 800D0F6C 29810010 */ slti $at, $t4, 0x10 -/* 0D1B70 800D0F70 1420FFF1 */ bnez $at, .L800D0F38 -/* 0D1B74 800D0F74 AFAC0040 */ sw $t4, 0x40($sp) -.L800D0F78: -/* 0D1B78 800D0F78 8FAD0058 */ lw $t5, 0x58($sp) -/* 0D1B7C 800D0F7C 11A00015 */ beqz $t5, .L800D0FD4 -/* 0D1B80 800D0F80 00000000 */ nop -/* 0D1B84 800D0F84 8FAE0018 */ lw $t6, 0x18($sp) -/* 0D1B88 800D0F88 15C00012 */ bnez $t6, .L800D0FD4 -/* 0D1B8C 800D0F8C 00000000 */ nop -/* 0D1B90 800D0F90 AFA00040 */ sw $zero, 0x40($sp) -.L800D0F94: -/* 0D1B94 800D0F94 8FB90040 */ lw $t9, 0x40($sp) -/* 0D1B98 800D0F98 8FAF0058 */ lw $t7, 0x58($sp) -/* 0D1B9C 800D0F9C 03B94821 */ addu $t1, $sp, $t9 -/* 0D1BA0 800D0FA0 01F9C021 */ addu $t8, $t7, $t9 -/* 0D1BA4 800D0FA4 93080000 */ lbu $t0, ($t8) -/* 0D1BA8 800D0FA8 9129002C */ lbu $t1, 0x2c($t1) -/* 0D1BAC 800D0FAC 11090004 */ beq $t0, $t1, .L800D0FC0 -/* 0D1BB0 800D0FB0 00000000 */ nop -/* 0D1BB4 800D0FB4 240A0001 */ li $t2, 1 -/* 0D1BB8 800D0FB8 10000006 */ b .L800D0FD4 -/* 0D1BBC 800D0FBC AFAA0018 */ sw $t2, 0x18($sp) -.L800D0FC0: -/* 0D1BC0 800D0FC0 8FAB0040 */ lw $t3, 0x40($sp) -/* 0D1BC4 800D0FC4 256C0001 */ addiu $t4, $t3, 1 -/* 0D1BC8 800D0FC8 29810004 */ slti $at, $t4, 4 -/* 0D1BCC 800D0FCC 1420FFF1 */ bnez $at, .L800D0F94 -/* 0D1BD0 800D0FD0 AFAC0040 */ sw $t4, 0x40($sp) -.L800D0FD4: -/* 0D1BD4 800D0FD4 8FAD0018 */ lw $t5, 0x18($sp) -/* 0D1BD8 800D0FD8 15A00006 */ bnez $t5, .L800D0FF4 -/* 0D1BDC 800D0FDC 00000000 */ nop -/* 0D1BE0 800D0FE0 8FAE0044 */ lw $t6, 0x44($sp) -/* 0D1BE4 800D0FE4 8FAF005C */ lw $t7, 0x5c($sp) -/* 0D1BE8 800D0FE8 ADEE0000 */ sw $t6, ($t7) -/* 0D1BEC 800D0FEC 1000000D */ b .L800D1024 -/* 0D1BF0 800D0FF0 8FA2001C */ lw $v0, 0x1c($sp) -.L800D0FF4: -/* 0D1BF4 800D0FF4 8FB80044 */ lw $t8, 0x44($sp) -/* 0D1BF8 800D0FF8 8FA80048 */ lw $t0, 0x48($sp) -/* 0D1BFC 800D0FFC 27190001 */ addiu $t9, $t8, 1 -/* 0D1C00 800D1000 AFB90044 */ sw $t9, 0x44($sp) -/* 0D1C04 800D1004 8D090050 */ lw $t1, 0x50($t0) -/* 0D1C08 800D1008 0329082A */ slt $at, $t9, $t1 -/* 0D1C0C 800D100C 1420FFAF */ bnez $at, .L800D0ECC -/* 0D1C10 800D1010 00000000 */ nop -.L800D1014: -/* 0D1C14 800D1014 8FAB005C */ lw $t3, 0x5c($sp) -/* 0D1C18 800D1018 240AFFFF */ li $t2, -1 -/* 0D1C1C 800D101C 24020005 */ li $v0, 5 -/* 0D1C20 800D1020 AD6A0000 */ sw $t2, ($t3) -.L800D1024: -/* 0D1C24 800D1024 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D1C28 800D1028 27BD0048 */ addiu $sp, $sp, 0x48 -/* 0D1C2C 800D102C 03E00008 */ jr $ra -/* 0D1C30 800D1030 00000000 */ nop - -/* 0D1C34 800D1034 00000000 */ nop -/* 0D1C38 800D1038 00000000 */ nop -/* 0D1C3C 800D103C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D24D0/func_800D18D0.s b/lib/asm/non_matchings/unknown_0D24D0/func_800D18D0.s deleted file mode 100644 index c27be119..00000000 --- a/lib/asm/non_matchings/unknown_0D24D0/func_800D18D0.s +++ /dev/null @@ -1,7 +0,0 @@ -glabel func_800D18D0 -/* 0D24D0 800D18D0 3C0EA410 */ lui $t6, 0xa410 -/* 0D24D4 800D18D4 03E00008 */ jr $ra -/* 0D24D8 800D18D8 8DC2000C */ lw $v0, 0xc($t6) - -/* 0D24DC 800D18DC 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D24E0/osDpSetNextBuffer.s b/lib/asm/non_matchings/unknown_0D24E0/osDpSetNextBuffer.s deleted file mode 100644 index 92dc8125..00000000 --- a/lib/asm/non_matchings/unknown_0D24E0/osDpSetNextBuffer.s +++ /dev/null @@ -1,50 +0,0 @@ -glabel osDpSetNextBuffer -/* 0D24E0 800D18E0 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0D24E4 800D18E4 AFBF001C */ sw $ra, 0x1c($sp) -/* 0D24E8 800D18E8 AFA40028 */ sw $a0, 0x28($sp) -/* 0D24EC 800D18EC AFA60030 */ sw $a2, 0x30($sp) -/* 0D24F0 800D18F0 AFA70034 */ sw $a3, 0x34($sp) -/* 0D24F4 800D18F4 0C035814 */ jal __osDpDeviceBusy -/* 0D24F8 800D18F8 AFB00018 */ sw $s0, 0x18($sp) -/* 0D24FC 800D18FC 10400003 */ beqz $v0, .L800D190C -/* 0D2500 800D1900 00000000 */ nop -/* 0D2504 800D1904 1000001B */ b .L800D1974 -/* 0D2508 800D1908 2402FFFF */ li $v0, -1 -.L800D190C: -/* 0D250C 800D190C 240E0001 */ li $t6, 1 -/* 0D2510 800D1910 3C0FA410 */ lui $t7, %hi(D_A410000C) # $t7, 0xa410 -/* 0D2514 800D1914 ADEE000C */ sw $t6, %lo(D_A410000C)($t7) -.L800D1918: -/* 0D2518 800D1918 3C18A410 */ lui $t8, %hi(D_A410000C) # $t8, 0xa410 -/* 0D251C 800D191C 8F10000C */ lw $s0, %lo(D_A410000C)($t8) -/* 0D2520 800D1920 32190001 */ andi $t9, $s0, 1 -/* 0D2524 800D1924 1720FFFC */ bnez $t9, .L800D1918 -/* 0D2528 800D1928 00000000 */ nop -/* 0D252C 800D192C 0C03233C */ jal osVirtualToPhysical -/* 0D2530 800D1930 8FA40028 */ lw $a0, 0x28($sp) -/* 0D2534 800D1934 3C08A410 */ lui $t0, 0xa410 -/* 0D2538 800D1938 AD020000 */ sw $v0, ($t0) -/* 0D253C 800D193C 0C03233C */ jal osVirtualToPhysical -/* 0D2540 800D1940 8FA40028 */ lw $a0, 0x28($sp) -/* 0D2544 800D1944 8FAD0034 */ lw $t5, 0x34($sp) -/* 0D2548 800D1948 00405825 */ move $t3, $v0 -/* 0D254C 800D194C 8FAC0030 */ lw $t4, 0x30($sp) -/* 0D2550 800D1950 016D7821 */ addu $t7, $t3, $t5 -/* 0D2554 800D1954 240A0000 */ li $t2, 0 -/* 0D2558 800D1958 01ED082B */ sltu $at, $t7, $t5 -/* 0D255C 800D195C 002A7021 */ addu $t6, $at, $t2 -/* 0D2560 800D1960 01E04825 */ move $t1, $t7 -/* 0D2564 800D1964 3C18A410 */ lui $t8, %hi(D_A4100004) # $t8, 0xa410 -/* 0D2568 800D1968 AF090004 */ sw $t1, %lo(D_A4100004)($t8) -/* 0D256C 800D196C 00001025 */ move $v0, $zero -/* 0D2570 800D1970 01CC7021 */ addu $t6, $t6, $t4 -.L800D1974: -/* 0D2574 800D1974 8FBF001C */ lw $ra, 0x1c($sp) -/* 0D2578 800D1978 8FB00018 */ lw $s0, 0x18($sp) -/* 0D257C 800D197C 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0D2580 800D1980 03E00008 */ jr $ra -/* 0D2584 800D1984 00000000 */ nop - -/* 0D2588 800D1988 00000000 */ nop -/* 0D258C 800D198C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D28A0/osViSetMode.s b/lib/asm/non_matchings/unknown_0D28A0/osViSetMode.s deleted file mode 100644 index 6565eed6..00000000 --- a/lib/asm/non_matchings/unknown_0D28A0/osViSetMode.s +++ /dev/null @@ -1,31 +0,0 @@ -glabel osViSetMode -/* 0D28A0 800D1CA0 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0D28A4 800D1CA4 AFBF001C */ sw $ra, 0x1c($sp) -/* 0D28A8 800D1CA8 AFA40028 */ sw $a0, 0x28($sp) -/* 0D28AC 800D1CAC 0C034958 */ jal __osDisableInt -/* 0D28B0 800D1CB0 AFB00018 */ sw $s0, 0x18($sp) -/* 0D28B4 800D1CB4 3C0F800E */ lui $t7, %hi(__osViNext) # $t7, 0x800e -/* 0D28B8 800D1CB8 8DEF4874 */ lw $t7, %lo(__osViNext)($t7) -/* 0D28BC 800D1CBC 8FAE0028 */ lw $t6, 0x28($sp) -/* 0D28C0 800D1CC0 3C19800E */ lui $t9, %hi(__osViNext) # $t9, 0x800e -/* 0D28C4 800D1CC4 24180001 */ li $t8, 1 -/* 0D28C8 800D1CC8 ADEE0008 */ sw $t6, 8($t7) -/* 0D28CC 800D1CCC 8F394874 */ lw $t9, %lo(__osViNext)($t9) -/* 0D28D0 800D1CD0 3C08800E */ lui $t0, %hi(__osViNext) # $t0, 0x800e -/* 0D28D4 800D1CD4 00408025 */ move $s0, $v0 -/* 0D28D8 800D1CD8 A7380000 */ sh $t8, ($t9) -/* 0D28DC 800D1CDC 8D084874 */ lw $t0, %lo(__osViNext)($t0) -/* 0D28E0 800D1CE0 02002025 */ move $a0, $s0 -/* 0D28E4 800D1CE4 8D090008 */ lw $t1, 8($t0) -/* 0D28E8 800D1CE8 8D2A0004 */ lw $t2, 4($t1) -/* 0D28EC 800D1CEC 0C034960 */ jal __osRestoreInt -/* 0D28F0 800D1CF0 AD0A000C */ sw $t2, 0xc($t0) -/* 0D28F4 800D1CF4 8FBF001C */ lw $ra, 0x1c($sp) -/* 0D28F8 800D1CF8 8FB00018 */ lw $s0, 0x18($sp) -/* 0D28FC 800D1CFC 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0D2900 800D1D00 03E00008 */ jr $ra -/* 0D2904 800D1D04 00000000 */ nop - -/* 0D2908 800D1D08 00000000 */ nop -/* 0D290C 800D1D0C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D2E40/osViSetSpecialFeatures.s b/lib/asm/non_matchings/unknown_0D2E40/osViSetSpecialFeatures.s deleted file mode 100644 index ca2555a8..00000000 --- a/lib/asm/non_matchings/unknown_0D2E40/osViSetSpecialFeatures.s +++ /dev/null @@ -1,123 +0,0 @@ -glabel osViSetSpecialFeatures -/* 0D2E60 800D2260 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0D2E64 800D2264 AFBF001C */ sw $ra, 0x1c($sp) -/* 0D2E68 800D2268 AFA40028 */ sw $a0, 0x28($sp) -/* 0D2E6C 800D226C 0C034958 */ jal __osDisableInt -/* 0D2E70 800D2270 AFB00018 */ sw $s0, 0x18($sp) -/* 0D2E74 800D2274 8FAE0028 */ lw $t6, 0x28($sp) -/* 0D2E78 800D2278 00408025 */ move $s0, $v0 -/* 0D2E7C 800D227C 31CF0001 */ andi $t7, $t6, 1 -/* 0D2E80 800D2280 11E00006 */ beqz $t7, .L800D229C -/* 0D2E84 800D2284 00000000 */ nop -/* 0D2E88 800D2288 3C18800E */ lui $t8, %hi(__osViNext) # $t8, 0x800e -/* 0D2E8C 800D228C 8F184874 */ lw $t8, %lo(__osViNext)($t8) -/* 0D2E90 800D2290 8F19000C */ lw $t9, 0xc($t8) -/* 0D2E94 800D2294 37280008 */ ori $t0, $t9, 8 -/* 0D2E98 800D2298 AF08000C */ sw $t0, 0xc($t8) -.L800D229C: -/* 0D2E9C 800D229C 8FA90028 */ lw $t1, 0x28($sp) -/* 0D2EA0 800D22A0 312A0002 */ andi $t2, $t1, 2 -/* 0D2EA4 800D22A4 11400007 */ beqz $t2, .L800D22C4 -/* 0D2EA8 800D22A8 00000000 */ nop -/* 0D2EAC 800D22AC 3C0B800E */ lui $t3, %hi(__osViNext) # $t3, 0x800e -/* 0D2EB0 800D22B0 8D6B4874 */ lw $t3, %lo(__osViNext)($t3) -/* 0D2EB4 800D22B4 2401FFF7 */ li $at, -9 -/* 0D2EB8 800D22B8 8D6C000C */ lw $t4, 0xc($t3) -/* 0D2EBC 800D22BC 01816824 */ and $t5, $t4, $at -/* 0D2EC0 800D22C0 AD6D000C */ sw $t5, 0xc($t3) -.L800D22C4: -/* 0D2EC4 800D22C4 8FAE0028 */ lw $t6, 0x28($sp) -/* 0D2EC8 800D22C8 31CF0004 */ andi $t7, $t6, 4 -/* 0D2ECC 800D22CC 11E00006 */ beqz $t7, .L800D22E8 -/* 0D2ED0 800D22D0 00000000 */ nop -/* 0D2ED4 800D22D4 3C19800E */ lui $t9, %hi(__osViNext) # $t9, 0x800e -/* 0D2ED8 800D22D8 8F394874 */ lw $t9, %lo(__osViNext)($t9) -/* 0D2EDC 800D22DC 8F28000C */ lw $t0, 0xc($t9) -/* 0D2EE0 800D22E0 35180004 */ ori $t8, $t0, 4 -/* 0D2EE4 800D22E4 AF38000C */ sw $t8, 0xc($t9) -.L800D22E8: -/* 0D2EE8 800D22E8 8FA90028 */ lw $t1, 0x28($sp) -/* 0D2EEC 800D22EC 312A0008 */ andi $t2, $t1, 8 -/* 0D2EF0 800D22F0 11400007 */ beqz $t2, .L800D2310 -/* 0D2EF4 800D22F4 00000000 */ nop -/* 0D2EF8 800D22F8 3C0C800E */ lui $t4, %hi(__osViNext) # $t4, 0x800e -/* 0D2EFC 800D22FC 8D8C4874 */ lw $t4, %lo(__osViNext)($t4) -/* 0D2F00 800D2300 2401FFFB */ li $at, -5 -/* 0D2F04 800D2304 8D8D000C */ lw $t5, 0xc($t4) -/* 0D2F08 800D2308 01A15824 */ and $t3, $t5, $at -/* 0D2F0C 800D230C AD8B000C */ sw $t3, 0xc($t4) -.L800D2310: -/* 0D2F10 800D2310 8FAE0028 */ lw $t6, 0x28($sp) -/* 0D2F14 800D2314 31CF0010 */ andi $t7, $t6, 0x10 -/* 0D2F18 800D2318 11E00006 */ beqz $t7, .L800D2334 -/* 0D2F1C 800D231C 00000000 */ nop -/* 0D2F20 800D2320 3C08800E */ lui $t0, %hi(__osViNext) # $t0, 0x800e -/* 0D2F24 800D2324 8D084874 */ lw $t0, %lo(__osViNext)($t0) -/* 0D2F28 800D2328 8D18000C */ lw $t8, 0xc($t0) -/* 0D2F2C 800D232C 37190010 */ ori $t9, $t8, 0x10 -/* 0D2F30 800D2330 AD19000C */ sw $t9, 0xc($t0) -.L800D2334: -/* 0D2F34 800D2334 8FA90028 */ lw $t1, 0x28($sp) -/* 0D2F38 800D2338 312A0020 */ andi $t2, $t1, 0x20 -/* 0D2F3C 800D233C 11400007 */ beqz $t2, .L800D235C -/* 0D2F40 800D2340 00000000 */ nop -/* 0D2F44 800D2344 3C0D800E */ lui $t5, %hi(__osViNext) # $t5, 0x800e -/* 0D2F48 800D2348 8DAD4874 */ lw $t5, %lo(__osViNext)($t5) -/* 0D2F4C 800D234C 2401FFEF */ li $at, -17 -/* 0D2F50 800D2350 8DAB000C */ lw $t3, 0xc($t5) -/* 0D2F54 800D2354 01616024 */ and $t4, $t3, $at -/* 0D2F58 800D2358 ADAC000C */ sw $t4, 0xc($t5) -.L800D235C: -/* 0D2F5C 800D235C 8FAE0028 */ lw $t6, 0x28($sp) -/* 0D2F60 800D2360 31CF0040 */ andi $t7, $t6, 0x40 -/* 0D2F64 800D2364 11E0000D */ beqz $t7, .L800D239C -/* 0D2F68 800D2368 00000000 */ nop -/* 0D2F6C 800D236C 3C18800E */ lui $t8, %hi(__osViNext) # $t8, 0x800e -/* 0D2F70 800D2370 8F184874 */ lw $t8, %lo(__osViNext)($t8) -/* 0D2F74 800D2374 3C010001 */ lui $at, 1 -/* 0D2F78 800D2378 3C09800E */ lui $t1, %hi(__osViNext) # $t1, 0x800e -/* 0D2F7C 800D237C 8F19000C */ lw $t9, 0xc($t8) -/* 0D2F80 800D2380 03214025 */ or $t0, $t9, $at -/* 0D2F84 800D2384 AF08000C */ sw $t0, 0xc($t8) -/* 0D2F88 800D2388 8D294874 */ lw $t1, %lo(__osViNext)($t1) -/* 0D2F8C 800D238C 2401FCFF */ li $at, -769 -/* 0D2F90 800D2390 8D2A000C */ lw $t2, 0xc($t1) -/* 0D2F94 800D2394 01415824 */ and $t3, $t2, $at -/* 0D2F98 800D2398 AD2B000C */ sw $t3, 0xc($t1) -.L800D239C: -/* 0D2F9C 800D239C 8FAC0028 */ lw $t4, 0x28($sp) -/* 0D2FA0 800D23A0 318D0080 */ andi $t5, $t4, 0x80 -/* 0D2FA4 800D23A4 11A00010 */ beqz $t5, .L800D23E8 -/* 0D2FA8 800D23A8 00000000 */ nop -/* 0D2FAC 800D23AC 3C0E800E */ lui $t6, %hi(__osViNext) # $t6, 0x800e -/* 0D2FB0 800D23B0 8DCE4874 */ lw $t6, %lo(__osViNext)($t6) -/* 0D2FB4 800D23B4 3C01FFFE */ lui $at, (0xFFFEFFFF >> 16) # lui $at, 0xfffe -/* 0D2FB8 800D23B8 3421FFFF */ ori $at, (0xFFFEFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 0D2FBC 800D23BC 8DCF000C */ lw $t7, 0xc($t6) -/* 0D2FC0 800D23C0 3C08800E */ lui $t0, %hi(__osViNext) # $t0, 0x800e -/* 0D2FC4 800D23C4 01E1C824 */ and $t9, $t7, $at -/* 0D2FC8 800D23C8 ADD9000C */ sw $t9, 0xc($t6) -/* 0D2FCC 800D23CC 8D084874 */ lw $t0, %lo(__osViNext)($t0) -/* 0D2FD0 800D23D0 8D0A0008 */ lw $t2, 8($t0) -/* 0D2FD4 800D23D4 8D18000C */ lw $t8, 0xc($t0) -/* 0D2FD8 800D23D8 8D4B0004 */ lw $t3, 4($t2) -/* 0D2FDC 800D23DC 31690300 */ andi $t1, $t3, 0x300 -/* 0D2FE0 800D23E0 03096025 */ or $t4, $t8, $t1 -/* 0D2FE4 800D23E4 AD0C000C */ sw $t4, 0xc($t0) -.L800D23E8: -/* 0D2FE8 800D23E8 3C0D800E */ lui $t5, %hi(__osViNext) # $t5, 0x800e -/* 0D2FEC 800D23EC 8DAD4874 */ lw $t5, %lo(__osViNext)($t5) -/* 0D2FF0 800D23F0 02002025 */ move $a0, $s0 -/* 0D2FF4 800D23F4 95AF0000 */ lhu $t7, ($t5) -/* 0D2FF8 800D23F8 35F90008 */ ori $t9, $t7, 8 -/* 0D2FFC 800D23FC 0C034960 */ jal __osRestoreInt -/* 0D3000 800D2400 A5B90000 */ sh $t9, ($t5) -/* 0D3004 800D2404 8FBF001C */ lw $ra, 0x1c($sp) -/* 0D3008 800D2408 8FB00018 */ lw $s0, 0x18($sp) -/* 0D300C 800D240C 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0D3010 800D2410 03E00008 */ jr $ra -/* 0D3014 800D2414 00000000 */ nop - -/* 0D3018 800D2418 00000000 */ nop -/* 0D301C 800D241C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D3020/__osInsertTimer.s b/lib/asm/non_matchings/unknown_0D3020/__osInsertTimer.s index 3969df3a..21364b12 100644 --- a/lib/asm/non_matchings/unknown_0D3020/__osInsertTimer.s +++ b/lib/asm/non_matchings/unknown_0D3020/__osInsertTimer.s @@ -3,8 +3,8 @@ glabel __osInsertTimer /* 0D5D3C 800D513C AFBF0014 */ sw $ra, 0x14($sp) /* 0D5D40 800D5140 0C034958 */ jal __osDisableInt /* 0D5D44 800D5144 AFA40038 */ sw $a0, 0x38($sp) -/* 0D5D48 800D5148 3C0E800E */ lui $t6, %hi(D_800E4910) # $t6, 0x800e -/* 0D5D4C 800D514C 8DCE4910 */ lw $t6, %lo(D_800E4910)($t6) +/* 0D5D48 800D5148 3C0E800E */ lui $t6, %hi(__osTimerList) # $t6, 0x800e +/* 0D5D4C 800D514C 8DCE4910 */ lw $t6, %lo(__osTimerList)($t6) /* 0D5D50 800D5150 AFA20024 */ sw $v0, 0x24($sp) /* 0D5D54 800D5154 8FB80038 */ lw $t8, 0x38($sp) /* 0D5D58 800D5158 8DCF0000 */ lw $t7, ($t6) @@ -31,7 +31,7 @@ glabel __osInsertTimer /* 0D5DA8 800D51A8 8F2C0000 */ lw $t4, ($t9) /* 0D5DAC 800D51AC 8F0F0014 */ lw $t7, 0x14($t8) /* 0D5DB0 800D51B0 8F0E0010 */ lw $t6, 0x10($t8) -/* 0D5DB4 800D51B4 3C18800E */ lui $t8, %hi(D_800E4910) # $t8, 0x800e +/* 0D5DB4 800D51B4 3C18800E */ lui $t8, %hi(__osTimerList) # $t8, 0x800e /* 0D5DB8 800D51B8 01AF082B */ sltu $at, $t5, $t7 /* 0D5DBC 800D51BC 018E4023 */ subu $t0, $t4, $t6 /* 0D5DC0 800D51C0 01014023 */ subu $t0, $t0, $at @@ -39,7 +39,7 @@ glabel __osInsertTimer /* 0D5DC8 800D51C8 AF290004 */ sw $t1, 4($t9) /* 0D5DCC 800D51CC AF280000 */ sw $t0, ($t9) /* 0D5DD0 800D51D0 8FAA0034 */ lw $t2, 0x34($sp) -/* 0D5DD4 800D51D4 8F184910 */ lw $t8, %lo(D_800E4910)($t8) +/* 0D5DD4 800D51D4 8F184910 */ lw $t8, %lo(__osTimerList)($t8) /* 0D5DD8 800D51D8 8D4B0000 */ lw $t3, ($t2) /* 0D5DDC 800D51DC 1178000D */ beq $t3, $t8, .L800D5214 /* 0D5DE0 800D51E0 AFAB0034 */ sw $t3, 0x34($sp) @@ -59,10 +59,10 @@ glabel __osInsertTimer /* 0D5E14 800D5214 8FB90038 */ lw $t9, 0x38($sp) /* 0D5E18 800D5218 8FA80028 */ lw $t0, 0x28($sp) /* 0D5E1C 800D521C 8FA9002C */ lw $t1, 0x2c($sp) -/* 0D5E20 800D5220 3C18800E */ lui $t8, %hi(D_800E4910) # $t8, 0x800e +/* 0D5E20 800D5220 3C18800E */ lui $t8, %hi(__osTimerList) # $t8, 0x800e /* 0D5E24 800D5224 AF280010 */ sw $t0, 0x10($t9) /* 0D5E28 800D5228 AF290014 */ sw $t1, 0x14($t9) -/* 0D5E2C 800D522C 8F184910 */ lw $t8, %lo(D_800E4910)($t8) +/* 0D5E2C 800D522C 8F184910 */ lw $t8, %lo(__osTimerList)($t8) /* 0D5E30 800D5230 8FAA0034 */ lw $t2, 0x34($sp) /* 0D5E34 800D5234 1158000D */ beq $t2, $t8, .L800D526C /* 0D5E38 800D5238 00000000 */ nop diff --git a/lib/asm/non_matchings/unknown_0D3020/__osResetGlobalIntMask.s b/lib/asm/non_matchings/unknown_0D3020/__osResetGlobalIntMask.s index 35a91e80..b6cb5ad9 100644 --- a/lib/asm/non_matchings/unknown_0D3020/__osResetGlobalIntMask.s +++ b/lib/asm/non_matchings/unknown_0D3020/__osResetGlobalIntMask.s @@ -5,15 +5,15 @@ glabel __osResetGlobalIntMask /* 0D710C 800D650C 0C034958 */ jal __osDisableInt /* 0D7110 800D6510 AFB00018 */ sw $s0, 0x18($sp) /* 0D7114 800D6514 8FAF0028 */ lw $t7, 0x28($sp) -/* 0D7118 800D6518 3C0E800E */ lui $t6, %hi(D_800E38AC) # $t6, 0x800e -/* 0D711C 800D651C 8DCE38AC */ lw $t6, %lo(D_800E38AC)($t6) +/* 0D7118 800D6518 3C0E800E */ lui $t6, %hi(__OSGlobalIntMask) # $t6, 0x800e +/* 0D711C 800D651C 8DCE38AC */ lw $t6, %lo(__OSGlobalIntMask)($t6) /* 0D7120 800D6520 2401FBFE */ li $at, -1026 /* 0D7124 800D6524 01E1C024 */ and $t8, $t7, $at /* 0D7128 800D6528 0300C827 */ not $t9, $t8 /* 0D712C 800D652C 00408025 */ move $s0, $v0 -/* 0D7130 800D6530 3C01800E */ lui $at, %hi(D_800E38AC) # $at, 0x800e +/* 0D7130 800D6530 3C01800E */ lui $at, %hi(__OSGlobalIntMask) # $at, 0x800e /* 0D7134 800D6534 01D94024 */ and $t0, $t6, $t9 -/* 0D7138 800D6538 AC2838AC */ sw $t0, %lo(D_800E38AC)($at) +/* 0D7138 800D6538 AC2838AC */ sw $t0, %lo(__OSGlobalIntMask)($at) /* 0D713C 800D653C 0C034960 */ jal __osRestoreInt /* 0D7140 800D6540 02002025 */ move $a0, $s0 /* 0D7144 800D6544 8FBF001C */ lw $ra, 0x1c($sp) diff --git a/lib/asm/non_matchings/unknown_0D3020/__osSetTimerIntr.s b/lib/asm/non_matchings/unknown_0D3020/__osSetTimerIntr.s index 20c605ab..7499371f 100644 --- a/lib/asm/non_matchings/unknown_0D3020/__osSetTimerIntr.s +++ b/lib/asm/non_matchings/unknown_0D3020/__osSetTimerIntr.s @@ -6,10 +6,10 @@ glabel __osSetTimerIntr /* 0D5CD4 800D50D4 AFA5002C */ sw $a1, 0x2c($sp) /* 0D5CD8 800D50D8 0C031E34 */ jal osGetCount /* 0D5CDC 800D50DC AFA2001C */ sw $v0, 0x1c($sp) -/* 0D5CE0 800D50E0 3C018013 */ lui $at, %hi(D_8012D230) # $at, 0x8013 -/* 0D5CE4 800D50E4 AC22D230 */ sw $v0, %lo(D_8012D230)($at) -/* 0D5CE8 800D50E8 3C0E8013 */ lui $t6, %hi(D_8012D230) # $t6, 0x8013 -/* 0D5CEC 800D50EC 8DCED230 */ lw $t6, %lo(D_8012D230)($t6) +/* 0D5CE0 800D50E0 3C018013 */ lui $at, %hi(__osTimerCounter) # $at, 0x8013 +/* 0D5CE4 800D50E4 AC22D230 */ sw $v0, %lo(__osTimerCounter)($at) +/* 0D5CE8 800D50E8 3C0E8013 */ lui $t6, %hi(__osTimerCounter) # $t6, 0x8013 +/* 0D5CEC 800D50EC 8DCED230 */ lw $t6, %lo(__osTimerCounter)($t6) /* 0D5CF0 800D50F0 8FA9002C */ lw $t1, 0x2c($sp) /* 0D5CF4 800D50F4 8FA80028 */ lw $t0, 0x28($sp) /* 0D5CF8 800D50F8 01C0C825 */ move $t9, $t6 diff --git a/lib/asm/non_matchings/unknown_0D3020/__osTimerServicesInit.s b/lib/asm/non_matchings/unknown_0D3020/__osTimerServicesInit.s index 7795e85c..34fb800b 100644 --- a/lib/asm/non_matchings/unknown_0D3020/__osTimerServicesInit.s +++ b/lib/asm/non_matchings/unknown_0D3020/__osTimerServicesInit.s @@ -2,36 +2,36 @@ glabel __osTimerServicesInit /* 0D5AC0 800D4EC0 3C018013 */ lui $at, %hi(__osCurrentTime) # $at, 0x8013 /* 0D5AC4 800D4EC4 240E0000 */ li $t6, 0 /* 0D5AC8 800D4EC8 240F0000 */ li $t7, 0 -/* 0D5ACC 800D4ECC AC2FD224 */ sw $t7, %lo(D_8012D224)($at) +/* 0D5ACC 800D4ECC AC2FD224 */ sw $t7, %lo(__osCurrentTime+4)($at) /* 0D5AD0 800D4ED0 AC2ED220 */ sw $t6, %lo(__osCurrentTime)($at) /* 0D5AD4 800D4ED4 3C018013 */ lui $at, %hi(__osBaseCounter) # $at, 0x8013 -/* 0D5AD8 800D4ED8 3C18800E */ lui $t8, %hi(D_800E4910) # $t8, 0x800e -/* 0D5ADC 800D4EDC 8F184910 */ lw $t8, %lo(D_800E4910)($t8) +/* 0D5AD8 800D4ED8 3C18800E */ lui $t8, %hi(__osTimerList) # $t8, 0x800e +/* 0D5ADC 800D4EDC 8F184910 */ lw $t8, %lo(__osTimerList)($t8) /* 0D5AE0 800D4EE0 AC20D228 */ sw $zero, %lo(__osBaseCounter)($at) -/* 0D5AE4 800D4EE4 3C018013 */ lui $at, %hi(D_8012D22C) # $at, 0x8013 -/* 0D5AE8 800D4EE8 AC20D22C */ sw $zero, %lo(D_8012D22C)($at) -/* 0D5AEC 800D4EEC 3C19800E */ lui $t9, %hi(D_800E4910) # $t9, 0x800e +/* 0D5AE4 800D4EE4 3C018013 */ lui $at, %hi(__osViIntrCount) # $at, 0x8013 +/* 0D5AE8 800D4EE8 AC20D22C */ sw $zero, %lo(__osViIntrCount)($at) +/* 0D5AEC 800D4EEC 3C19800E */ lui $t9, %hi(__osTimerList) # $t9, 0x800e /* 0D5AF0 800D4EF0 AF180004 */ sw $t8, 4($t8) -/* 0D5AF4 800D4EF4 8F394910 */ lw $t9, %lo(D_800E4910)($t9) -/* 0D5AF8 800D4EF8 3C09800E */ lui $t1, %hi(D_800E4910) # $t1, 0x800e +/* 0D5AF4 800D4EF4 8F394910 */ lw $t9, %lo(__osTimerList)($t9) +/* 0D5AF8 800D4EF8 3C09800E */ lui $t1, %hi(__osTimerList) # $t1, 0x800e /* 0D5AFC 800D4EFC 240A0000 */ li $t2, 0 /* 0D5B00 800D4F00 8F280004 */ lw $t0, 4($t9) /* 0D5B04 800D4F04 240B0000 */ li $t3, 0 -/* 0D5B08 800D4F08 3C0C800E */ lui $t4, %hi(D_800E4910) # $t4, 0x800e +/* 0D5B08 800D4F08 3C0C800E */ lui $t4, %hi(__osTimerList) # $t4, 0x800e /* 0D5B0C 800D4F0C AF280000 */ sw $t0, ($t9) -/* 0D5B10 800D4F10 8D294910 */ lw $t1, %lo(D_800E4910)($t1) -/* 0D5B14 800D4F14 3C0D800E */ lui $t5, %hi(D_800E4910) # $t5, 0x800e -/* 0D5B18 800D4F18 3C18800E */ lui $t8, %hi(D_800E4910) # $t8, 0x800e +/* 0D5B10 800D4F10 8D294910 */ lw $t1, %lo(__osTimerList)($t1) +/* 0D5B14 800D4F14 3C0D800E */ lui $t5, %hi(__osTimerList) # $t5, 0x800e +/* 0D5B18 800D4F18 3C18800E */ lui $t8, %hi(__osTimerList) # $t8, 0x800e /* 0D5B1C 800D4F1C AD2A0010 */ sw $t2, 0x10($t1) /* 0D5B20 800D4F20 AD2B0014 */ sw $t3, 0x14($t1) -/* 0D5B24 800D4F24 8D8C4910 */ lw $t4, %lo(D_800E4910)($t4) +/* 0D5B24 800D4F24 8D8C4910 */ lw $t4, %lo(__osTimerList)($t4) /* 0D5B28 800D4F28 8D8E0010 */ lw $t6, 0x10($t4) /* 0D5B2C 800D4F2C 8D8F0014 */ lw $t7, 0x14($t4) /* 0D5B30 800D4F30 AD8E0008 */ sw $t6, 8($t4) /* 0D5B34 800D4F34 AD8F000C */ sw $t7, 0xc($t4) -/* 0D5B38 800D4F38 8DAD4910 */ lw $t5, %lo(D_800E4910)($t5) +/* 0D5B38 800D4F38 8DAD4910 */ lw $t5, %lo(__osTimerList)($t5) /* 0D5B3C 800D4F3C ADA00018 */ sw $zero, 0x18($t5) -/* 0D5B40 800D4F40 8F184910 */ lw $t8, %lo(D_800E4910)($t8) +/* 0D5B40 800D4F40 8F184910 */ lw $t8, %lo(__osTimerList)($t8) /* 0D5B44 800D4F44 03E00008 */ jr $ra /* 0D5B48 800D4F48 AF00001C */ sw $zero, 0x1c($t8) diff --git a/lib/asm/non_matchings/unknown_0D3020/func_800D2470.s b/lib/asm/non_matchings/unknown_0D3020/func_800D2470.s index 9d7193e6..278ce499 100644 --- a/lib/asm/non_matchings/unknown_0D3020/func_800D2470.s +++ b/lib/asm/non_matchings/unknown_0D3020/func_800D2470.s @@ -1,4 +1,4 @@ -glabel func_800D2470 +glabel __osGetActiveQueue /* 0D3070 800D2470 3C02800E */ lui $v0, %hi(__osActiveQueue) # $v0, 0x800e /* 0D3074 800D2474 03E00008 */ jr $ra /* 0D3078 800D2478 8C42488C */ lw $v0, %lo(__osActiveQueue)($v0) diff --git a/lib/asm/non_matchings/unknown_0D3020/osSetTimer.s b/lib/asm/non_matchings/unknown_0D3020/osSetTimer.s deleted file mode 100644 index 4c201fa5..00000000 --- a/lib/asm/non_matchings/unknown_0D3020/osSetTimer.s +++ /dev/null @@ -1,62 +0,0 @@ -glabel osSetTimer -/* 0D59E0 800D4DE0 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0D59E4 800D4DE4 AFA40020 */ sw $a0, 0x20($sp) -/* 0D59E8 800D4DE8 8FAE0020 */ lw $t6, 0x20($sp) -/* 0D59EC 800D4DEC AFBF0014 */ sw $ra, 0x14($sp) -/* 0D59F0 800D4DF0 AFA60028 */ sw $a2, 0x28($sp) -/* 0D59F4 800D4DF4 AFA7002C */ sw $a3, 0x2c($sp) -/* 0D59F8 800D4DF8 ADC00000 */ sw $zero, ($t6) -/* 0D59FC 800D4DFC 8FAF0020 */ lw $t7, 0x20($sp) -/* 0D5A00 800D4E00 ADE00004 */ sw $zero, 4($t7) -/* 0D5A04 800D4E04 8FA80020 */ lw $t0, 0x20($sp) -/* 0D5A08 800D4E08 8FB90034 */ lw $t9, 0x34($sp) -/* 0D5A0C 800D4E0C 8FB80030 */ lw $t8, 0x30($sp) -/* 0D5A10 800D4E10 AD19000C */ sw $t9, 0xc($t0) -/* 0D5A14 800D4E14 AD180008 */ sw $t8, 8($t0) -/* 0D5A18 800D4E18 8FAA0028 */ lw $t2, 0x28($sp) -/* 0D5A1C 800D4E1C 8FAB002C */ lw $t3, 0x2c($sp) -/* 0D5A20 800D4E20 15400003 */ bnez $t2, .L800D4E30 -/* 0D5A24 800D4E24 00000000 */ nop -/* 0D5A28 800D4E28 11600005 */ beqz $t3, .L800D4E40 -/* 0D5A2C 800D4E2C 00000000 */ nop -.L800D4E30: -/* 0D5A30 800D4E30 8FA90020 */ lw $t1, 0x20($sp) -/* 0D5A34 800D4E34 AD2A0010 */ sw $t2, 0x10($t1) -/* 0D5A38 800D4E38 10000006 */ b .L800D4E54 -/* 0D5A3C 800D4E3C AD2B0014 */ sw $t3, 0x14($t1) -.L800D4E40: -/* 0D5A40 800D4E40 8FAE0020 */ lw $t6, 0x20($sp) -/* 0D5A44 800D4E44 8FAC0030 */ lw $t4, 0x30($sp) -/* 0D5A48 800D4E48 8FAD0034 */ lw $t5, 0x34($sp) -/* 0D5A4C 800D4E4C ADCC0010 */ sw $t4, 0x10($t6) -/* 0D5A50 800D4E50 ADCD0014 */ sw $t5, 0x14($t6) -.L800D4E54: -/* 0D5A54 800D4E54 8FAF0038 */ lw $t7, 0x38($sp) -/* 0D5A58 800D4E58 8FB80020 */ lw $t8, 0x20($sp) -/* 0D5A5C 800D4E5C AF0F0018 */ sw $t7, 0x18($t8) -/* 0D5A60 800D4E60 8FA80020 */ lw $t0, 0x20($sp) -/* 0D5A64 800D4E64 8FB9003C */ lw $t9, 0x3c($sp) -/* 0D5A68 800D4E68 AD19001C */ sw $t9, 0x1c($t0) -/* 0D5A6C 800D4E6C 0C03544E */ jal __osInsertTimer -/* 0D5A70 800D4E70 8FA40020 */ lw $a0, 0x20($sp) -/* 0D5A74 800D4E74 3C0A800E */ lui $t2, %hi(D_800E4910) # $t2, 0x800e -/* 0D5A78 800D4E78 8D4A4910 */ lw $t2, %lo(D_800E4910)($t2) -/* 0D5A7C 800D4E7C AFA20018 */ sw $v0, 0x18($sp) -/* 0D5A80 800D4E80 AFA3001C */ sw $v1, 0x1c($sp) -/* 0D5A84 800D4E84 8FA90020 */ lw $t1, 0x20($sp) -/* 0D5A88 800D4E88 8D4B0000 */ lw $t3, ($t2) -/* 0D5A8C 800D4E8C 15690004 */ bne $t3, $t1, .L800D4EA0 -/* 0D5A90 800D4E90 00000000 */ nop -/* 0D5A94 800D4E94 8FA40018 */ lw $a0, 0x18($sp) -/* 0D5A98 800D4E98 0C035431 */ jal __osSetTimerIntr -/* 0D5A9C 800D4E9C 8FA5001C */ lw $a1, 0x1c($sp) -.L800D4EA0: -/* 0D5AA0 800D4EA0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D5AA4 800D4EA4 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0D5AA8 800D4EA8 00001025 */ move $v0, $zero -/* 0D5AAC 800D4EAC 03E00008 */ jr $ra -/* 0D5AB0 800D4EB0 00000000 */ nop - -/* 0D5AB4 800D4EB4 00000000 */ nop -/* 0D5AB8 800D4EB8 00000000 */ nop -/* 0D5ABC 800D4EBC 00000000 */ nop diff --git a/lib/asm/non_matchings/unknown_0D3020/osYieldThread.s b/lib/asm/non_matchings/unknown_0D3020/osYieldThread.s index fb7f2db7..c3469326 100644 --- a/lib/asm/non_matchings/unknown_0D3020/osYieldThread.s +++ b/lib/asm/non_matchings/unknown_0D3020/osYieldThread.s @@ -6,9 +6,9 @@ glabel osYieldThread /* 0D71C0 800D65C0 3C0F800E */ lui $t7, %hi(__osRunningThread) # $t7, 0x800e /* 0D71C4 800D65C4 8DEF4890 */ lw $t7, %lo(__osRunningThread)($t7) /* 0D71C8 800D65C8 240E0002 */ li $t6, 2 -/* 0D71CC 800D65CC 3C04800E */ lui $a0, %hi(__RunQueue) # $a0, 0x800e +/* 0D71CC 800D65CC 3C04800E */ lui $a0, %hi(__osRunQueue) # $a0, 0x800e /* 0D71D0 800D65D0 00408025 */ move $s0, $v0 -/* 0D71D4 800D65D4 24844888 */ addiu $a0, %lo(__RunQueue) # addiu $a0, $a0, 0x4888 +/* 0D71D4 800D65D4 24844888 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x4888 /* 0D71D8 800D65D8 0C034CB3 */ jal __osEnqueueAndYield /* 0D71DC 800D65DC A5EE0010 */ sh $t6, 0x10($t7) /* 0D71E0 800D65E0 0C034960 */ jal __osRestoreInt diff --git a/lib/asm/non_matchings/unknown_0D3160/__osViInit.s b/lib/asm/non_matchings/unknown_0D3160/__osViInit.s index efa5dc4b..30c05010 100644 --- a/lib/asm/non_matchings/unknown_0D3160/__osViInit.s +++ b/lib/asm/non_matchings/unknown_0D3160/__osViInit.s @@ -3,7 +3,7 @@ glabel __osViInit /* 0D3714 800D2B14 AFBF0014 */ sw $ra, 0x14($sp) /* 0D3718 800D2B18 3C04800E */ lui $a0, %hi(vi) # $a0, 0x800e /* 0D371C 800D2B1C 24844810 */ addiu $a0, %lo(vi) # addiu $a0, $a0, 0x4810 -/* 0D3720 800D2B20 0C034138 */ jal memzero +/* 0D3720 800D2B20 0C034138 */ jal bzero /* 0D3724 800D2B24 24050060 */ li $a1, 96 /* 0D3728 800D2B28 3C0E800E */ lui $t6, %hi(vi) # $t6, 0x800e /* 0D372C 800D2B2C 25CE4810 */ addiu $t6, %lo(vi) # addiu $t6, $t6, 0x4810 diff --git a/lib/asm/non_matchings/unknown_0D3160/osEPiRawStartDma.s b/lib/asm/non_matchings/unknown_0D3160/osEPiRawStartDma.s deleted file mode 100644 index 5cd21a7c..00000000 --- a/lib/asm/non_matchings/unknown_0D3160/osEPiRawStartDma.s +++ /dev/null @@ -1,65 +0,0 @@ -glabel osEPiRawStartDma -/* 0D3280 800D2680 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0D3284 800D2684 AFBF001C */ sw $ra, 0x1c($sp) -/* 0D3288 800D2688 AFA40028 */ sw $a0, 0x28($sp) -/* 0D328C 800D268C AFA5002C */ sw $a1, 0x2c($sp) -/* 0D3290 800D2690 AFA60030 */ sw $a2, 0x30($sp) -/* 0D3294 800D2694 AFA70034 */ sw $a3, 0x34($sp) -/* 0D3298 800D2698 AFB10018 */ sw $s1, 0x18($sp) -/* 0D329C 800D269C AFB00014 */ sw $s0, 0x14($sp) -/* 0D32A0 800D26A0 3C0EA460 */ lui $t6, %hi(D_A4600010) # $t6, 0xa460 -/* 0D32A4 800D26A4 8DD00010 */ lw $s0, %lo(D_A4600010)($t6) -/* 0D32A8 800D26A8 320F0003 */ andi $t7, $s0, 3 -/* 0D32AC 800D26AC 11E00006 */ beqz $t7, .L800D26C8 -/* 0D32B0 800D26B0 00000000 */ nop -.L800D26B4: -/* 0D32B4 800D26B4 3C18A460 */ lui $t8, %hi(D_A4600010) # $t8, 0xa460 -/* 0D32B8 800D26B8 8F100010 */ lw $s0, %lo(D_A4600010)($t8) -/* 0D32BC 800D26BC 32190003 */ andi $t9, $s0, 3 -/* 0D32C0 800D26C0 1720FFFC */ bnez $t9, .L800D26B4 -/* 0D32C4 800D26C4 00000000 */ nop -.L800D26C8: -/* 0D32C8 800D26C8 0C03233C */ jal osVirtualToPhysical -/* 0D32CC 800D26CC 8FA40034 */ lw $a0, 0x34($sp) -/* 0D32D0 800D26D0 3C08A460 */ lui $t0, 0xa460 -/* 0D32D4 800D26D4 AD020000 */ sw $v0, ($t0) -/* 0D32D8 800D26D8 8FA90028 */ lw $t1, 0x28($sp) -/* 0D32DC 800D26DC 8FAB0030 */ lw $t3, 0x30($sp) -/* 0D32E0 800D26E0 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff -/* 0D32E4 800D26E4 8D2A000C */ lw $t2, 0xc($t1) -/* 0D32E8 800D26E8 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 0D32EC 800D26EC 3C0EA460 */ lui $t6, %hi(D_A4600004) # $t6, 0xa460 -/* 0D32F0 800D26F0 014B6025 */ or $t4, $t2, $t3 -/* 0D32F4 800D26F4 01816824 */ and $t5, $t4, $at -/* 0D32F8 800D26F8 ADCD0004 */ sw $t5, %lo(D_A4600004)($t6) -/* 0D32FC 800D26FC 8FB1002C */ lw $s1, 0x2c($sp) -/* 0D3300 800D2700 12200005 */ beqz $s1, .L800D2718 -/* 0D3304 800D2704 24010001 */ li $at, 1 -/* 0D3308 800D2708 12210008 */ beq $s1, $at, .L800D272C -/* 0D330C 800D270C 00000000 */ nop -/* 0D3310 800D2710 1000000B */ b .L800D2740 -/* 0D3314 800D2714 00000000 */ nop -.L800D2718: -/* 0D3318 800D2718 8FAF0038 */ lw $t7, 0x38($sp) -/* 0D331C 800D271C 3C19A460 */ lui $t9, %hi(D_A460000C) # $t9, 0xa460 -/* 0D3320 800D2720 25F8FFFF */ addiu $t8, $t7, -1 -/* 0D3324 800D2724 10000008 */ b .L800D2748 -/* 0D3328 800D2728 AF38000C */ sw $t8, %lo(D_A460000C)($t9) -.L800D272C: -/* 0D332C 800D272C 8FA80038 */ lw $t0, 0x38($sp) -/* 0D3330 800D2730 3C0AA460 */ lui $t2, %hi(D_A4600008) # $t2, 0xa460 -/* 0D3334 800D2734 2509FFFF */ addiu $t1, $t0, -1 -/* 0D3338 800D2738 10000003 */ b .L800D2748 -/* 0D333C 800D273C AD490008 */ sw $t1, %lo(D_A4600008)($t2) -.L800D2740: -/* 0D3340 800D2740 10000002 */ b .L800D274C -/* 0D3344 800D2744 2402FFFF */ li $v0, -1 -.L800D2748: -/* 0D3348 800D2748 00001025 */ move $v0, $zero -.L800D274C: -/* 0D334C 800D274C 8FBF001C */ lw $ra, 0x1c($sp) -/* 0D3350 800D2750 8FB00014 */ lw $s0, 0x14($sp) -/* 0D3354 800D2754 8FB10018 */ lw $s1, 0x18($sp) -/* 0D3358 800D2758 03E00008 */ jr $ra -/* 0D335C 800D275C 27BD0028 */ addiu $sp, $sp, 0x28 - diff --git a/lib/asm/non_matchings/unknown_0D43F0/_Printf.s b/lib/asm/non_matchings/unknown_0D43F0/_Printf.s deleted file mode 100644 index 19c52165..00000000 --- a/lib/asm/non_matchings/unknown_0D43F0/_Printf.s +++ /dev/null @@ -1,477 +0,0 @@ -.rdata -glabel D_800E96C0 -.asciz "hlL" -glabel D_800E96C4 -.asciz " +-#0" -.ascii "\0\0" # padding -glabel D_800E96CC -.word 1, 2, 4, 8, 16, 0 - -.text -glabel _Printf -/* 0D4B10 800D3F10 27BDFF20 */ addiu $sp, $sp, -0xe0 -/* 0D4B14 800D3F14 AFB70034 */ sw $s7, 0x34($sp) -/* 0D4B18 800D3F18 AFB60030 */ sw $s6, 0x30($sp) -/* 0D4B1C 800D3F1C AFB5002C */ sw $s5, 0x2c($sp) -/* 0D4B20 800D3F20 AFBE0038 */ sw $fp, 0x38($sp) -/* 0D4B24 800D3F24 AFB40028 */ sw $s4, 0x28($sp) -/* 0D4B28 800D3F28 AFB30024 */ sw $s3, 0x24($sp) -/* 0D4B2C 800D3F2C AFA700EC */ sw $a3, 0xec($sp) -/* 0D4B30 800D3F30 3C15800E */ lui $s5, %hi(D_800E48E4) # $s5, 0x800e -/* 0D4B34 800D3F34 3C16800F */ lui $s6, %hi(D_800E96C4) # $s6, 0x800f -/* 0D4B38 800D3F38 3C17800E */ lui $s7, %hi(D_800E48C0) # $s7, 0x800e -/* 0D4B3C 800D3F3C 00C03825 */ move $a3, $a2 -/* 0D4B40 800D3F40 00A09825 */ move $s3, $a1 -/* 0D4B44 800D3F44 0080A025 */ move $s4, $a0 -/* 0D4B48 800D3F48 AFBF003C */ sw $ra, 0x3c($sp) -/* 0D4B4C 800D3F4C AFB20020 */ sw $s2, 0x20($sp) -/* 0D4B50 800D3F50 AFB1001C */ sw $s1, 0x1c($sp) -/* 0D4B54 800D3F54 AFB00018 */ sw $s0, 0x18($sp) -/* 0D4B58 800D3F58 AFA600E8 */ sw $a2, 0xe8($sp) -/* 0D4B5C 800D3F5C AFA000D4 */ sw $zero, 0xd4($sp) -/* 0D4B60 800D3F60 26F748C0 */ addiu $s7, %lo(D_800E48C0) # addiu $s7, $s7, 0x48c0 -/* 0D4B64 800D3F64 26D696C4 */ addiu $s6, %lo(D_800E96C4) # addiu $s6, $s6, -0x693c -/* 0D4B68 800D3F68 26B548E4 */ addiu $s5, %lo(D_800E48E4) # addiu $s5, $s5, 0x48e4 -/* 0D4B6C 800D3F6C 241E000A */ li $fp, 10 -.L800D3F70: -/* 0D4B70 800D3F70 90F00000 */ lbu $s0, ($a3) -/* 0D4B74 800D3F74 24F20001 */ addiu $s2, $a3, 1 -/* 0D4B78 800D3F78 24030025 */ li $v1, 37 -/* 0D4B7C 800D3F7C 1A000009 */ blez $s0, .L800D3FA4 -/* 0D4B80 800D3F80 02602025 */ move $a0, $s3 -.L800D3F84: -/* 0D4B84 800D3F84 54700004 */ bnel $v1, $s0, .L800D3F98 -/* 0D4B88 800D3F88 92500000 */ lbu $s0, ($s2) -/* 0D4B8C 800D3F8C 10000005 */ b .L800D3FA4 -/* 0D4B90 800D3F90 2652FFFF */ addiu $s2, $s2, -1 -/* 0D4B94 800D3F94 92500000 */ lbu $s0, ($s2) -.L800D3F98: -/* 0D4B98 800D3F98 26520001 */ addiu $s2, $s2, 1 -/* 0D4B9C 800D3F9C 1E00FFF9 */ bgtz $s0, .L800D3F84 -/* 0D4BA0 800D3FA0 00000000 */ nop -.L800D3FA4: -/* 0D4BA4 800D3FA4 02471023 */ subu $v0, $s2, $a3 -/* 0D4BA8 800D3FA8 1840000C */ blez $v0, .L800D3FDC -/* 0D4BAC 800D3FAC 00E02825 */ move $a1, $a3 -/* 0D4BB0 800D3FB0 00408825 */ move $s1, $v0 -/* 0D4BB4 800D3FB4 0280F809 */ jalr $s4 -/* 0D4BB8 800D3FB8 00403025 */ move $a2, $v0 -/* 0D4BBC 800D3FBC 10400005 */ beqz $v0, .L800D3FD4 -/* 0D4BC0 800D3FC0 00409825 */ move $s3, $v0 -/* 0D4BC4 800D3FC4 8FAE00D4 */ lw $t6, 0xd4($sp) -/* 0D4BC8 800D3FC8 01D17821 */ addu $t7, $t6, $s1 -/* 0D4BCC 800D3FCC 10000003 */ b .L800D3FDC -/* 0D4BD0 800D3FD0 AFAF00D4 */ sw $t7, 0xd4($sp) -.L800D3FD4: -/* 0D4BD4 800D3FD4 10000153 */ b .L800D4524 -/* 0D4BD8 800D3FD8 8FA200D4 */ lw $v0, 0xd4($sp) -.L800D3FDC: -/* 0D4BDC 800D3FDC 16000003 */ bnez $s0, .L800D3FEC -/* 0D4BE0 800D3FE0 26520001 */ addiu $s2, $s2, 1 -/* 0D4BE4 800D3FE4 1000014F */ b .L800D4524 -/* 0D4BE8 800D3FE8 8FA200D4 */ lw $v0, 0xd4($sp) -.L800D3FEC: -/* 0D4BEC 800D3FEC AFA000D8 */ sw $zero, 0xd8($sp) -/* 0D4BF0 800D3FF0 92450000 */ lbu $a1, ($s2) -/* 0D4BF4 800D3FF4 0C033871 */ jal strchr -/* 0D4BF8 800D3FF8 02C02025 */ move $a0, $s6 -/* 0D4BFC 800D3FFC 1040000F */ beqz $v0, .L800D403C -/* 0D4C00 800D4000 00408025 */ move $s0, $v0 -.L800D4004: -/* 0D4C04 800D4004 0216C823 */ subu $t9, $s0, $s6 -/* 0D4C08 800D4008 00197080 */ sll $t6, $t9, 2 -/* 0D4C0C 800D400C 3C0F800F */ lui $t7, %hi(D_800E96CC) # $t7, 0x800f -/* 0D4C10 800D4010 01EE7821 */ addu $t7, $t7, $t6 -/* 0D4C14 800D4014 8DEF96CC */ lw $t7, %lo(D_800E96CC)($t7) -/* 0D4C18 800D4018 8FB800D8 */ lw $t8, 0xd8($sp) -/* 0D4C1C 800D401C 26520001 */ addiu $s2, $s2, 1 -/* 0D4C20 800D4020 02C02025 */ move $a0, $s6 -/* 0D4C24 800D4024 030FC825 */ or $t9, $t8, $t7 -/* 0D4C28 800D4028 AFB900D8 */ sw $t9, 0xd8($sp) -/* 0D4C2C 800D402C 0C033871 */ jal strchr -/* 0D4C30 800D4030 92450000 */ lbu $a1, ($s2) -/* 0D4C34 800D4034 1440FFF3 */ bnez $v0, .L800D4004 -/* 0D4C38 800D4038 00408025 */ move $s0, $v0 -.L800D403C: -/* 0D4C3C 800D403C 924E0000 */ lbu $t6, ($s2) -/* 0D4C40 800D4040 2402002A */ li $v0, 42 -/* 0D4C44 800D4044 8FB800EC */ lw $t8, 0xec($sp) -/* 0D4C48 800D4048 144E0011 */ bne $v0, $t6, .L800D4090 -/* 0D4C4C 800D404C 3C04800F */ lui $a0, %hi(D_800E96C0) # $a0, 0x800f -/* 0D4C50 800D4050 270F0003 */ addiu $t7, $t8, 3 -/* 0D4C54 800D4054 2401FFFC */ li $at, -4 -/* 0D4C58 800D4058 01E1C824 */ and $t9, $t7, $at -/* 0D4C5C 800D405C 272E0004 */ addiu $t6, $t9, 4 -/* 0D4C60 800D4060 AFAE00EC */ sw $t6, 0xec($sp) -/* 0D4C64 800D4064 8F380000 */ lw $t8, ($t9) -/* 0D4C68 800D4068 26520001 */ addiu $s2, $s2, 1 -/* 0D4C6C 800D406C 07010006 */ bgez $t8, .L800D4088 -/* 0D4C70 800D4070 AFB800D0 */ sw $t8, 0xd0($sp) -/* 0D4C74 800D4074 8FAE00D8 */ lw $t6, 0xd8($sp) -/* 0D4C78 800D4078 00187823 */ negu $t7, $t8 -/* 0D4C7C 800D407C AFAF00D0 */ sw $t7, 0xd0($sp) -/* 0D4C80 800D4080 35D90004 */ ori $t9, $t6, 4 -/* 0D4C84 800D4084 AFB900D8 */ sw $t9, 0xd8($sp) -.L800D4088: -/* 0D4C88 800D4088 10000018 */ b .L800D40EC -/* 0D4C8C 800D408C 92450000 */ lbu $a1, ($s2) -.L800D4090: -/* 0D4C90 800D4090 AFA000D0 */ sw $zero, 0xd0($sp) -/* 0D4C94 800D4094 92450000 */ lbu $a1, ($s2) -/* 0D4C98 800D4098 28A10030 */ slti $at, $a1, 0x30 -/* 0D4C9C 800D409C 14200013 */ bnez $at, .L800D40EC -/* 0D4CA0 800D40A0 28A1003A */ slti $at, $a1, 0x3a -/* 0D4CA4 800D40A4 50200012 */ beql $at, $zero, .L800D40F0 -/* 0D4CA8 800D40A8 2401002E */ li $at, 46 -/* 0D4CAC 800D40AC 8FB800D0 */ lw $t8, 0xd0($sp) -.L800D40B0: -/* 0D4CB0 800D40B0 2B0103E7 */ slti $at, $t8, 0x3e7 -/* 0D4CB4 800D40B4 50200007 */ beql $at, $zero, .L800D40D4 -/* 0D4CB8 800D40B8 92450001 */ lbu $a1, 1($s2) -/* 0D4CBC 800D40BC 031E0019 */ multu $t8, $fp -/* 0D4CC0 800D40C0 00007812 */ mflo $t7 -/* 0D4CC4 800D40C4 00AF7021 */ addu $t6, $a1, $t7 -/* 0D4CC8 800D40C8 25D9FFD0 */ addiu $t9, $t6, -0x30 -/* 0D4CCC 800D40CC AFB900D0 */ sw $t9, 0xd0($sp) -/* 0D4CD0 800D40D0 92450001 */ lbu $a1, 1($s2) -.L800D40D4: -/* 0D4CD4 800D40D4 26520001 */ addiu $s2, $s2, 1 -/* 0D4CD8 800D40D8 28A10030 */ slti $at, $a1, 0x30 -/* 0D4CDC 800D40DC 14200003 */ bnez $at, .L800D40EC -/* 0D4CE0 800D40E0 28A1003A */ slti $at, $a1, 0x3a -/* 0D4CE4 800D40E4 5420FFF2 */ bnezl $at, .L800D40B0 -/* 0D4CE8 800D40E8 8FB800D0 */ lw $t8, 0xd0($sp) -.L800D40EC: -/* 0D4CEC 800D40EC 2401002E */ li $at, 46 -.L800D40F0: -/* 0D4CF0 800D40F0 10A10004 */ beq $a1, $at, .L800D4104 -/* 0D4CF4 800D40F4 2418FFFF */ li $t8, -1 -/* 0D4CF8 800D40F8 AFB800CC */ sw $t8, 0xcc($sp) -/* 0D4CFC 800D40FC 10000026 */ b .L800D4198 -/* 0D4D00 800D4100 92450000 */ lbu $a1, ($s2) -.L800D4104: -/* 0D4D04 800D4104 924F0001 */ lbu $t7, 1($s2) -/* 0D4D08 800D4108 8FAE00EC */ lw $t6, 0xec($sp) -/* 0D4D0C 800D410C 26520001 */ addiu $s2, $s2, 1 -/* 0D4D10 800D4110 144F000A */ bne $v0, $t7, .L800D413C -/* 0D4D14 800D4114 25D90003 */ addiu $t9, $t6, 3 -/* 0D4D18 800D4118 2401FFFC */ li $at, -4 -/* 0D4D1C 800D411C 0321C024 */ and $t8, $t9, $at -/* 0D4D20 800D4120 270F0004 */ addiu $t7, $t8, 4 -/* 0D4D24 800D4124 AFAF00EC */ sw $t7, 0xec($sp) -/* 0D4D28 800D4128 8F0E0000 */ lw $t6, ($t8) -/* 0D4D2C 800D412C 26520001 */ addiu $s2, $s2, 1 -/* 0D4D30 800D4130 AFAE00CC */ sw $t6, 0xcc($sp) -/* 0D4D34 800D4134 10000018 */ b .L800D4198 -/* 0D4D38 800D4138 92450000 */ lbu $a1, ($s2) -.L800D413C: -/* 0D4D3C 800D413C AFA000CC */ sw $zero, 0xcc($sp) -/* 0D4D40 800D4140 92450000 */ lbu $a1, ($s2) -/* 0D4D44 800D4144 28A10030 */ slti $at, $a1, 0x30 -/* 0D4D48 800D4148 14200013 */ bnez $at, .L800D4198 -/* 0D4D4C 800D414C 28A1003A */ slti $at, $a1, 0x3a -/* 0D4D50 800D4150 10200011 */ beqz $at, .L800D4198 -/* 0D4D54 800D4154 00000000 */ nop -/* 0D4D58 800D4158 8FB900CC */ lw $t9, 0xcc($sp) -.L800D415C: -/* 0D4D5C 800D415C 2B2103E7 */ slti $at, $t9, 0x3e7 -/* 0D4D60 800D4160 50200007 */ beql $at, $zero, .L800D4180 -/* 0D4D64 800D4164 92450001 */ lbu $a1, 1($s2) -/* 0D4D68 800D4168 033E0019 */ multu $t9, $fp -/* 0D4D6C 800D416C 00007812 */ mflo $t7 -/* 0D4D70 800D4170 00AFC021 */ addu $t8, $a1, $t7 -/* 0D4D74 800D4174 270EFFD0 */ addiu $t6, $t8, -0x30 -/* 0D4D78 800D4178 AFAE00CC */ sw $t6, 0xcc($sp) -/* 0D4D7C 800D417C 92450001 */ lbu $a1, 1($s2) -.L800D4180: -/* 0D4D80 800D4180 26520001 */ addiu $s2, $s2, 1 -/* 0D4D84 800D4184 28A10030 */ slti $at, $a1, 0x30 -/* 0D4D88 800D4188 14200003 */ bnez $at, .L800D4198 -/* 0D4D8C 800D418C 28A1003A */ slti $at, $a1, 0x3a -/* 0D4D90 800D4190 5420FFF2 */ bnezl $at, .L800D415C -/* 0D4D94 800D4194 8FB900CC */ lw $t9, 0xcc($sp) -.L800D4198: -/* 0D4D98 800D4198 0C033871 */ jal strchr -/* 0D4D9C 800D419C 248496C0 */ addiu $a0, %lo(D_800E96C0) # addiu $a0, $a0, -0x6940 -/* 0D4DA0 800D41A0 10400005 */ beqz $v0, .L800D41B8 -/* 0D4DA4 800D41A4 27B000A8 */ addiu $s0, $sp, 0xa8 -/* 0D4DA8 800D41A8 92590000 */ lbu $t9, ($s2) -/* 0D4DAC 800D41AC 26520001 */ addiu $s2, $s2, 1 -/* 0D4DB0 800D41B0 10000002 */ b .L800D41BC -/* 0D4DB4 800D41B4 A3B900DC */ sb $t9, 0xdc($sp) -.L800D41B8: -/* 0D4DB8 800D41B8 A3A000DC */ sb $zero, 0xdc($sp) -.L800D41BC: -/* 0D4DBC 800D41BC 93AF00DC */ lbu $t7, 0xdc($sp) -/* 0D4DC0 800D41C0 2402006C */ li $v0, 108 -/* 0D4DC4 800D41C4 27A600EC */ addiu $a2, $sp, 0xec -/* 0D4DC8 800D41C8 144F0007 */ bne $v0, $t7, .L800D41E8 -/* 0D4DCC 800D41CC 27A7007C */ addiu $a3, $sp, 0x7c -/* 0D4DD0 800D41D0 92580000 */ lbu $t8, ($s2) -/* 0D4DD4 800D41D4 240E004C */ li $t6, 76 -/* 0D4DD8 800D41D8 14580003 */ bne $v0, $t8, .L800D41E8 -/* 0D4DDC 800D41DC 00000000 */ nop -/* 0D4DE0 800D41E0 A3AE00DC */ sb $t6, 0xdc($sp) -/* 0D4DE4 800D41E4 26520001 */ addiu $s2, $s2, 1 -.L800D41E8: -/* 0D4DE8 800D41E8 0C034E28 */ jal _Putfld -/* 0D4DEC 800D41EC 92450000 */ lbu $a1, ($s2) -/* 0D4DF0 800D41F0 8FB900D0 */ lw $t9, 0xd0($sp) -/* 0D4DF4 800D41F4 8FAF00B4 */ lw $t7, 0xb4($sp) -/* 0D4DF8 800D41F8 8FAE00B8 */ lw $t6, 0xb8($sp) -/* 0D4DFC 800D41FC 032FC023 */ subu $t8, $t9, $t7 -/* 0D4E00 800D4200 8FAF00BC */ lw $t7, 0xbc($sp) -/* 0D4E04 800D4204 030EC823 */ subu $t9, $t8, $t6 -/* 0D4E08 800D4208 8FAE00C0 */ lw $t6, 0xc0($sp) -/* 0D4E0C 800D420C 032FC023 */ subu $t8, $t9, $t7 -/* 0D4E10 800D4210 8FAF00C4 */ lw $t7, 0xc4($sp) -/* 0D4E14 800D4214 030EC823 */ subu $t9, $t8, $t6 -/* 0D4E18 800D4218 8FAE00C8 */ lw $t6, 0xc8($sp) -/* 0D4E1C 800D421C 032FC023 */ subu $t8, $t9, $t7 -/* 0D4E20 800D4220 8FAF00D8 */ lw $t7, 0xd8($sp) -/* 0D4E24 800D4224 030EC823 */ subu $t9, $t8, $t6 -/* 0D4E28 800D4228 AFB900D0 */ sw $t9, 0xd0($sp) -/* 0D4E2C 800D422C 31F80004 */ andi $t8, $t7, 4 -/* 0D4E30 800D4230 1700001A */ bnez $t8, .L800D429C -/* 0D4E34 800D4234 0019702A */ slt $t6, $zero, $t9 -/* 0D4E38 800D4238 51C00019 */ beql $t6, $zero, .L800D42A0 -/* 0D4E3C 800D423C 8FB900B4 */ lw $t9, 0xb4($sp) -/* 0D4E40 800D4240 11C00016 */ beqz $t6, .L800D429C -/* 0D4E44 800D4244 03208825 */ move $s1, $t9 -/* 0D4E48 800D4248 2E210021 */ sltiu $at, $s1, 0x21 -.L800D424C: -/* 0D4E4C 800D424C 14200003 */ bnez $at, .L800D425C -/* 0D4E50 800D4250 02208025 */ move $s0, $s1 -/* 0D4E54 800D4254 10000001 */ b .L800D425C -/* 0D4E58 800D4258 24100020 */ li $s0, 32 -.L800D425C: -/* 0D4E5C 800D425C 1A00000C */ blez $s0, .L800D4290 -/* 0D4E60 800D4260 02602025 */ move $a0, $s3 -/* 0D4E64 800D4264 02E02825 */ move $a1, $s7 -/* 0D4E68 800D4268 0280F809 */ jalr $s4 -/* 0D4E6C 800D426C 02003025 */ move $a2, $s0 -/* 0D4E70 800D4270 10400005 */ beqz $v0, .L800D4288 -/* 0D4E74 800D4274 00409825 */ move $s3, $v0 -/* 0D4E78 800D4278 8FAF00D4 */ lw $t7, 0xd4($sp) -/* 0D4E7C 800D427C 01F0C021 */ addu $t8, $t7, $s0 -/* 0D4E80 800D4280 10000003 */ b .L800D4290 -/* 0D4E84 800D4284 AFB800D4 */ sw $t8, 0xd4($sp) -.L800D4288: -/* 0D4E88 800D4288 100000A6 */ b .L800D4524 -/* 0D4E8C 800D428C 8FA200D4 */ lw $v0, 0xd4($sp) -.L800D4290: -/* 0D4E90 800D4290 02308823 */ subu $s1, $s1, $s0 -/* 0D4E94 800D4294 5E20FFED */ bgtzl $s1, .L800D424C -/* 0D4E98 800D4298 2E210021 */ sltiu $at, $s1, 0x21 -.L800D429C: -/* 0D4E9C 800D429C 8FB900B4 */ lw $t9, 0xb4($sp) -.L800D42A0: -/* 0D4EA0 800D42A0 02602025 */ move $a0, $s3 -/* 0D4EA4 800D42A4 27A5007C */ addiu $a1, $sp, 0x7c -/* 0D4EA8 800D42A8 5B20000D */ blezl $t9, .L800D42E0 -/* 0D4EAC 800D42AC 8FB900B8 */ lw $t9, 0xb8($sp) -/* 0D4EB0 800D42B0 0280F809 */ jalr $s4 -/* 0D4EB4 800D42B4 03203025 */ move $a2, $t9 -/* 0D4EB8 800D42B8 10400006 */ beqz $v0, .L800D42D4 -/* 0D4EBC 800D42BC 00409825 */ move $s3, $v0 -/* 0D4EC0 800D42C0 8FAE00D4 */ lw $t6, 0xd4($sp) -/* 0D4EC4 800D42C4 8FAF00B4 */ lw $t7, 0xb4($sp) -/* 0D4EC8 800D42C8 01CFC021 */ addu $t8, $t6, $t7 -/* 0D4ECC 800D42CC 10000003 */ b .L800D42DC -/* 0D4ED0 800D42D0 AFB800D4 */ sw $t8, 0xd4($sp) -.L800D42D4: -/* 0D4ED4 800D42D4 10000093 */ b .L800D4524 -/* 0D4ED8 800D42D8 8FA200D4 */ lw $v0, 0xd4($sp) -.L800D42DC: -/* 0D4EDC 800D42DC 8FB900B8 */ lw $t9, 0xb8($sp) -.L800D42E0: -/* 0D4EE0 800D42E0 0019702A */ slt $t6, $zero, $t9 -/* 0D4EE4 800D42E4 51C00019 */ beql $t6, $zero, .L800D434C -/* 0D4EE8 800D42E8 8FB900BC */ lw $t9, 0xbc($sp) -/* 0D4EEC 800D42EC 11C00016 */ beqz $t6, .L800D4348 -/* 0D4EF0 800D42F0 03208825 */ move $s1, $t9 -/* 0D4EF4 800D42F4 2E210021 */ sltiu $at, $s1, 0x21 -.L800D42F8: -/* 0D4EF8 800D42F8 14200003 */ bnez $at, .L800D4308 -/* 0D4EFC 800D42FC 02208025 */ move $s0, $s1 -/* 0D4F00 800D4300 10000001 */ b .L800D4308 -/* 0D4F04 800D4304 24100020 */ li $s0, 32 -.L800D4308: -/* 0D4F08 800D4308 1A00000C */ blez $s0, .L800D433C -/* 0D4F0C 800D430C 02602025 */ move $a0, $s3 -/* 0D4F10 800D4310 02A02825 */ move $a1, $s5 -/* 0D4F14 800D4314 0280F809 */ jalr $s4 -/* 0D4F18 800D4318 02003025 */ move $a2, $s0 -/* 0D4F1C 800D431C 10400005 */ beqz $v0, .L800D4334 -/* 0D4F20 800D4320 00409825 */ move $s3, $v0 -/* 0D4F24 800D4324 8FAF00D4 */ lw $t7, 0xd4($sp) -/* 0D4F28 800D4328 01F0C021 */ addu $t8, $t7, $s0 -/* 0D4F2C 800D432C 10000003 */ b .L800D433C -/* 0D4F30 800D4330 AFB800D4 */ sw $t8, 0xd4($sp) -.L800D4334: -/* 0D4F34 800D4334 1000007B */ b .L800D4524 -/* 0D4F38 800D4338 8FA200D4 */ lw $v0, 0xd4($sp) -.L800D433C: -/* 0D4F3C 800D433C 02308823 */ subu $s1, $s1, $s0 -/* 0D4F40 800D4340 5E20FFED */ bgtzl $s1, .L800D42F8 -/* 0D4F44 800D4344 2E210021 */ sltiu $at, $s1, 0x21 -.L800D4348: -/* 0D4F48 800D4348 8FB900BC */ lw $t9, 0xbc($sp) -.L800D434C: -/* 0D4F4C 800D434C 02602025 */ move $a0, $s3 -/* 0D4F50 800D4350 8FA500B0 */ lw $a1, 0xb0($sp) -/* 0D4F54 800D4354 5B20000D */ blezl $t9, .L800D438C -/* 0D4F58 800D4358 8FB900C0 */ lw $t9, 0xc0($sp) -/* 0D4F5C 800D435C 0280F809 */ jalr $s4 -/* 0D4F60 800D4360 03203025 */ move $a2, $t9 -/* 0D4F64 800D4364 10400006 */ beqz $v0, .L800D4380 -/* 0D4F68 800D4368 00409825 */ move $s3, $v0 -/* 0D4F6C 800D436C 8FAE00D4 */ lw $t6, 0xd4($sp) -/* 0D4F70 800D4370 8FAF00BC */ lw $t7, 0xbc($sp) -/* 0D4F74 800D4374 01CFC021 */ addu $t8, $t6, $t7 -/* 0D4F78 800D4378 10000003 */ b .L800D4388 -/* 0D4F7C 800D437C AFB800D4 */ sw $t8, 0xd4($sp) -.L800D4380: -/* 0D4F80 800D4380 10000068 */ b .L800D4524 -/* 0D4F84 800D4384 8FA200D4 */ lw $v0, 0xd4($sp) -.L800D4388: -/* 0D4F88 800D4388 8FB900C0 */ lw $t9, 0xc0($sp) -.L800D438C: -/* 0D4F8C 800D438C 0019702A */ slt $t6, $zero, $t9 -/* 0D4F90 800D4390 51C00019 */ beql $t6, $zero, .L800D43F8 -/* 0D4F94 800D4394 8FB900C4 */ lw $t9, 0xc4($sp) -/* 0D4F98 800D4398 11C00016 */ beqz $t6, .L800D43F4 -/* 0D4F9C 800D439C 03208825 */ move $s1, $t9 -/* 0D4FA0 800D43A0 2E210021 */ sltiu $at, $s1, 0x21 -.L800D43A4: -/* 0D4FA4 800D43A4 14200003 */ bnez $at, .L800D43B4 -/* 0D4FA8 800D43A8 02208025 */ move $s0, $s1 -/* 0D4FAC 800D43AC 10000001 */ b .L800D43B4 -/* 0D4FB0 800D43B0 24100020 */ li $s0, 32 -.L800D43B4: -/* 0D4FB4 800D43B4 1A00000C */ blez $s0, .L800D43E8 -/* 0D4FB8 800D43B8 02602025 */ move $a0, $s3 -/* 0D4FBC 800D43BC 02A02825 */ move $a1, $s5 -/* 0D4FC0 800D43C0 0280F809 */ jalr $s4 -/* 0D4FC4 800D43C4 02003025 */ move $a2, $s0 -/* 0D4FC8 800D43C8 10400005 */ beqz $v0, .L800D43E0 -/* 0D4FCC 800D43CC 00409825 */ move $s3, $v0 -/* 0D4FD0 800D43D0 8FAF00D4 */ lw $t7, 0xd4($sp) -/* 0D4FD4 800D43D4 01F0C021 */ addu $t8, $t7, $s0 -/* 0D4FD8 800D43D8 10000003 */ b .L800D43E8 -/* 0D4FDC 800D43DC AFB800D4 */ sw $t8, 0xd4($sp) -.L800D43E0: -/* 0D4FE0 800D43E0 10000050 */ b .L800D4524 -/* 0D4FE4 800D43E4 8FA200D4 */ lw $v0, 0xd4($sp) -.L800D43E8: -/* 0D4FE8 800D43E8 02308823 */ subu $s1, $s1, $s0 -/* 0D4FEC 800D43EC 5E20FFED */ bgtzl $s1, .L800D43A4 -/* 0D4FF0 800D43F0 2E210021 */ sltiu $at, $s1, 0x21 -.L800D43F4: -/* 0D4FF4 800D43F4 8FB900C4 */ lw $t9, 0xc4($sp) -.L800D43F8: -/* 0D4FF8 800D43F8 02602025 */ move $a0, $s3 -/* 0D4FFC 800D43FC 8FAE00B0 */ lw $t6, 0xb0($sp) -/* 0D5000 800D4400 1B20000D */ blez $t9, .L800D4438 -/* 0D5004 800D4404 8FAF00BC */ lw $t7, 0xbc($sp) -/* 0D5008 800D4408 01CF2821 */ addu $a1, $t6, $t7 -/* 0D500C 800D440C 0280F809 */ jalr $s4 -/* 0D5010 800D4410 03203025 */ move $a2, $t9 -/* 0D5014 800D4414 10400006 */ beqz $v0, .L800D4430 -/* 0D5018 800D4418 00409825 */ move $s3, $v0 -/* 0D501C 800D441C 8FB800D4 */ lw $t8, 0xd4($sp) -/* 0D5020 800D4420 8FAE00C4 */ lw $t6, 0xc4($sp) -/* 0D5024 800D4424 030E7821 */ addu $t7, $t8, $t6 -/* 0D5028 800D4428 10000003 */ b .L800D4438 -/* 0D502C 800D442C AFAF00D4 */ sw $t7, 0xd4($sp) -.L800D4430: -/* 0D5030 800D4430 1000003C */ b .L800D4524 -/* 0D5034 800D4434 8FA200D4 */ lw $v0, 0xd4($sp) -.L800D4438: -/* 0D5038 800D4438 8FB900C8 */ lw $t9, 0xc8($sp) -/* 0D503C 800D443C 0019C02A */ slt $t8, $zero, $t9 -/* 0D5040 800D4440 53000019 */ beql $t8, $zero, .L800D44A8 -/* 0D5044 800D4444 8FB900D8 */ lw $t9, 0xd8($sp) -/* 0D5048 800D4448 13000016 */ beqz $t8, .L800D44A4 -/* 0D504C 800D444C 03208825 */ move $s1, $t9 -/* 0D5050 800D4450 2E210021 */ sltiu $at, $s1, 0x21 -.L800D4454: -/* 0D5054 800D4454 14200003 */ bnez $at, .L800D4464 -/* 0D5058 800D4458 02208025 */ move $s0, $s1 -/* 0D505C 800D445C 10000001 */ b .L800D4464 -/* 0D5060 800D4460 24100020 */ li $s0, 32 -.L800D4464: -/* 0D5064 800D4464 1A00000C */ blez $s0, .L800D4498 -/* 0D5068 800D4468 02602025 */ move $a0, $s3 -/* 0D506C 800D446C 02A02825 */ move $a1, $s5 -/* 0D5070 800D4470 0280F809 */ jalr $s4 -/* 0D5074 800D4474 02003025 */ move $a2, $s0 -/* 0D5078 800D4478 10400005 */ beqz $v0, .L800D4490 -/* 0D507C 800D447C 00409825 */ move $s3, $v0 -/* 0D5080 800D4480 8FAE00D4 */ lw $t6, 0xd4($sp) -/* 0D5084 800D4484 01D07821 */ addu $t7, $t6, $s0 -/* 0D5088 800D4488 10000003 */ b .L800D4498 -/* 0D508C 800D448C AFAF00D4 */ sw $t7, 0xd4($sp) -.L800D4490: -/* 0D5090 800D4490 10000024 */ b .L800D4524 -/* 0D5094 800D4494 8FA200D4 */ lw $v0, 0xd4($sp) -.L800D4498: -/* 0D5098 800D4498 02308823 */ subu $s1, $s1, $s0 -/* 0D509C 800D449C 5E20FFED */ bgtzl $s1, .L800D4454 -/* 0D50A0 800D44A0 2E210021 */ sltiu $at, $s1, 0x21 -.L800D44A4: -/* 0D50A4 800D44A4 8FB900D8 */ lw $t9, 0xd8($sp) -.L800D44A8: -/* 0D50A8 800D44A8 8FAE00D0 */ lw $t6, 0xd0($sp) -/* 0D50AC 800D44AC 33380004 */ andi $t8, $t9, 4 -/* 0D50B0 800D44B0 1300001A */ beqz $t8, .L800D451C -/* 0D50B4 800D44B4 000E782A */ slt $t7, $zero, $t6 -/* 0D50B8 800D44B8 11E00018 */ beqz $t7, .L800D451C -/* 0D50BC 800D44BC 00000000 */ nop -/* 0D50C0 800D44C0 11E00016 */ beqz $t7, .L800D451C -/* 0D50C4 800D44C4 01C08825 */ move $s1, $t6 -/* 0D50C8 800D44C8 2E210021 */ sltiu $at, $s1, 0x21 -.L800D44CC: -/* 0D50CC 800D44CC 14200003 */ bnez $at, .L800D44DC -/* 0D50D0 800D44D0 02208025 */ move $s0, $s1 -/* 0D50D4 800D44D4 10000001 */ b .L800D44DC -/* 0D50D8 800D44D8 24100020 */ li $s0, 32 -.L800D44DC: -/* 0D50DC 800D44DC 1A00000C */ blez $s0, .L800D4510 -/* 0D50E0 800D44E0 02602025 */ move $a0, $s3 -/* 0D50E4 800D44E4 02E02825 */ move $a1, $s7 -/* 0D50E8 800D44E8 0280F809 */ jalr $s4 -/* 0D50EC 800D44EC 02003025 */ move $a2, $s0 -/* 0D50F0 800D44F0 10400005 */ beqz $v0, .L800D4508 -/* 0D50F4 800D44F4 00409825 */ move $s3, $v0 -/* 0D50F8 800D44F8 8FB900D4 */ lw $t9, 0xd4($sp) -/* 0D50FC 800D44FC 0330C021 */ addu $t8, $t9, $s0 -/* 0D5100 800D4500 10000003 */ b .L800D4510 -/* 0D5104 800D4504 AFB800D4 */ sw $t8, 0xd4($sp) -.L800D4508: -/* 0D5108 800D4508 10000006 */ b .L800D4524 -/* 0D510C 800D450C 8FA200D4 */ lw $v0, 0xd4($sp) -.L800D4510: -/* 0D5110 800D4510 02308823 */ subu $s1, $s1, $s0 -/* 0D5114 800D4514 5E20FFED */ bgtzl $s1, .L800D44CC -/* 0D5118 800D4518 2E210021 */ sltiu $at, $s1, 0x21 -.L800D451C: -/* 0D511C 800D451C 1000FE94 */ b .L800D3F70 -/* 0D5120 800D4520 26470001 */ addiu $a3, $s2, 1 -.L800D4524: -/* 0D5124 800D4524 8FBF003C */ lw $ra, 0x3c($sp) -/* 0D5128 800D4528 8FB00018 */ lw $s0, 0x18($sp) -/* 0D512C 800D452C 8FB1001C */ lw $s1, 0x1c($sp) -/* 0D5130 800D4530 8FB20020 */ lw $s2, 0x20($sp) -/* 0D5134 800D4534 8FB30024 */ lw $s3, 0x24($sp) -/* 0D5138 800D4538 8FB40028 */ lw $s4, 0x28($sp) -/* 0D513C 800D453C 8FB5002C */ lw $s5, 0x2c($sp) -/* 0D5140 800D4540 8FB60030 */ lw $s6, 0x30($sp) -/* 0D5144 800D4544 8FB70034 */ lw $s7, 0x34($sp) -/* 0D5148 800D4548 8FBE0038 */ lw $fp, 0x38($sp) -/* 0D514C 800D454C 03E00008 */ jr $ra -/* 0D5150 800D4550 27BD00E0 */ addiu $sp, $sp, 0xe0 - -/* 0D5154 800D4554 00000000 */ nop -/* 0D5158 800D4558 00000000 */ nop -/* 0D515C 800D455C 00000000 */ nop diff --git a/lib/asm/non_matchings/unknown_0D43F0/_Putfld.s b/lib/asm/non_matchings/unknown_0D43F0/_Putfld.s deleted file mode 100644 index 430cb6d7..00000000 --- a/lib/asm/non_matchings/unknown_0D43F0/_Putfld.s +++ /dev/null @@ -1,467 +0,0 @@ -.late_rodata -glabel jpt_800E96E4 -.word L800D3C08, L800D3EE8, L800D3C08, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3AB8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3910, L800D3948, L800D3C08, L800D3C08, L800D3C08, L800D3EE8, L800D3948, L800D3EE8, L800D3EE8, L800D3EE8, L800D3EE8, L800D3D6C, L800D3AB8, L800D3E3C, L800D3EE8, L800D3EE8, L800D3E84, L800D3EE8, L800D3AB8, L800D3EE8, L800D3EE8, L800D3AB8 - -.text -glabel _Putfld -/* 0D44A0 800D38A0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0D44A4 800D38A4 AFA50020 */ sw $a1, 0x20($sp) -/* 0D44A8 800D38A8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0D44AC 800D38AC 30AE00FF */ andi $t6, $a1, 0xff -/* 0D44B0 800D38B0 29C10026 */ slti $at, $t6, 0x26 -/* 0D44B4 800D38B4 01C02825 */ move $a1, $t6 -/* 0D44B8 800D38B8 AE00000C */ sw $zero, 0xc($s0) -/* 0D44BC 800D38BC AE000010 */ sw $zero, 0x10($s0) -/* 0D44C0 800D38C0 AE000014 */ sw $zero, 0x14($s0) -/* 0D44C4 800D38C4 AE000018 */ sw $zero, 0x18($s0) -/* 0D44C8 800D38C8 AE00001C */ sw $zero, 0x1c($s0) -/* 0D44CC 800D38CC AE000020 */ sw $zero, 0x20($s0) -/* 0D44D0 800D38D0 1420000A */ bnez $at, .L800D38FC -/* 0D44D4 800D38D4 01C01825 */ move $v1, $t6 -/* 0D44D8 800D38D8 25CFFFBB */ addiu $t7, $t6, -0x45 -/* 0D44DC 800D38DC 2DE10034 */ sltiu $at, $t7, 0x34 -/* 0D44E0 800D38E0 10200181 */ beqz $at, .L800D3EE8 -/* 0D44E4 800D38E4 000F7880 */ sll $t7, $t7, 2 -/* 0D44E8 800D38E8 3C01800F */ lui $at, %hi(jpt_800E96E4) # $at, 0x800f -/* 0D44EC 800D38EC 002F0821 */ addu $at, $at, $t7 -/* 0D44F0 800D38F0 8C2F96E4 */ lw $t7, %lo(jpt_800E96E4)($at) -/* 0D44F4 800D38F4 01E00008 */ jr $t7 -/* 0D44F8 800D38F8 00000000 */ nop -.L800D38FC: -/* 0D44FC 800D38FC 24010025 */ li $at, 37 -/* 0D4500 800D3900 50610172 */ beql $v1, $at, .L800D3ECC -/* 0D4504 800D3904 8E18000C */ lw $t8, 0xc($s0) -/* 0D4508 800D3908 10000178 */ b .L800D3EEC -/* 0D450C 800D390C 8E0E000C */ lw $t6, 0xc($s0) -glabel L800D3910 -/* 0D4510 800D3910 8CD80000 */ lw $t8, ($a2) -/* 0D4514 800D3914 2401FFFC */ li $at, -4 -/* 0D4518 800D3918 27190003 */ addiu $t9, $t8, 3 -/* 0D451C 800D391C 03217024 */ and $t6, $t9, $at -/* 0D4520 800D3920 25CF0004 */ addiu $t7, $t6, 4 -/* 0D4524 800D3924 ACCF0000 */ sw $t7, ($a2) -/* 0D4528 800D3928 8E0E000C */ lw $t6, 0xc($s0) -/* 0D452C 800D392C 8DF9FFFC */ lw $t9, -4($t7) -/* 0D4530 800D3930 00EE7821 */ addu $t7, $a3, $t6 -/* 0D4534 800D3934 A1F90000 */ sb $t9, ($t7) -/* 0D4538 800D3938 8E18000C */ lw $t8, 0xc($s0) -/* 0D453C 800D393C 270E0001 */ addiu $t6, $t8, 1 -/* 0D4540 800D3940 1000016F */ b .L800D3F00 -/* 0D4544 800D3944 AE0E000C */ sw $t6, 0xc($s0) -glabel L800D3948 -/* 0D4548 800D3948 92020034 */ lbu $v0, 0x34($s0) -/* 0D454C 800D394C 2401006C */ li $at, 108 -/* 0D4550 800D3950 5441000D */ bnel $v0, $at, .L800D3988 -/* 0D4554 800D3954 2401004C */ li $at, 76 -/* 0D4558 800D3958 8CD90000 */ lw $t9, ($a2) -/* 0D455C 800D395C 2401FFFC */ li $at, -4 -/* 0D4560 800D3960 272F0003 */ addiu $t7, $t9, 3 -/* 0D4564 800D3964 01E1C024 */ and $t8, $t7, $at -/* 0D4568 800D3968 270E0004 */ addiu $t6, $t8, 4 -/* 0D456C 800D396C ACCE0000 */ sw $t6, ($a2) -/* 0D4570 800D3970 8DCFFFFC */ lw $t7, -4($t6) -/* 0D4574 800D3974 000FC7C3 */ sra $t8, $t7, 0x1f -/* 0D4578 800D3978 AE180000 */ sw $t8, ($s0) -/* 0D457C 800D397C 10000019 */ b .L800D39E4 -/* 0D4580 800D3980 AE0F0004 */ sw $t7, 4($s0) -/* 0D4584 800D3984 2401004C */ li $at, 76 -.L800D3988: -/* 0D4588 800D3988 5441000D */ bnel $v0, $at, .L800D39C0 -/* 0D458C 800D398C 8CCF0000 */ lw $t7, ($a2) -/* 0D4590 800D3990 8CCE0000 */ lw $t6, ($a2) -/* 0D4594 800D3994 2401FFF8 */ li $at, -8 -/* 0D4598 800D3998 25CF0007 */ addiu $t7, $t6, 7 -/* 0D459C 800D399C 01E1C024 */ and $t8, $t7, $at -/* 0D45A0 800D39A0 27190008 */ addiu $t9, $t8, 8 -/* 0D45A4 800D39A4 ACD90000 */ sw $t9, ($a2) -/* 0D45A8 800D39A8 8F38FFF8 */ lw $t8, -8($t9) -/* 0D45AC 800D39AC 8F39FFFC */ lw $t9, -4($t9) -/* 0D45B0 800D39B0 AE180000 */ sw $t8, ($s0) -/* 0D45B4 800D39B4 1000000B */ b .L800D39E4 -/* 0D45B8 800D39B8 AE190004 */ sw $t9, 4($s0) -/* 0D45BC 800D39BC 8CCF0000 */ lw $t7, ($a2) -.L800D39C0: -/* 0D45C0 800D39C0 2401FFFC */ li $at, -4 -/* 0D45C4 800D39C4 25EE0003 */ addiu $t6, $t7, 3 -/* 0D45C8 800D39C8 01C1C024 */ and $t8, $t6, $at -/* 0D45CC 800D39CC 27190004 */ addiu $t9, $t8, 4 -/* 0D45D0 800D39D0 ACD90000 */ sw $t9, ($a2) -/* 0D45D4 800D39D4 8F2EFFFC */ lw $t6, -4($t9) -/* 0D45D8 800D39D8 000EC7C3 */ sra $t8, $t6, 0x1f -/* 0D45DC 800D39DC AE180000 */ sw $t8, ($s0) -/* 0D45E0 800D39E0 AE0E0004 */ sw $t6, 4($s0) -.L800D39E4: -/* 0D45E4 800D39E4 920F0034 */ lbu $t7, 0x34($s0) -/* 0D45E8 800D39E8 24010068 */ li $at, 104 -/* 0D45EC 800D39EC 55E10008 */ bnel $t7, $at, .L800D3A10 -/* 0D45F0 800D39F0 8E0E0000 */ lw $t6, ($s0) -/* 0D45F4 800D39F4 8E0F0004 */ lw $t7, 4($s0) -/* 0D45F8 800D39F8 000FCC00 */ sll $t9, $t7, 0x10 -/* 0D45FC 800D39FC 00197403 */ sra $t6, $t9, 0x10 -/* 0D4600 800D3A00 000EC7C3 */ sra $t8, $t6, 0x1f -/* 0D4604 800D3A04 AE180000 */ sw $t8, ($s0) -/* 0D4608 800D3A08 AE0E0004 */ sw $t6, 4($s0) -/* 0D460C 800D3A0C 8E0E0000 */ lw $t6, ($s0) -.L800D3A10: -/* 0D4610 800D3A10 5DC0000E */ bgtzl $t6, .L800D3A4C -/* 0D4614 800D3A14 8E020030 */ lw $v0, 0x30($s0) -/* 0D4618 800D3A18 05C20004 */ bltzl $t6, .L800D3A2C -/* 0D461C 800D3A1C 8E19000C */ lw $t9, 0xc($s0) -/* 0D4620 800D3A20 1000000A */ b .L800D3A4C -/* 0D4624 800D3A24 8E020030 */ lw $v0, 0x30($s0) -/* 0D4628 800D3A28 8E19000C */ lw $t9, 0xc($s0) -.L800D3A2C: -/* 0D462C 800D3A2C 2418002D */ li $t8, 45 -/* 0D4630 800D3A30 00F97021 */ addu $t6, $a3, $t9 -/* 0D4634 800D3A34 A1D80000 */ sb $t8, ($t6) -/* 0D4638 800D3A38 8E0F000C */ lw $t7, 0xc($s0) -/* 0D463C 800D3A3C 25F90001 */ addiu $t9, $t7, 1 -/* 0D4640 800D3A40 10000016 */ b .L800D3A9C -/* 0D4644 800D3A44 AE19000C */ sw $t9, 0xc($s0) -/* 0D4648 800D3A48 8E020030 */ lw $v0, 0x30($s0) -.L800D3A4C: -/* 0D464C 800D3A4C 30580002 */ andi $t8, $v0, 2 -/* 0D4650 800D3A50 13000009 */ beqz $t8, .L800D3A78 -/* 0D4654 800D3A54 304E0001 */ andi $t6, $v0, 1 -/* 0D4658 800D3A58 8E0F000C */ lw $t7, 0xc($s0) -/* 0D465C 800D3A5C 240E002B */ li $t6, 43 -/* 0D4660 800D3A60 00EFC821 */ addu $t9, $a3, $t7 -/* 0D4664 800D3A64 A32E0000 */ sb $t6, ($t9) -/* 0D4668 800D3A68 8E18000C */ lw $t8, 0xc($s0) -/* 0D466C 800D3A6C 270F0001 */ addiu $t7, $t8, 1 -/* 0D4670 800D3A70 1000000A */ b .L800D3A9C -/* 0D4674 800D3A74 AE0F000C */ sw $t7, 0xc($s0) -.L800D3A78: -/* 0D4678 800D3A78 51C00009 */ beql $t6, $zero, .L800D3AA0 -/* 0D467C 800D3A7C 8E19000C */ lw $t9, 0xc($s0) -/* 0D4680 800D3A80 8E18000C */ lw $t8, 0xc($s0) -/* 0D4684 800D3A84 24190020 */ li $t9, 32 -/* 0D4688 800D3A88 00F87821 */ addu $t7, $a3, $t8 -/* 0D468C 800D3A8C A1F90000 */ sb $t9, ($t7) -/* 0D4690 800D3A90 8E0E000C */ lw $t6, 0xc($s0) -/* 0D4694 800D3A94 25D80001 */ addiu $t8, $t6, 1 -/* 0D4698 800D3A98 AE18000C */ sw $t8, 0xc($s0) -.L800D3A9C: -/* 0D469C 800D3A9C 8E19000C */ lw $t9, 0xc($s0) -.L800D3AA0: -/* 0D46A0 800D3AA0 02002025 */ move $a0, $s0 -/* 0D46A4 800D3AA4 03277821 */ addu $t7, $t9, $a3 -/* 0D46A8 800D3AA8 0C0359C0 */ jal _Litob -/* 0D46AC 800D3AAC AE0F0008 */ sw $t7, 8($s0) -/* 0D46B0 800D3AB0 10000114 */ b .L800D3F04 -/* 0D46B4 800D3AB4 8FBF0014 */ lw $ra, 0x14($sp) -glabel L800D3AB8 -/* 0D46B8 800D3AB8 92020034 */ lbu $v0, 0x34($s0) -/* 0D46BC 800D3ABC 2401006C */ li $at, 108 -/* 0D46C0 800D3AC0 5441000D */ bnel $v0, $at, .L800D3AF8 -/* 0D46C4 800D3AC4 2401004C */ li $at, 76 -/* 0D46C8 800D3AC8 8CCE0000 */ lw $t6, ($a2) -/* 0D46CC 800D3ACC 2401FFFC */ li $at, -4 -/* 0D46D0 800D3AD0 25D80003 */ addiu $t8, $t6, 3 -/* 0D46D4 800D3AD4 0301C824 */ and $t9, $t8, $at -/* 0D46D8 800D3AD8 272F0004 */ addiu $t7, $t9, 4 -/* 0D46DC 800D3ADC ACCF0000 */ sw $t7, ($a2) -/* 0D46E0 800D3AE0 8DF8FFFC */ lw $t8, -4($t7) -/* 0D46E4 800D3AE4 001877C3 */ sra $t6, $t8, 0x1f -/* 0D46E8 800D3AE8 AE0E0000 */ sw $t6, ($s0) -/* 0D46EC 800D3AEC 10000019 */ b .L800D3B54 -/* 0D46F0 800D3AF0 AE180004 */ sw $t8, 4($s0) -/* 0D46F4 800D3AF4 2401004C */ li $at, 76 -.L800D3AF8: -/* 0D46F8 800D3AF8 5441000D */ bnel $v0, $at, .L800D3B30 -/* 0D46FC 800D3AFC 8CCE0000 */ lw $t6, ($a2) -/* 0D4700 800D3B00 8CD90000 */ lw $t9, ($a2) -/* 0D4704 800D3B04 2401FFF8 */ li $at, -8 -/* 0D4708 800D3B08 27380007 */ addiu $t8, $t9, 7 -/* 0D470C 800D3B0C 03017024 */ and $t6, $t8, $at -/* 0D4710 800D3B10 25CF0008 */ addiu $t7, $t6, 8 -/* 0D4714 800D3B14 ACCF0000 */ sw $t7, ($a2) -/* 0D4718 800D3B18 8DF9FFFC */ lw $t9, -4($t7) -/* 0D471C 800D3B1C 8DF8FFF8 */ lw $t8, -8($t7) -/* 0D4720 800D3B20 AE190004 */ sw $t9, 4($s0) -/* 0D4724 800D3B24 1000000B */ b .L800D3B54 -/* 0D4728 800D3B28 AE180000 */ sw $t8, ($s0) -/* 0D472C 800D3B2C 8CCE0000 */ lw $t6, ($a2) -.L800D3B30: -/* 0D4730 800D3B30 2401FFFC */ li $at, -4 -/* 0D4734 800D3B34 25CF0003 */ addiu $t7, $t6, 3 -/* 0D4738 800D3B38 01E1C024 */ and $t8, $t7, $at -/* 0D473C 800D3B3C 27190004 */ addiu $t9, $t8, 4 -/* 0D4740 800D3B40 ACD90000 */ sw $t9, ($a2) -/* 0D4744 800D3B44 8F2FFFFC */ lw $t7, -4($t9) -/* 0D4748 800D3B48 000FC7C3 */ sra $t8, $t7, 0x1f -/* 0D474C 800D3B4C AE180000 */ sw $t8, ($s0) -/* 0D4750 800D3B50 AE0F0004 */ sw $t7, 4($s0) -.L800D3B54: -/* 0D4754 800D3B54 92020034 */ lbu $v0, 0x34($s0) -/* 0D4758 800D3B58 24010068 */ li $at, 104 -/* 0D475C 800D3B5C 14410007 */ bne $v0, $at, .L800D3B7C -/* 0D4760 800D3B60 00000000 */ nop -/* 0D4764 800D3B64 8E0F0004 */ lw $t7, 4($s0) -/* 0D4768 800D3B68 240E0000 */ li $t6, 0 -/* 0D476C 800D3B6C AE0E0000 */ sw $t6, ($s0) -/* 0D4770 800D3B70 31F9FFFF */ andi $t9, $t7, 0xffff -/* 0D4774 800D3B74 10000007 */ b .L800D3B94 -/* 0D4778 800D3B78 AE190004 */ sw $t9, 4($s0) -.L800D3B7C: -/* 0D477C 800D3B7C 54400006 */ bnezl $v0, .L800D3B98 -/* 0D4780 800D3B80 8E0F0030 */ lw $t7, 0x30($s0) -/* 0D4784 800D3B84 8E190004 */ lw $t9, 4($s0) -/* 0D4788 800D3B88 24180000 */ li $t8, 0 -/* 0D478C 800D3B8C AE180000 */ sw $t8, ($s0) -/* 0D4790 800D3B90 AE190004 */ sw $t9, 4($s0) -.L800D3B94: -/* 0D4794 800D3B94 8E0F0030 */ lw $t7, 0x30($s0) -.L800D3B98: -/* 0D4798 800D3B98 31EE0008 */ andi $t6, $t7, 8 -/* 0D479C 800D3B9C 51C00014 */ beql $t6, $zero, .L800D3BF0 -/* 0D47A0 800D3BA0 8E18000C */ lw $t8, 0xc($s0) -/* 0D47A4 800D3BA4 8E19000C */ lw $t9, 0xc($s0) -/* 0D47A8 800D3BA8 24180030 */ li $t8, 48 -/* 0D47AC 800D3BAC 24010078 */ li $at, 120 -/* 0D47B0 800D3BB0 00F97821 */ addu $t7, $a3, $t9 -/* 0D47B4 800D3BB4 A1F80000 */ sb $t8, ($t7) -/* 0D47B8 800D3BB8 8E0E000C */ lw $t6, 0xc($s0) -/* 0D47BC 800D3BBC 25D90001 */ addiu $t9, $t6, 1 -/* 0D47C0 800D3BC0 10610004 */ beq $v1, $at, .L800D3BD4 -/* 0D47C4 800D3BC4 AE19000C */ sw $t9, 0xc($s0) -/* 0D47C8 800D3BC8 24010058 */ li $at, 88 -/* 0D47CC 800D3BCC 54610008 */ bnel $v1, $at, .L800D3BF0 -/* 0D47D0 800D3BD0 8E18000C */ lw $t8, 0xc($s0) -.L800D3BD4: -/* 0D47D4 800D3BD4 8E18000C */ lw $t8, 0xc($s0) -/* 0D47D8 800D3BD8 00F87821 */ addu $t7, $a3, $t8 -/* 0D47DC 800D3BDC A1E50000 */ sb $a1, ($t7) -/* 0D47E0 800D3BE0 8E0E000C */ lw $t6, 0xc($s0) -/* 0D47E4 800D3BE4 25D90001 */ addiu $t9, $t6, 1 -/* 0D47E8 800D3BE8 AE19000C */ sw $t9, 0xc($s0) -/* 0D47EC 800D3BEC 8E18000C */ lw $t8, 0xc($s0) -.L800D3BF0: -/* 0D47F0 800D3BF0 02002025 */ move $a0, $s0 -/* 0D47F4 800D3BF4 03077821 */ addu $t7, $t8, $a3 -/* 0D47F8 800D3BF8 0C0359C0 */ jal _Litob -/* 0D47FC 800D3BFC AE0F0008 */ sw $t7, 8($s0) -/* 0D4800 800D3C00 100000C0 */ b .L800D3F04 -/* 0D4804 800D3C04 8FBF0014 */ lw $ra, 0x14($sp) -glabel L800D3C08 -/* 0D4808 800D3C08 920E0034 */ lbu $t6, 0x34($s0) -/* 0D480C 800D3C0C 2401004C */ li $at, 76 -/* 0D4810 800D3C10 55C10019 */ bnel $t6, $at, .L800D3C78 -/* 0D4814 800D3C14 8CC20000 */ lw $v0, ($a2) -/* 0D4818 800D3C18 8CC20000 */ lw $v0, ($a2) -/* 0D481C 800D3C1C 30590001 */ andi $t9, $v0, 1 -/* 0D4820 800D3C20 13200005 */ beqz $t9, .L800D3C38 -/* 0D4824 800D3C24 00401825 */ move $v1, $v0 -/* 0D4828 800D3C28 24780007 */ addiu $t8, $v1, 7 -/* 0D482C 800D3C2C ACD80000 */ sw $t8, ($a2) -/* 0D4830 800D3C30 1000000D */ b .L800D3C68 -/* 0D4834 800D3C34 2702FFEA */ addiu $v0, $t8, -0x16 -.L800D3C38: -/* 0D4838 800D3C38 306F0002 */ andi $t7, $v1, 2 -/* 0D483C 800D3C3C 11E00005 */ beqz $t7, .L800D3C54 -/* 0D4840 800D3C40 24590007 */ addiu $t9, $v0, 7 -/* 0D4844 800D3C44 246E000A */ addiu $t6, $v1, 0xa -/* 0D4848 800D3C48 ACCE0000 */ sw $t6, ($a2) -/* 0D484C 800D3C4C 10000005 */ b .L800D3C64 -/* 0D4850 800D3C50 25C4FFD8 */ addiu $a0, $t6, -0x28 -.L800D3C54: -/* 0D4854 800D3C54 2401FFF8 */ li $at, -8 -/* 0D4858 800D3C58 0321C024 */ and $t8, $t9, $at -/* 0D485C 800D3C5C 27040008 */ addiu $a0, $t8, 8 -/* 0D4860 800D3C60 ACC40000 */ sw $a0, ($a2) -.L800D3C64: -/* 0D4864 800D3C64 00801025 */ move $v0, $a0 -.L800D3C68: -/* 0D4868 800D3C68 D444FFF8 */ ldc1 $f4, -8($v0) -/* 0D486C 800D3C6C 10000017 */ b .L800D3CCC -/* 0D4870 800D3C70 F6040000 */ sdc1 $f4, ($s0) -/* 0D4874 800D3C74 8CC20000 */ lw $v0, ($a2) -.L800D3C78: -/* 0D4878 800D3C78 304E0001 */ andi $t6, $v0, 1 -/* 0D487C 800D3C7C 11C00005 */ beqz $t6, .L800D3C94 -/* 0D4880 800D3C80 00401825 */ move $v1, $v0 -/* 0D4884 800D3C84 24790007 */ addiu $t9, $v1, 7 -/* 0D4888 800D3C88 ACD90000 */ sw $t9, ($a2) -/* 0D488C 800D3C8C 1000000D */ b .L800D3CC4 -/* 0D4890 800D3C90 2722FFEA */ addiu $v0, $t9, -0x16 -.L800D3C94: -/* 0D4894 800D3C94 30780002 */ andi $t8, $v1, 2 -/* 0D4898 800D3C98 13000005 */ beqz $t8, .L800D3CB0 -/* 0D489C 800D3C9C 244E0007 */ addiu $t6, $v0, 7 -/* 0D48A0 800D3CA0 246F000A */ addiu $t7, $v1, 0xa -/* 0D48A4 800D3CA4 ACCF0000 */ sw $t7, ($a2) -/* 0D48A8 800D3CA8 10000005 */ b .L800D3CC0 -/* 0D48AC 800D3CAC 25E4FFD8 */ addiu $a0, $t7, -0x28 -.L800D3CB0: -/* 0D48B0 800D3CB0 2401FFF8 */ li $at, -8 -/* 0D48B4 800D3CB4 01C1C824 */ and $t9, $t6, $at -/* 0D48B8 800D3CB8 27240008 */ addiu $a0, $t9, 8 -/* 0D48BC 800D3CBC ACC40000 */ sw $a0, ($a2) -.L800D3CC0: -/* 0D48C0 800D3CC0 00801025 */ move $v0, $a0 -.L800D3CC4: -/* 0D48C4 800D3CC4 D446FFF8 */ ldc1 $f6, -8($v0) -/* 0D48C8 800D3CC8 F6060000 */ sdc1 $f6, ($s0) -.L800D3CCC: -/* 0D48CC 800D3CCC 960F0000 */ lhu $t7, ($s0) -/* 0D48D0 800D3CD0 31EE8000 */ andi $t6, $t7, 0x8000 -/* 0D48D4 800D3CD4 51C0000A */ beql $t6, $zero, .L800D3D00 -/* 0D48D8 800D3CD8 8E020030 */ lw $v0, 0x30($s0) -/* 0D48DC 800D3CDC 8E18000C */ lw $t8, 0xc($s0) -/* 0D48E0 800D3CE0 2419002D */ li $t9, 45 -/* 0D48E4 800D3CE4 00F87821 */ addu $t7, $a3, $t8 -/* 0D48E8 800D3CE8 A1F90000 */ sb $t9, ($t7) -/* 0D48EC 800D3CEC 8E0E000C */ lw $t6, 0xc($s0) -/* 0D48F0 800D3CF0 25D80001 */ addiu $t8, $t6, 1 -/* 0D48F4 800D3CF4 10000016 */ b .L800D3D50 -/* 0D48F8 800D3CF8 AE18000C */ sw $t8, 0xc($s0) -/* 0D48FC 800D3CFC 8E020030 */ lw $v0, 0x30($s0) -.L800D3D00: -/* 0D4900 800D3D00 30590002 */ andi $t9, $v0, 2 -/* 0D4904 800D3D04 13200009 */ beqz $t9, .L800D3D2C -/* 0D4908 800D3D08 304F0001 */ andi $t7, $v0, 1 -/* 0D490C 800D3D0C 8E0E000C */ lw $t6, 0xc($s0) -/* 0D4910 800D3D10 240F002B */ li $t7, 43 -/* 0D4914 800D3D14 00EEC021 */ addu $t8, $a3, $t6 -/* 0D4918 800D3D18 A30F0000 */ sb $t7, ($t8) -/* 0D491C 800D3D1C 8E19000C */ lw $t9, 0xc($s0) -/* 0D4920 800D3D20 272E0001 */ addiu $t6, $t9, 1 -/* 0D4924 800D3D24 1000000A */ b .L800D3D50 -/* 0D4928 800D3D28 AE0E000C */ sw $t6, 0xc($s0) -.L800D3D2C: -/* 0D492C 800D3D2C 51E00009 */ beql $t7, $zero, .L800D3D54 -/* 0D4930 800D3D30 8E18000C */ lw $t8, 0xc($s0) -/* 0D4934 800D3D34 8E19000C */ lw $t9, 0xc($s0) -/* 0D4938 800D3D38 24180020 */ li $t8, 32 -/* 0D493C 800D3D3C 00F97021 */ addu $t6, $a3, $t9 -/* 0D4940 800D3D40 A1D80000 */ sb $t8, ($t6) -/* 0D4944 800D3D44 8E0F000C */ lw $t7, 0xc($s0) -/* 0D4948 800D3D48 25F90001 */ addiu $t9, $t7, 1 -/* 0D494C 800D3D4C AE19000C */ sw $t9, 0xc($s0) -.L800D3D50: -/* 0D4950 800D3D50 8E18000C */ lw $t8, 0xc($s0) -.L800D3D54: -/* 0D4954 800D3D54 02002025 */ move $a0, $s0 -/* 0D4958 800D3D58 03077021 */ addu $t6, $t8, $a3 -/* 0D495C 800D3D5C 0C035BC4 */ jal _Ldtob -/* 0D4960 800D3D60 AE0E0008 */ sw $t6, 8($s0) -/* 0D4964 800D3D64 10000067 */ b .L800D3F04 -/* 0D4968 800D3D68 8FBF0014 */ lw $ra, 0x14($sp) -glabel L800D3D6C -/* 0D496C 800D3D6C 92020034 */ lbu $v0, 0x34($s0) -/* 0D4970 800D3D70 24010068 */ li $at, 104 -/* 0D4974 800D3D74 5441000C */ bnel $v0, $at, .L800D3DA8 -/* 0D4978 800D3D78 2401006C */ li $at, 108 -/* 0D497C 800D3D7C 8CCF0000 */ lw $t7, ($a2) -/* 0D4980 800D3D80 2401FFFC */ li $at, -4 -/* 0D4984 800D3D84 25F90003 */ addiu $t9, $t7, 3 -/* 0D4988 800D3D88 0321C024 */ and $t8, $t9, $at -/* 0D498C 800D3D8C 270E0004 */ addiu $t6, $t8, 4 -/* 0D4990 800D3D90 ACCE0000 */ sw $t6, ($a2) -/* 0D4994 800D3D94 8DD9FFFC */ lw $t9, -4($t6) -/* 0D4998 800D3D98 8E0F002C */ lw $t7, 0x2c($s0) -/* 0D499C 800D3D9C 10000058 */ b .L800D3F00 -/* 0D49A0 800D3DA0 A72F0000 */ sh $t7, ($t9) -/* 0D49A4 800D3DA4 2401006C */ li $at, 108 -.L800D3DA8: -/* 0D49A8 800D3DA8 5441000C */ bnel $v0, $at, .L800D3DDC -/* 0D49AC 800D3DAC 2401004C */ li $at, 76 -/* 0D49B0 800D3DB0 8CD80000 */ lw $t8, ($a2) -/* 0D49B4 800D3DB4 2401FFFC */ li $at, -4 -/* 0D49B8 800D3DB8 270E0003 */ addiu $t6, $t8, 3 -/* 0D49BC 800D3DBC 01C17824 */ and $t7, $t6, $at -/* 0D49C0 800D3DC0 25F90004 */ addiu $t9, $t7, 4 -/* 0D49C4 800D3DC4 ACD90000 */ sw $t9, ($a2) -/* 0D49C8 800D3DC8 8F2EFFFC */ lw $t6, -4($t9) -/* 0D49CC 800D3DCC 8E18002C */ lw $t8, 0x2c($s0) -/* 0D49D0 800D3DD0 1000004B */ b .L800D3F00 -/* 0D49D4 800D3DD4 ADD80000 */ sw $t8, ($t6) -/* 0D49D8 800D3DD8 2401004C */ li $at, 76 -.L800D3DDC: -/* 0D49DC 800D3DDC 5441000E */ bnel $v0, $at, .L800D3E18 -/* 0D49E0 800D3DE0 8CCF0000 */ lw $t7, ($a2) -/* 0D49E4 800D3DE4 8CCF0000 */ lw $t7, ($a2) -/* 0D49E8 800D3DE8 2401FFFC */ li $at, -4 -/* 0D49EC 800D3DEC 25F90003 */ addiu $t9, $t7, 3 -/* 0D49F0 800D3DF0 0321C024 */ and $t8, $t9, $at -/* 0D49F4 800D3DF4 270E0004 */ addiu $t6, $t8, 4 -/* 0D49F8 800D3DF8 ACCE0000 */ sw $t6, ($a2) -/* 0D49FC 800D3DFC 8DCEFFFC */ lw $t6, -4($t6) -/* 0D4A00 800D3E00 8E0F002C */ lw $t7, 0x2c($s0) -/* 0D4A04 800D3E04 24180000 */ li $t8, 0 -/* 0D4A08 800D3E08 ADD80000 */ sw $t8, ($t6) -/* 0D4A0C 800D3E0C 1000003C */ b .L800D3F00 -/* 0D4A10 800D3E10 ADCF0004 */ sw $t7, 4($t6) -/* 0D4A14 800D3E14 8CCF0000 */ lw $t7, ($a2) -.L800D3E18: -/* 0D4A18 800D3E18 2401FFFC */ li $at, -4 -/* 0D4A1C 800D3E1C 25F80003 */ addiu $t8, $t7, 3 -/* 0D4A20 800D3E20 0301C824 */ and $t9, $t8, $at -/* 0D4A24 800D3E24 272E0004 */ addiu $t6, $t9, 4 -/* 0D4A28 800D3E28 ACCE0000 */ sw $t6, ($a2) -/* 0D4A2C 800D3E2C 8DD8FFFC */ lw $t8, -4($t6) -/* 0D4A30 800D3E30 8E0F002C */ lw $t7, 0x2c($s0) -/* 0D4A34 800D3E34 10000032 */ b .L800D3F00 -/* 0D4A38 800D3E38 AF0F0000 */ sw $t7, ($t8) -glabel L800D3E3C -/* 0D4A3C 800D3E3C 8CD90000 */ lw $t9, ($a2) -/* 0D4A40 800D3E40 2401FFFC */ li $at, -4 -/* 0D4A44 800D3E44 02002025 */ move $a0, $s0 -/* 0D4A48 800D3E48 272E0003 */ addiu $t6, $t9, 3 -/* 0D4A4C 800D3E4C 01C17824 */ and $t7, $t6, $at -/* 0D4A50 800D3E50 25F80004 */ addiu $t8, $t7, 4 -/* 0D4A54 800D3E54 ACD80000 */ sw $t8, ($a2) -/* 0D4A58 800D3E58 8F0EFFFC */ lw $t6, -4($t8) -/* 0D4A5C 800D3E5C 8E0F000C */ lw $t7, 0xc($s0) -/* 0D4A60 800D3E60 24050078 */ li $a1, 120 -/* 0D4A64 800D3E64 000EC7C3 */ sra $t8, $t6, 0x1f -/* 0D4A68 800D3E68 AE0E0004 */ sw $t6, 4($s0) -/* 0D4A6C 800D3E6C 01E77021 */ addu $t6, $t7, $a3 -/* 0D4A70 800D3E70 AE180000 */ sw $t8, ($s0) -/* 0D4A74 800D3E74 0C0359C0 */ jal _Litob -/* 0D4A78 800D3E78 AE0E0008 */ sw $t6, 8($s0) -/* 0D4A7C 800D3E7C 10000021 */ b .L800D3F04 -/* 0D4A80 800D3E80 8FBF0014 */ lw $ra, 0x14($sp) -glabel L800D3E84 -/* 0D4A84 800D3E84 8CD80000 */ lw $t8, ($a2) -/* 0D4A88 800D3E88 2401FFFC */ li $at, -4 -/* 0D4A8C 800D3E8C 27190003 */ addiu $t9, $t8, 3 -/* 0D4A90 800D3E90 03217824 */ and $t7, $t9, $at -/* 0D4A94 800D3E94 25EE0004 */ addiu $t6, $t7, 4 -/* 0D4A98 800D3E98 ACCE0000 */ sw $t6, ($a2) -/* 0D4A9C 800D3E9C 8DC4FFFC */ lw $a0, -4($t6) -/* 0D4AA0 800D3EA0 0C033867 */ jal strlen -/* 0D4AA4 800D3EA4 AE040008 */ sw $a0, 8($s0) -/* 0D4AA8 800D3EA8 8E030024 */ lw $v1, 0x24($s0) -/* 0D4AAC 800D3EAC AE020014 */ sw $v0, 0x14($s0) -/* 0D4AB0 800D3EB0 04600013 */ bltz $v1, .L800D3F00 -/* 0D4AB4 800D3EB4 0062082A */ slt $at, $v1, $v0 -/* 0D4AB8 800D3EB8 50200012 */ beql $at, $zero, .L800D3F04 -/* 0D4ABC 800D3EBC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D4AC0 800D3EC0 1000000F */ b .L800D3F00 -/* 0D4AC4 800D3EC4 AE030014 */ sw $v1, 0x14($s0) -/* 0D4AC8 800D3EC8 8E18000C */ lw $t8, 0xc($s0) -.L800D3ECC: -/* 0D4ACC 800D3ECC 240E0025 */ li $t6, 37 -/* 0D4AD0 800D3ED0 00F8C821 */ addu $t9, $a3, $t8 -/* 0D4AD4 800D3ED4 A32E0000 */ sb $t6, ($t9) -/* 0D4AD8 800D3ED8 8E0F000C */ lw $t7, 0xc($s0) -/* 0D4ADC 800D3EDC 25F80001 */ addiu $t8, $t7, 1 -/* 0D4AE0 800D3EE0 10000007 */ b .L800D3F00 -/* 0D4AE4 800D3EE4 AE18000C */ sw $t8, 0xc($s0) -.L800D3EE8: -glabel L800D3EE8 -/* 0D4AE8 800D3EE8 8E0E000C */ lw $t6, 0xc($s0) -.L800D3EEC: -/* 0D4AEC 800D3EEC 00EEC821 */ addu $t9, $a3, $t6 -/* 0D4AF0 800D3EF0 A3250000 */ sb $a1, ($t9) -/* 0D4AF4 800D3EF4 8E0F000C */ lw $t7, 0xc($s0) -/* 0D4AF8 800D3EF8 25F80001 */ addiu $t8, $t7, 1 -/* 0D4AFC 800D3EFC AE18000C */ sw $t8, 0xc($s0) -.L800D3F00: -/* 0D4B00 800D3F00 8FBF0014 */ lw $ra, 0x14($sp) -.L800D3F04: -/* 0D4B04 800D3F04 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0D4B08 800D3F08 03E00008 */ jr $ra -/* 0D4B0C 800D3F0C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D43F0/alCopy.s b/lib/asm/non_matchings/unknown_0D43F0/alCopy.s deleted file mode 100644 index 17bcae43..00000000 --- a/lib/asm/non_matchings/unknown_0D43F0/alCopy.s +++ /dev/null @@ -1,37 +0,0 @@ -glabel alCopy -/* 0D4420 800D3820 00801025 */ move $v0, $a0 -/* 0D4424 800D3824 00A01825 */ move $v1, $a1 -/* 0D4428 800D3828 18C00018 */ blez $a2, .L800D388C -/* 0D442C 800D382C 00003825 */ move $a3, $zero -/* 0D4430 800D3830 30C50003 */ andi $a1, $a2, 3 -/* 0D4434 800D3834 10A00009 */ beqz $a1, .L800D385C -/* 0D4438 800D3838 00A02025 */ move $a0, $a1 -.L800D383C: -/* 0D443C 800D383C 904E0000 */ lbu $t6, ($v0) -/* 0D4440 800D3840 24E70001 */ addiu $a3, $a3, 1 -/* 0D4444 800D3844 24630001 */ addiu $v1, $v1, 1 -/* 0D4448 800D3848 24420001 */ addiu $v0, $v0, 1 -/* 0D444C 800D384C 1487FFFB */ bne $a0, $a3, .L800D383C -/* 0D4450 800D3850 A06EFFFF */ sb $t6, -1($v1) -/* 0D4454 800D3854 10E6000D */ beq $a3, $a2, .L800D388C -/* 0D4458 800D3858 00000000 */ nop -.L800D385C: -/* 0D445C 800D385C 904F0000 */ lbu $t7, ($v0) -/* 0D4460 800D3860 24E70004 */ addiu $a3, $a3, 4 -/* 0D4464 800D3864 24630004 */ addiu $v1, $v1, 4 -/* 0D4468 800D3868 A06FFFFC */ sb $t7, -4($v1) -/* 0D446C 800D386C 90580001 */ lbu $t8, 1($v0) -/* 0D4470 800D3870 24420004 */ addiu $v0, $v0, 4 -/* 0D4474 800D3874 A078FFFD */ sb $t8, -3($v1) -/* 0D4478 800D3878 9059FFFE */ lbu $t9, -2($v0) -/* 0D447C 800D387C A079FFFE */ sb $t9, -2($v1) -/* 0D4480 800D3880 9048FFFF */ lbu $t0, -1($v0) -/* 0D4484 800D3884 14E6FFF5 */ bne $a3, $a2, .L800D385C -/* 0D4488 800D3888 A068FFFF */ sb $t0, -1($v1) -.L800D388C: -/* 0D448C 800D388C 03E00008 */ jr $ra -/* 0D4490 800D3890 00000000 */ nop - -/* 0D4494 800D3894 00000000 */ nop -/* 0D4498 800D3898 00000000 */ nop -/* 0D449C 800D389C 00000000 */ nop diff --git a/lib/src/al/alCSPGetChlVol.c b/lib/src/al/alCSPGetChlVol.c index 1289f492..d385d0b4 100644 --- a/lib/src/al/alCSPGetChlVol.c +++ b/lib/src/al/alCSPGetChlVol.c @@ -3,6 +3,6 @@ #include "audio_internal.h" -u8 alCSPGetChlVol(ALCSPlayer *seqp, u8 chan){ +u8 alCSPGetChlVol(ALCSPlayer *seqp, u8 chan) { return seqp->chanState[chan].vol; } \ No newline at end of file diff --git a/lib/src/unknown_0C84E0.c b/lib/src/al/alCSPSetChlPan.c similarity index 76% rename from lib/src/unknown_0C84E0.c rename to lib/src/al/alCSPSetChlPan.c index 6c5b05e9..96d4513a 100644 --- a/lib/src/unknown_0C84E0.c +++ b/lib/src/al/alCSPSetChlPan.c @@ -5,11 +5,7 @@ #include "macros.h" #include "audio_internal.h" -#if 1 -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C84E0/alCSPSetChlPan.s") -#else -void alCSPSetChlPan(ALCSPlayer *seqp, u8 chan, ALPan pan) -{ +void alCSPSetChlPan(ALCSPlayer *seqp, u8 chan, ALPan pan) { ALEvent evt; evt.type = AL_SEQP_MIDI_EVT; @@ -20,4 +16,3 @@ void alCSPSetChlPan(ALCSPlayer *seqp, u8 chan, ALPan pan) alEvtqPostEvent(&seqp->evtq, &evt, 0); } -#endif \ No newline at end of file diff --git a/lib/src/unknown_0C85E0.c b/lib/src/al/alCSPSetTempo.c similarity index 79% rename from lib/src/unknown_0C85E0.c rename to lib/src/al/alCSPSetTempo.c index 14eaec0f..5969ed34 100644 --- a/lib/src/unknown_0C85E0.c +++ b/lib/src/al/alCSPSetTempo.c @@ -5,12 +5,7 @@ #include "macros.h" #include "audio_internal.h" - -#if 1 -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C85E0/alCSPSetTempo.s") -#else -void alCSPSetTempo(ALCSPlayer *seqp, s32 tempo) -{ +void alCSPSetTempo(ALCSPlayer *seqp, s32 tempo) { ALEvent evt; evt.type = AL_SEQP_META_EVT; @@ -22,4 +17,3 @@ void alCSPSetTempo(ALCSPlayer *seqp, s32 tempo) alEvtqPostEvent(&seqp->evtq, &evt, 0); } -#endif \ No newline at end of file diff --git a/lib/src/al/alCopy.c b/lib/src/al/alCopy.c new file mode 100644 index 00000000..9134fa85 --- /dev/null +++ b/lib/src/al/alCopy.c @@ -0,0 +1,18 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D3820 */ + +#include "types.h" +#include "macros.h" + +//TODO: This probably belongs somewhere else +s32 D_800E48A0[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; + +void alCopy(void *src, void *dest, s32 len) { + s32 i; + u8 *s = (u8 *)src; + u8 *d = (u8 *)dest; + + for (i = 0; i < len; i++) { + *d++ = *s++; + } +} diff --git a/lib/src/al/alHeapInit.c b/lib/src/al/alHeapInit.c index af4734d6..2aa43af8 100644 --- a/lib/src/al/alHeapInit.c +++ b/lib/src/al/alHeapInit.c @@ -3,7 +3,7 @@ #include "audio_internal.h" -void alHeapInit(ALHeap *hp, u8 *base, s32 len){ +void alHeapInit(ALHeap *hp, u8 *base, s32 len) { s32 extraAlign = (AL_CACHE_ALIGN+1) - ((s32) base & AL_CACHE_ALIGN); if (extraAlign != AL_CACHE_ALIGN+1) diff --git a/lib/src/unknown_0C8650.c b/lib/src/al/global_asm/alCSPGetState.c similarity index 100% rename from lib/src/unknown_0C8650.c rename to lib/src/al/global_asm/alCSPGetState.c diff --git a/lib/src/unknown_0C8490.c b/lib/src/al/global_asm/alCSPGetTempo.c similarity index 76% rename from lib/src/unknown_0C8490.c rename to lib/src/al/global_asm/alCSPGetTempo.c index 8928019a..0e11d205 100644 --- a/lib/src/unknown_0C8490.c +++ b/lib/src/al/global_asm/alCSPGetTempo.c @@ -5,4 +5,3 @@ #include "macros.h" GLOBAL_ASM("lib/asm/non_matchings/unknown_0C8490/alCSPGetTempo.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C8490/osGetCount.s") diff --git a/lib/src/unknown_0C8660.c b/lib/src/al/global_asm/alCSPSetBank.c similarity index 100% rename from lib/src/unknown_0C8660.c rename to lib/src/al/global_asm/alCSPSetBank.c diff --git a/lib/src/unknown_0C8540.c b/lib/src/al/global_asm/alCSPSetChlVol.c similarity index 100% rename from lib/src/unknown_0C8540.c rename to lib/src/al/global_asm/alCSPSetChlVol.c diff --git a/lib/src/unknown_0C9160.c b/lib/src/al/global_asm/alCSPSetSeq.c similarity index 100% rename from lib/src/unknown_0C9160.c rename to lib/src/al/global_asm/alCSPSetSeq.c diff --git a/lib/src/unknown_0CA410.c b/lib/src/al/global_asm/alSynSetFXMix.c similarity index 100% rename from lib/src/unknown_0CA410.c rename to lib/src/al/global_asm/alSynSetFXMix.c diff --git a/lib/src/unknown_0CA380.c b/lib/src/al/global_asm/alSynSetPitch.c similarity index 100% rename from lib/src/unknown_0CA380.c rename to lib/src/al/global_asm/alSynSetPitch.c diff --git a/lib/src/unknown_0CA6E0.c b/lib/src/al/global_asm/alSynSetPriority.c similarity index 100% rename from lib/src/unknown_0CA6E0.c rename to lib/src/al/global_asm/alSynSetPriority.c diff --git a/lib/src/unknown_0CA250.c b/lib/src/al/global_asm/alSynSetVol.c similarity index 100% rename from lib/src/unknown_0CA250.c rename to lib/src/al/global_asm/alSynSetVol.c diff --git a/lib/src/unknown_0CA2F0.c b/lib/src/al/global_asm/alSynStartVoice.c similarity index 100% rename from lib/src/unknown_0CA2F0.c rename to lib/src/al/global_asm/alSynStartVoice.c diff --git a/lib/src/unknown_0CA4B0.c b/lib/src/al/global_asm/alSynStopVoice.c similarity index 100% rename from lib/src/unknown_0CA4B0.c rename to lib/src/al/global_asm/alSynStopVoice.c diff --git a/lib/src/unknown_0C86A0.c b/lib/src/al/global_asm/unknown_0C86A0.c similarity index 96% rename from lib/src/unknown_0C86A0.c rename to lib/src/al/global_asm/unknown_0C86A0.c index e1b75bf4..bab28d9d 100644 --- a/lib/src/unknown_0C86A0.c +++ b/lib/src/al/global_asm/unknown_0C86A0.c @@ -14,8 +14,7 @@ GLOBAL_ASM("lib/asm/non_matchings/unknown_0C86A0/__alCSeqGetTrackEvent.s") GLOBAL_ASM("lib/asm/non_matchings/unknown_0C86A0/alCSeqNew.s") GLOBAL_ASM("lib/asm/non_matchings/unknown_0C86A0/alCSeqNewMarker.s") -s32 alCSeqGetTicks(ALCSeq *seq) -{ +s32 alCSeqGetTicks(ALCSeq *seq) { return seq->lastTicks; } diff --git a/lib/src/al/global_asm/unknown_0C91A0.c b/lib/src/al/global_asm/unknown_0C91A0.c new file mode 100644 index 00000000..bfc31898 --- /dev/null +++ b/lib/src/al/global_asm/unknown_0C91A0.c @@ -0,0 +1,11 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C85A0 */ + +#include "libultra_internal.h" +#include "types.h" +#include "macros.h" + +ALGlobals *alGlobals = NULL; + +GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/alCSPPlay.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/alCSPStop.s") diff --git a/lib/src/al/global_asm/unknown_0C91A0_2.c b/lib/src/al/global_asm/unknown_0C91A0_2.c new file mode 100644 index 00000000..12588627 --- /dev/null +++ b/lib/src/al/global_asm/unknown_0C91A0_2.c @@ -0,0 +1,10 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C8760 */ + +#include "types.h" +#include "macros.h" + +GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/alUnlink.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/alLink.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/alClose.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/alInit.s") diff --git a/lib/src/unknown_0C9C90.c b/lib/src/al/global_asm/unknown_0C9C90.c similarity index 85% rename from lib/src/unknown_0C9C90.c rename to lib/src/al/global_asm/unknown_0C9C90.c index c98ef888..b7d47549 100644 --- a/lib/src/unknown_0C9C90.c +++ b/lib/src/al/global_asm/unknown_0C9C90.c @@ -8,27 +8,27 @@ void alEvtqFlushType(ALEventQueue *evtq, s16 type) { - ALLink *thisNode; - ALLink *nextNode; + ALLink *thisNode; + ALLink *nextNode; ALEventListItem *thisItem, *nextItem; - OSIntMask mask; + OSIntMask mask; mask = osSetIntMask(OS_IM_NONE); thisNode = evtq->allocList.next; while( thisNode != 0 ) { - nextNode = thisNode->next; - thisItem = (ALEventListItem *)thisNode; - nextItem = (ALEventListItem *)nextNode; - if (thisItem->evt.type == type) - { - if (nextItem) - nextItem->delta += thisItem->delta; - alUnlink(thisNode); - alLink(thisNode, &evtq->freeList); - } - thisNode = nextNode; + nextNode = thisNode->next; + thisItem = (ALEventListItem *)thisNode; + nextItem = (ALEventListItem *)nextNode; + if (thisItem->evt.type == type) + { + if (nextItem) + nextItem->delta += thisItem->delta; + alUnlink(thisNode); + alLink(thisNode, &evtq->freeList); + } + thisNode = nextNode; } osSetIntMask(mask); @@ -44,10 +44,10 @@ void alEvtqFlush(ALEventQueue *evtq) thisNode = evtq->allocList.next; while( thisNode != 0 ) { - nextNode = thisNode->next; - alUnlink(thisNode); - alLink(thisNode, &evtq->freeList); - thisNode = nextNode; + nextNode = thisNode->next; + alUnlink(thisNode); + alLink(thisNode, &evtq->freeList); + thisNode = nextNode; } osSetIntMask(mask); @@ -119,22 +119,19 @@ ALMicroTime alEvtqNextEvent(ALEventQueue *evtq, ALEvent *evt) { item = (ALEventListItem *)evtq->allocList.next; - if (item) - { + if (item) { alUnlink((ALLink *)item); alCopy(&item->evt, evt, sizeof(*evt)); alLink((ALLink *)item, &evtq->freeList); - delta = item->delta; - } - else - { + delta = item->delta; + } else { /* sct 11/28/95 - If we get here, most like we overflowed the event queue */ - /* with non-self-perpetuating events. Eg. if we filled the evtq with volume */ - /* events, then when the seqp is told to play it will handle all the events */ - /* at once completely emptying out the queue. At this point this problem */ - /* must be treated as an out of resource error and the evtq should be increased. */ - evt->type = -1; - delta = 0; + /* with non-self-perpetuating events. Eg. if we filled the evtq with volume */ + /* events, then when the seqp is told to play it will handle all the events */ + /* at once completely emptying out the queue. At this point this problem */ + /* must be treated as an out of resource error and the evtq should be increased. */ + evt->type = -1; + delta = 0; } osSetIntMask(mask); @@ -157,8 +154,7 @@ void alEvtqNew(ALEventQueue *evtq, ALEventListItem *items, s32 itemCount) { } } -void alSynAddPlayer(ALSynth *drvr, ALPlayer *client) -{ +void alSynAddPlayer(ALSynth *drvr, ALPlayer *client) { OSIntMask mask = osSetIntMask(OS_IM_NONE); client->samplesLeft = drvr->curSamples; @@ -205,8 +201,8 @@ s32 _allocatePVoice(ALSynth *drvr, PVoice **pvoice, s16 priority) } #endif -s32 alSynAllocVoice(ALSynth *drvr, ALVoice *voice, ALVoiceConfig *vc) -{ +ALParam *__allocParam(void); +s32 alSynAllocVoice(ALSynth *drvr, ALVoice *voice, ALVoiceConfig *vc) { PVoice *pvoice = 0; ALFilter *f; ALParam *update; @@ -276,4 +272,4 @@ s32 alSynAllocVoice(ALSynth *drvr, ALVoice *voice, ALVoiceConfig *vc) } return (pvoice != 0); -} \ No newline at end of file +} diff --git a/lib/src/unknown_0CA530.c b/lib/src/al/global_asm/unknown_0CA530.c similarity index 69% rename from lib/src/unknown_0CA530.c rename to lib/src/al/global_asm/unknown_0CA530.c index 0c6bbb03..967c2c76 100644 --- a/lib/src/unknown_0CA530.c +++ b/lib/src/al/global_asm/unknown_0CA530.c @@ -6,5 +6,3 @@ GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA530/alSynFreeVoice.s") GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA530/alCents2Ratio.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA530/osSetIntMask.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA530/sqrtf.s") diff --git a/lib/src/unknown_0C9A20.c b/lib/src/al/global_asm/unknown_0CA9A0.c similarity index 58% rename from lib/src/unknown_0C9A20.c rename to lib/src/al/global_asm/unknown_0CA9A0.c index 3d802000..a97ce015 100644 --- a/lib/src/unknown_0C9A20.c +++ b/lib/src/al/global_asm/unknown_0CA9A0.c @@ -1,10 +1,9 @@ /* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C8E20 */ +/* RAM_POS: 0x800CA0B0 */ #include "types.h" #include "macros.h" -// This probably does not belong here. Please move it to the appropriate place! #define EQPOWER_LENGTH 128 s16 eqpower[ EQPOWER_LENGTH ] = { 32767, 32764, 32757, 32744, 32727, 32704, @@ -31,4 +30,19 @@ s16 eqpower[ EQPOWER_LENGTH ] = { 405, 0 }; -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C9A20/func_800C8E20.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alFilterNew.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alEnvMixerPull.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alEnvmixerParam.s") +//Called by alEnvMixerPull +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/func_800CAC5C.s") +//Called by func_800CAC5C +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/func_800CB2D4.s") +//_getVol? +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/func_800CB498.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alLoadParam.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alRaw16Pull.s") +//Called by alLoadPull +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/func_800CBAC0.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alLoadPull.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alResampleParam.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alResamplePull.s") diff --git a/lib/src/al/global_asm/unknown_0CCF90.c b/lib/src/al/global_asm/unknown_0CCF90.c new file mode 100644 index 00000000..aa773f38 --- /dev/null +++ b/lib/src/al/global_asm/unknown_0CCF90.c @@ -0,0 +1,11 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800CC390 */ + +#include "types.h" +#include "macros.h" +#include "ultra64.h" + +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CCF90/alMainBusParam.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CCF90/alMainBusPull.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CCF90/alSaveParam.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CCF90/alSavePull.s") diff --git a/lib/src/gu/guMtxUtil.c b/lib/src/gu/guMtxUtil.c index 5979d8e1..f2cc2377 100644 --- a/lib/src/gu/guMtxUtil.c +++ b/lib/src/gu/guMtxUtil.c @@ -61,4 +61,4 @@ void guMtxL2F(float mf[4][4], Mtx *m) { mf[r][c * 2 + 1] = stmp2 / 65536.0f; } } -} \ No newline at end of file +} diff --git a/lib/src/gu/guPerspectiveF.c b/lib/src/gu/guPerspectiveF.c new file mode 100644 index 00000000..6ad42a70 --- /dev/null +++ b/lib/src/gu/guPerspectiveF.c @@ -0,0 +1,47 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800CC920 */ + +#include "types.h" +#include "macros.h" +#include "libc/math.h" +#include "PR/gu.h" + +void guPerspectiveF(Matrix mf, u16 *perspNorm, float fovy, float aspect, float near, float far, float scale) { + float cot; + int i, j; + + guMtxIdentF(mf); + + fovy *= 3.1415926 / 180.0; + cot = cosf (fovy/2) / sinf (fovy/2); + + mf[0][0] = cot / aspect; + mf[1][1] = cot; + mf[2][2] = (near + far) / (near - far); + mf[2][3] = -1; + mf[3][2] = (2 * near * far) / (near - far); + mf[3][3] = 0; + + for (i=0; i<4; i++) { + for (j=0; j<4; j++) + mf[i][j] *= scale; + } + + if (perspNorm != (u16 *) NULL) { + if (near+far<=2.0) { + *perspNorm = (u16) 0xFFFF; + } else { + *perspNorm = (u16) ((2.0*65536.0)/(near+far)); + if (*perspNorm<=0) + *perspNorm = (u16) 0x0001; + } + } +} + +void guPerspective(Mtx *m, u16 *perspNorm, float fovy, float aspect, float near, float far, float scale) { + Matrix mf; + + guPerspectiveF(mf, perspNorm, fovy, aspect, near, far, scale); + + guMtxF2L(mf, m); +} diff --git a/lib/src/gu/sqrtf.c b/lib/src/gu/sqrtf.c new file mode 100644 index 00000000..93e98c45 --- /dev/null +++ b/lib/src/gu/sqrtf.c @@ -0,0 +1,8 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C9AD0 */ + +#include "types.h" +#include "macros.h" + +//I don't believe it's possible to decomp this one +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA530/sqrtf.s") diff --git a/lib/src/unknown_0D56B0.c b/lib/src/gu/unknown_0D56B0.c similarity index 77% rename from lib/src/unknown_0D56B0.c rename to lib/src/gu/unknown_0D56B0.c index 6bf4a972..ed2687e8 100644 --- a/lib/src/unknown_0D56B0.c +++ b/lib/src/gu/unknown_0D56B0.c @@ -5,4 +5,4 @@ #include "macros.h" GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/cosf.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/sinf.s") \ No newline at end of file +GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/sinf.s") diff --git a/lib/src/libc/ldiv.c b/lib/src/libc/ldiv.c new file mode 100644 index 00000000..e0817018 --- /dev/null +++ b/lib/src/libc/ldiv.c @@ -0,0 +1,7 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D7470 */ + +#include "macros.h" + +GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/lldiv.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/ldiv.s") diff --git a/lib/src/libc/ll.c b/lib/src/libc/ll.c new file mode 100644 index 00000000..14be7eb1 --- /dev/null +++ b/lib/src/libc/ll.c @@ -0,0 +1,70 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800CE730 */ + +#include "types.h" +#include "macros.h" + +#ifdef NON_MATCHING +//Thse need to be compiled with -mips3, and linked differently +unsigned long long __ull_rshift(unsigned long long a0, unsigned long long a1) +{ + return a0 >> a1; +} +unsigned long long __ull_rem(unsigned long long a0, unsigned long long a1) +{ + return a0 % a1; +} +unsigned long long __ull_div(unsigned long long a0, unsigned long long a1) +{ + return a0 / a1; +} + +unsigned long long __ll_lshift(unsigned long long a0, unsigned long long a1) +{ + return a0 << a1; +} + +long long __ll_rem(unsigned long long a0, long long a1) +{ + return a0 % a1; +} + +long long __ll_div(long long a0, long long a1) +{ + return a0 / a1; +} + +unsigned long long __ll_mul(unsigned long long a0, unsigned long long a1) +{ + return a0 * a1; +} + +void __ull_divremi(unsigned long long *div, unsigned long long *rem, unsigned long long a2, unsigned short a3) +{ + *div = a2 / a3; + *rem = a2 % a3; +} +long long __ll_mod(long long a0, long long a1) +{ + long long tmp = a0 % a1; + if ((tmp < 0 && a1 > 0) || (tmp > 0 && a1 < 0)) + { + + tmp += a1; + } + return tmp; +} + +long long __ll_rshift(long long a0, long long a1) +{ + return a0 >> a1; +} +#else +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_rshift.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_rem.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_div.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ll_lshift.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ll_div.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ll_mul.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_divremi.s") +#endif diff --git a/lib/src/libc/llcvt.c b/lib/src/libc/llcvt.c new file mode 100644 index 00000000..2564a703 --- /dev/null +++ b/lib/src/libc/llcvt.c @@ -0,0 +1,39 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C9B30 */ + +#if 1 +#include "types.h" +#include "macros.h" + +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA730/__d_to_ll.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA730/__f_to_ll.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA730/__ll_to_f.s") + +#else +//This needs to be compiled with mips3, which isn't yet supported + +long long __d_to_ll(double d) { + return d; +} +long long __f_to_ll(float f) { + return f; +} +unsigned long long __d_to_ull(double d) { + return d; +} +unsigned long long __f_to_ull(float f) { + return f; +} +double __ll_to_d(long long s) { + return s; +} +float __ll_to_f(long long s) { + return s; +} +double __ull_to_d(unsigned long long u) { + return u; +} +float __ull_to_f(unsigned long long u) { + return u; +} +#endif diff --git a/lib/src/libc/rmonPrintf.c b/lib/src/libc/rmonPrintf.c new file mode 100644 index 00000000..0ef8a92b --- /dev/null +++ b/lib/src/libc/rmonPrintf.c @@ -0,0 +1,28 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C9D40 */ + +#include "rmonPrintf.h" +#include "types.h" +#include "macros.h" +#include "stdarg.h" +#include "xprintf.h" + +/** + * This gets called inside of _PrintF, but it is just a fake pointer returned + */ +static void *is_proutSyncPrintf(void *str, const char *buf, size_t n) { + return ((void *) 1); /* return a fake pointer so that it's not NULL */ +} + +/** + * Like sprintf, but simpler. It just hardcodes NULL for the dst, + * and calls a function that just hardcodes a fake pointer. + * Could still be an earlier version of osSyncPrintf + */ +void rmonPrintf(const char *format, ...) { + s32 written; + va_list args; + va_start(args, format); + written = _Printf(is_proutSyncPrintf, NULL, format, args); + va_end(args); +} diff --git a/lib/src/libc/rmonPrintf.h b/lib/src/libc/rmonPrintf.h new file mode 100644 index 00000000..40aedd96 --- /dev/null +++ b/lib/src/libc/rmonPrintf.h @@ -0,0 +1,8 @@ +#ifndef _RMONPRINTF_H_ +#define _RMONPRINTF_H_ +#include "types.h" +#include + +void rmonPrintf(const char *format, ...); + +#endif diff --git a/lib/src/string.c b/lib/src/libc/string.c similarity index 100% rename from lib/src/string.c rename to lib/src/libc/string.c diff --git a/lib/src/libc/xldtob.c b/lib/src/libc/xldtob.c new file mode 100644 index 00000000..d049fb67 --- /dev/null +++ b/lib/src/libc/xldtob.c @@ -0,0 +1,8 @@ + +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D69A0 */ + +#include "macros.h" + +GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/_Genld.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/_Ldtob.s") diff --git a/lib/src/libc/xlitob.c b/lib/src/libc/xlitob.c new file mode 100644 index 00000000..1f31ecda --- /dev/null +++ b/lib/src/libc/xlitob.c @@ -0,0 +1,7 @@ + +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D6700 */ + +#include "macros.h" + +GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/_Litob.s") diff --git a/lib/src/libc/xprintf.c b/lib/src/libc/xprintf.c new file mode 100644 index 00000000..d8d99026 --- /dev/null +++ b/lib/src/libc/xprintf.c @@ -0,0 +1,212 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D38A0 */ + +#include "types.h" +#include "macros.h" +#include "libultra_internal.h" +#include +#include +#include "xprintf.h" + +const char length_str[] = "hlL"; +const char flags_str[] = " +-#0"; +const u32 flags_arr[] = { FLAGS_SPACE, FLAGS_PLUS, FLAGS_MINUS, FLAGS_HASH, FLAGS_ZERO, 0 }; +char _spaces[] = " "; +char _zeroes[] = "00000000000000000000000000000000"; + +static void _Putfld(printf_struct *a0, va_list *args, u8 type, u8 *buff); +s32 _Printf(outfun prout, char *dst, const char *fmt, va_list args) { + printf_struct x; + const u8 *fmt_ptr; + u8 c; + const char *flag_index; + u8 ac[0x20]; // probably a buffer? + x.size = 0; + while (TRUE) { + fmt_ptr = (u8 *) fmt; + while ((c = *fmt_ptr++) > 0) { + if (c == '%') { + fmt_ptr--; + break; + } + } + _PROUT(fmt, fmt_ptr - (u8 *) fmt); + if (c == 0) { + return x.size; + } + fmt = (char *) ++fmt_ptr; + x.flags = 0; + for (; (flag_index = strchr(flags_str, *fmt_ptr)) != NULL; fmt_ptr++) { + x.flags |= flags_arr[flag_index - flags_str]; + } + if (*fmt_ptr == '*') { + x.width = va_arg(args, s32); + if (x.width < 0) { + x.width = -x.width; + x.flags |= FLAGS_MINUS; + } + fmt_ptr++; + } else { + ATOI(x.width, fmt_ptr); + } + if (*fmt_ptr != '.') { + x.precision = -1; + } else { + fmt_ptr++; + if (*fmt_ptr == '*') { + x.precision = va_arg(args, s32); + fmt_ptr++; + } else { + ATOI(x.precision, fmt_ptr); + } + } + if (strchr(length_str, *fmt_ptr) != NULL) { + x.length = *fmt_ptr++; + } else { + x.length = 0; + } + + if (x.length == 'l' && *fmt_ptr == 'l') { + x.length = 'L'; + fmt_ptr++; + } + _Putfld(&x, &args, *fmt_ptr, ac); + x.width -= x.n0 + x.num_leading_zeros + x.part2_len + x.num_mid_zeros + + x.part3_len + x.num_trailing_zeros; + if (!(x.flags & FLAGS_MINUS)) + _PAD(_spaces, x.width); + _PROUT((char *) ac, x.n0); + _PAD(_zeroes, x.num_leading_zeros); + _PROUT(x.buff, x.part2_len); + _PAD(_zeroes, x.num_mid_zeros); + _PROUT((char *) (&x.buff[x.part2_len]), x.part3_len) + _PAD(_zeroes, x.num_trailing_zeros); + if (x.flags & FLAGS_MINUS) + _PAD(_spaces, x.width); + fmt = (char *) fmt_ptr + 1; + } +} + +static void _Putfld(printf_struct *a0, va_list *args, u8 type, u8 *buff) { + a0->n0 = a0->num_leading_zeros = a0->part2_len = a0->num_mid_zeros = a0->part3_len = + a0->num_trailing_zeros = 0; + + switch (type) { + + case 'c': + buff[a0->n0++] = va_arg(*args, u32); + break; + + case 'd': + case 'i': + if (a0->length == 'l') { + a0->value.s64 = va_arg(*args, s32); + } else if (a0->length == 'L') { + a0->value.s64 = va_arg(*args, s64); + } else { + a0->value.s64 = va_arg(*args, s32); + } + + if (a0->length == 'h') { + a0->value.s64 = (s16) a0->value.s64; + } + + if (a0->value.s64 < 0) { + buff[a0->n0++] = '-'; + } else if (a0->flags & FLAGS_PLUS) { + buff[a0->n0++] = '+'; + } else if (a0->flags & FLAGS_SPACE) { + buff[a0->n0++] = ' '; + } + + a0->buff = (char *) &buff[a0->n0]; + + _Litob(a0, type); + break; + + case 'x': + case 'X': + case 'u': + case 'o': + if (a0->length == 'l') { + a0->value.s64 = va_arg(*args, s32); + } else if (a0->length == 'L') { + a0->value.s64 = va_arg(*args, s64); + } else { + a0->value.s64 = va_arg(*args, s32); + } + + if (a0->length == 'h') { + a0->value.s64 = (u16) a0->value.s64; + } else if (a0->length == 0) { + a0->value.s64 = (u32) a0->value.s64; + } + + if (a0->flags & FLAGS_HASH) { + buff[a0->n0++] = '0'; + if (type == 'x' || type == 'X') { + + buff[a0->n0++] = type; + } + } + a0->buff = (char *) &buff[a0->n0]; + _Litob(a0, type); + break; + + case 'e': + case 'f': + case 'g': + case 'E': + case 'G': + //... okay? + a0->value.f64 = a0->length == 'L' ? va_arg(*args, f64) : va_arg(*args, f64); + + if (LDSIGN(a0->value.f64)) { + buff[a0->n0++] = '-'; + } else { + if (a0->flags & FLAGS_PLUS) { + buff[a0->n0++] = '+'; + } else if (a0->flags & FLAGS_SPACE) { + buff[a0->n0++] = ' '; + } + } + + a0->buff = (char *) &buff[a0->n0]; + _Ldtob(a0, type); + break; + + case 'n': + if (a0->length == 'h') { + *(va_arg(*args, u16 *)) = a0->size; + } else if (a0->length == 'l') { + *va_arg(*args, u32 *) = a0->size; + } else if (a0->length == 'L') { + *va_arg(*args, u64 *) = a0->size; + } else { + *va_arg(*args, u32 *) = a0->size; + } + break; + + case 'p': + a0->value.s64 = (long) va_arg(*args, void *); + a0->buff = (char *) &buff[a0->n0]; + _Litob(a0, 'x'); + break; + + case 's': + a0->buff = va_arg(*args, char *); + a0->part2_len = strlen(a0->buff); + if (a0->precision >= 0 && a0->part2_len > a0->precision) { + a0->part2_len = a0->precision; + } + break; + + case '%': + buff[a0->n0++] = '%'; + break; + + default: + buff[a0->n0++] = type; + break; + } +} diff --git a/lib/src/libc/xprintf.h b/lib/src/libc/xprintf.h new file mode 100644 index 00000000..58962bf3 --- /dev/null +++ b/lib/src/libc/xprintf.h @@ -0,0 +1,62 @@ +#ifndef _PRINTF_H_ +#define _PRINTF_H_ +#include "types.h" +#include + +/** + * This is a definition for a function that gets passed to and + * will get called inside _PrintF + */ +typedef char *outfun(char *dst, const char *src, size_t count); +typedef struct { + union { + /* 00 */ long long s64; + double f64; + } value; + /* 08 */ char *buff; + /* 0c */ int n0; + /* 10 */ int num_leading_zeros; + /* 14 */ int part2_len; + /* 18 */ int num_mid_zeros; + /* 1c */ int part3_len; + /* 20 */ int num_trailing_zeros; + /* 24 */ int precision; + /* 28 */ int width; + /* 2c */ unsigned int size; + /* 30 */ unsigned int flags; + /* 34 */ unsigned char length; +} printf_struct; + +#define isdigit(x) ((x >= '0' && x <= '9')) +#define LDSIGN(x) (((unsigned short *)&(x))[0] & 0x8000) +#define ATOI(dst, src) \ + for (dst = 0; isdigit(*src); ++src) { \ + if (dst < 999) \ + dst = dst * 10 + *src - '0'; \ + } +#define _PROUT(fmt, _size) \ + if (_size > 0) { \ + dst = (*prout)(dst, fmt, _size); \ + if (dst != 0) \ + x.size += _size; \ + else \ + return x.size; \ + } +#define MAX_PAD ((sizeof(_spaces) - 1)) +#define _PAD(s, n) \ + if (0 < (n)) { \ + int i, j = (n); \ + for (; 0 < j; j -= i) { \ + i = MAX_PAD < (unsigned int)j ? (int)MAX_PAD : j; \ + _PROUT(s, i); \ + } \ + } +#define FLAGS_SPACE 1 +#define FLAGS_PLUS 2 +#define FLAGS_MINUS 4 +#define FLAGS_HASH 8 +#define FLAGS_ZERO 16 +s32 _Printf(outfun prout, char *dst, const char *fmt, va_list args); +void _Litob(printf_struct *args, u8 type); +void _Ldtob(printf_struct *args, u8 type); +#endif diff --git a/lib/src/mips1/al/reverb.c b/lib/src/mips1/al/reverb.c index 748f6c33..eb4ec0b3 100644 --- a/lib/src/mips1/al/reverb.c +++ b/lib/src/mips1/al/reverb.c @@ -5,6 +5,7 @@ #include "macros.h" #include "libultra_internal.h" #include "audio_internal.h" +#include "../../os/osVirtualToPhysical.h" /************ .data ************/ diff --git a/lib/src/mips1/al/seqplayer.c b/lib/src/mips1/al/seqplayer.c index 189b257b..c9c2d0fa 100644 --- a/lib/src/mips1/al/seqplayer.c +++ b/lib/src/mips1/al/seqplayer.c @@ -15,8 +15,8 @@ ALVoiceState *__mapVoice(ALSeqPlayer *seqp, u8 key, u8 vel, u8 channel) { ALVoiceState *vs = seqp->vFreeList; - if(seqp->unk70 < seqp->unk71) { - stubbed_printf("Exceeded voice limit of %d (%d)\n", seqp->unk70, seqp->unk71); + if(seqp->voiceLimit < seqp->mappedVoices) { + stubbed_printf("Exceeded voice limit of %d (%d)\n", seqp->voiceLimit, seqp->mappedVoices); return NULL; } @@ -37,7 +37,7 @@ ALVoiceState *__mapVoice(ALSeqPlayer *seqp, u8 key, u8 vel, u8 channel) vs->key = key; vs->velocity = vel; vs->voice.clientPrivate = vs; - seqp->unk71++; + seqp->mappedVoices++; } return vs; @@ -61,7 +61,7 @@ void __unmapVoice(ALSeqPlayer *seqp, ALVoice *voice) vs->next = seqp->vFreeList; seqp->vFreeList = vs; - seqp->unk71--; + seqp->mappedVoices--; return; } @@ -305,7 +305,9 @@ void __seqpStopOsc(ALSeqPlayer *seqp, ALVoiceState *vs) } } -void func_8000B010(ALCSPlayer *arg0, s8 arg1) { - //TODO: This doesn't seem to be the write way to do this, but it works for now. - (s8) arg0->initOsc = arg1; +/** + * The voice limit bytes seem to be unique to this game. + */ +void set_voice_limit(ALSeqPlayer *seqp, s8 voiceLimit) { + seqp->voiceLimit = voiceLimit; } diff --git a/lib/src/mips1/os/osCreatePiManager.c b/lib/src/mips1/os/osCreatePiManager.c index ebcba87b..f61adc56 100644 --- a/lib/src/mips1/os/osCreatePiManager.c +++ b/lib/src/mips1/os/osCreatePiManager.c @@ -17,38 +17,38 @@ OSMesgQueue piEventQueue; OSMesg piEventBuf[2]; void osCreatePiManager(OSPri pri, OSMesgQueue *cmdQ, OSMesg *cmdBuf, s32 cmdMsgCnt) { - u32 savedMask; - OSPri oldPri; - OSPri myPri; - if (!__osPiDevMgr.active) - { - osCreateMesgQueue(cmdQ, cmdBuf, cmdMsgCnt); - osCreateMesgQueue(&piEventQueue, (OSMesg*)&piEventBuf, 1); - if (!__osPiAccessQueueEnabled) - __osPiCreateAccessQueue(); - osSetEventMesg(OS_EVENT_PI, &piEventQueue, (OSMesg)0x22222222); - oldPri = -1; - myPri = osGetThreadPri(NULL); - if (myPri < pri) - { - oldPri = myPri; - osSetThreadPri(NULL, pri); - } - savedMask = __osDisableInt(); - __osPiDevMgr.active = 1; - __osPiDevMgr.thread = &piThread; - __osPiDevMgr.cmdQueue = cmdQ; - __osPiDevMgr.evtQueue = &piEventQueue; - __osPiDevMgr.acsQueue = &piAccessQueue; - __osPiDevMgr.dma = osPiRawStartDma; + u32 savedMask; + OSPri oldPri; + OSPri myPri; + if (!__osPiDevMgr.active) + { + osCreateMesgQueue(cmdQ, cmdBuf, cmdMsgCnt); + osCreateMesgQueue(&piEventQueue, (OSMesg*)&piEventBuf, 1); + if (!__osPiAccessQueueEnabled) + __osPiCreateAccessQueue(); + osSetEventMesg(OS_EVENT_PI, &piEventQueue, (OSMesg)0x22222222); + oldPri = -1; + myPri = osGetThreadPri(NULL); + if (myPri < pri) + { + oldPri = myPri; + osSetThreadPri(NULL, pri); + } + savedMask = __osDisableInt(); + __osPiDevMgr.active = 1; + __osPiDevMgr.thread = &piThread; + __osPiDevMgr.cmdQueue = cmdQ; + __osPiDevMgr.evtQueue = &piEventQueue; + __osPiDevMgr.acsQueue = &piAccessQueue; + __osPiDevMgr.dma = osPiRawStartDma; __osPiDevMgr.edma = osEPiRawStartDma; - osCreateThread(&piThread, 0, __osDevMgrMain, &__osPiDevMgr, &piThreadStack[OS_PIM_STACKSIZE], pri); - osStartThread(&piThread); - __osRestoreInt(savedMask); - if (oldPri != -1) - { - osSetThreadPri(NULL, oldPri); - } - } + osCreateThread(&piThread, 0, __osDevMgrMain, &__osPiDevMgr, &piThreadStack[OS_PIM_STACKSIZE], pri); + osStartThread(&piThread); + __osRestoreInt(savedMask); + if (oldPri != -1) + { + osSetThreadPri(NULL, oldPri); + } + } } diff --git a/lib/src/mips1/sc/sched.c b/lib/src/mips1/sc/sched.c index 0ef65685..5cb2a9d5 100644 --- a/lib/src/mips1/sc/sched.c +++ b/lib/src/mips1/sc/sched.c @@ -93,7 +93,7 @@ void osCreateScheduler(OSSched *sc, void *stack, OSPri priority, u8 mode, u8 num osSetEventMesg(OS_EVENT_DP, &sc->interruptQ, (OSMesg)668); osSetEventMesg(OS_EVENT_PRENMI, &sc->interruptQ, (OSMesg)669); - osViSetEventMsg(&sc->interruptQ, (OSMesg)666, numFields); + osViSetEvent(&sc->interruptQ, (OSMesg)666, numFields); osCreateThread(&sc->thread, 5, __scMain, (void *)sc, stack, priority); diff --git a/lib/src/mips1/unknown_072930.c b/lib/src/mips1/unknown_072930.c deleted file mode 100644 index 289845da..00000000 --- a/lib/src/mips1/unknown_072930.c +++ /dev/null @@ -1,7 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x80071D30 */ - -GLOBAL_ASM("lib/asm/non_matchings/unknown_072930/func_80071D30.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_072930/func_80071E58.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_072930/func_80071F80.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_072930/func_800720DC.s") diff --git a/lib/src/os/__osAiDeviceBusy.c b/lib/src/os/__osAiDeviceBusy.c new file mode 100644 index 00000000..6aedb115 --- /dev/null +++ b/lib/src/os/__osAiDeviceBusy.c @@ -0,0 +1,12 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D3670 */ + +#include "libultra_internal.h" + +s32 __osAiDeviceBusy(void) { + register s32 status = IO_READ(AI_STATUS_REG); + if (status & AI_STATUS_FIFO_FULL) + return TRUE; + + return FALSE; +} diff --git a/lib/src/os/__osSetCompare.c b/lib/src/os/__osSetCompare.c new file mode 100644 index 00000000..5f4749af --- /dev/null +++ b/lib/src/os/__osSetCompare.c @@ -0,0 +1,8 @@ + +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D7460 */ + +#include "macros.h" + +//Unlikely to ever be able to be decompiled +GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/__osSetCompare.s") diff --git a/lib/src/os/__osSiRawReadIo.c b/lib/src/os/__osSiRawReadIo.c index 5ceee26b..799831ad 100644 --- a/lib/src/os/__osSiRawReadIo.c +++ b/lib/src/os/__osSiRawReadIo.c @@ -2,14 +2,15 @@ /* RAM_POS: 0x800D4590 */ #include "types.h" +#include "siint.h" +#include "PR/rcp.h" -#define PHYS_TO_K1(x) ((u32)(x)|0xA0000000) /* physical to kseg1 */ -#define IO_READ(addr) (*(vu32 *)PHYS_TO_K1(addr)) - -s32 __osSiRawReadIo(u32 devAddr, u32 *data) -{ - if (__osSiDeviceBusy()) +s32 __osSiRawReadIo(u32 devAddr, u32 *data) { + if (__osSiDeviceBusy()) { return -1; + } + *data = IO_READ(devAddr); + return 0; } diff --git a/lib/src/os/__osSiRawWriteIo.c b/lib/src/os/__osSiRawWriteIo.c index ba8f340e..877a5931 100644 --- a/lib/src/os/__osSiRawWriteIo.c +++ b/lib/src/os/__osSiRawWriteIo.c @@ -2,15 +2,15 @@ /* RAM_POS: 0x800D45E0 */ #include "types.h" +#include "siint.h" +#include "PR/rcp.h" -#define PHYS_TO_K1(x) ((u32)(x)|0xA0000000) /* physical to kseg1 */ -#define IO_WRITE(addr,data) (*(vu32 *)PHYS_TO_K1(addr)=(u32)(data)) - -s32 __osSiRawWriteIo(u32 devAddr, u32 data) -{ - - if (__osSiDeviceBusy()) +s32 __osSiRawWriteIo(u32 devAddr, u32 data) { + if (__osSiDeviceBusy()) { return -1; + } + IO_WRITE(devAddr, data); + return 0; -} \ No newline at end of file +} diff --git a/lib/src/os/__osSpSetStatus.c b/lib/src/os/__osSpSetStatus.c index 2f255a15..9355883a 100644 --- a/lib/src/os/__osSpSetStatus.c +++ b/lib/src/os/__osSpSetStatus.c @@ -1,11 +1,10 @@ /* The comment below is needed for this file to be picked up by generate_ld */ /* RAM_POS: 0x800CD240 */ -#include "__osSpSetStatus.h" #include "types.h" #include "macros.h" -#include "hardware.h" +#include "PR/rcp.h" void __osSpSetStatus(u32 status) { - HW_REG(SP_STATUS_REG, u32) = status; + IO_WRITE(SP_STATUS_REG, status); } diff --git a/lib/src/unknown_0D10E0.c b/lib/src/os/bzero.c similarity index 57% rename from lib/src/unknown_0D10E0.c rename to lib/src/os/bzero.c index 30c7cb10..e5c9fb07 100644 --- a/lib/src/unknown_0D10E0.c +++ b/lib/src/os/bzero.c @@ -4,4 +4,5 @@ #include "types.h" #include "macros.h" -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D10E0/memzero.s") +//Likely hand written and not intended to decomp +GLOBAL_ASM("lib/asm/non_matchings/unknown_0D10E0/bzero.s") diff --git a/lib/src/os/contramread.c b/lib/src/os/contramread.c new file mode 100644 index 00000000..5e9e0296 --- /dev/null +++ b/lib/src/os/contramread.c @@ -0,0 +1,97 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800CDCA0 */ + +#include "macros.h" +#include "libultra_internal.h" +#include "controller.h" +#include "siint.h" + +#if 0 +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CE8A0/__osContRamRead.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CE8A0/__osPackRamReadData.s") +#else +extern s32 D_8012CE1C; +static void __osPackRamReadData(int channel, u16 address); +s32 __osContRamRead(OSMesgQueue *mq, int channel, u16 address, u8 *buffer) { + s32 ret; + int i; + u8 *ptr; + __OSContRamReadFormat ramreadformat; + int retry; + ret = 0; + ptr = (u8 *)&__osPfsPifRam; + retry = 2; + __osSiGetAccess(); + __osContLastCmd = CONT_CMD_READ_MEMPACK; + __osPackRamReadData(channel, address); + ret = __osSiRawStartDma(OS_WRITE, &__osPfsPifRam); + osRecvMesg(mq, NULL, OS_MESG_BLOCK); + do { + for (i = 0; i < ARRLEN(__osPfsPifRam.ramarray) + 1; i++) { // also clear pifstatus + __osPfsPifRam.ramarray[i] = 0xFFU; + } + D_8012CE1C = 0; + ret = __osSiRawStartDma(OS_READ, &__osPfsPifRam); + osRecvMesg(mq, NULL, OS_MESG_BLOCK); + ptr = (u8 *)&__osPfsPifRam; + if (channel != 0) { + for (i = 0; i < channel; i++) { + ptr++; + } + } + ramreadformat = *(__OSContRamReadFormat *)ptr; + ret = CHNL_ERR(ramreadformat); + if (ret == 0) { + u8 c; + c = __osContDataCrc((u8*)&ramreadformat.data); + if (c != ramreadformat.datacrc) { + ret = __osPfsGetStatus(mq, channel); + if (ret != 0) { + __osSiRelAccess(); + return ret; + } + ret = PFS_ERR_CONTRFAIL; + } else { + for (i = 0; i < ARRLEN(ramreadformat.data); i++) { + *buffer++ = ramreadformat.data[i]; + } + } + } + if (ret != PFS_ERR_CONTRFAIL) + break; + } while (retry-- >= 0); + __osSiRelAccess(); + return ret; +} + +static void __osPackRamReadData(int channel, u16 address) { + u8 *ptr; + __OSContRamReadFormat ramreadformat; + int i; + + ptr = (u8 *)__osPfsPifRam.ramarray; + + for (i = 0; i < ARRLEN(__osPfsPifRam.ramarray) + 1; i++) { // also clear pifstatus + __osPfsPifRam.ramarray[i] = 0; + } + + __osPfsPifRam.pifstatus = CONT_CMD_EXE; + ramreadformat.dummy = CONT_CMD_NOP; + ramreadformat.txsize = CONT_CMD_READ_MEMPACK_TX; + ramreadformat.rxsize = CONT_CMD_READ_MEMPACK_RX; + ramreadformat.cmd = CONT_CMD_READ_MEMPACK; + ramreadformat.address = (address << 0x5) | __osContAddressCrc(address); + ramreadformat.datacrc = CONT_CMD_NOP; + for (i = 0; i < ARRLEN(ramreadformat.data); i++) { + ramreadformat.data[i] = CONT_CMD_NOP; + } + if (channel != 0) { + for (i = 0; i < channel; i++) { + *ptr++ = 0; + } + } + *(__OSContRamReadFormat *)ptr = ramreadformat; + ptr += sizeof(__OSContRamReadFormat); + ptr[0] = CONT_CMD_END; +} +#endif diff --git a/lib/src/unknown_0CEE10.c b/lib/src/os/osAiGetLength.c similarity index 53% rename from lib/src/unknown_0CEE10.c rename to lib/src/os/osAiGetLength.c index e5f5c48d..e6170368 100644 --- a/lib/src/unknown_0CEE10.c +++ b/lib/src/os/osAiGetLength.c @@ -1,7 +1,10 @@ /* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800CE210 */ +/* RAM_POS: 0x800C8E20 */ #include "types.h" #include "macros.h" +#include "PR/rcp.h" -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CEE10/osEepromProbe.s") +u32 osAiGetLength(void) { + return IO_READ(AI_LEN_REG); +} diff --git a/lib/src/os/osAiSetFrequency.c b/lib/src/os/osAiSetFrequency.c new file mode 100644 index 00000000..21868d97 --- /dev/null +++ b/lib/src/os/osAiSetFrequency.c @@ -0,0 +1,28 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C8600 */ + +#include "libultra_internal.h" + +extern s32 osViClock; +s32 osAiSetFrequency(u32 frequency) { + register u32 dacRate; + register u8 bitRate; + register float f; + + f = osViClock / (float)frequency + .5f; + dacRate = f; + + if (dacRate < AI_MIN_DAC_RATE) + return -1; + + bitRate = (dacRate / 66); + + if (bitRate > AI_MAX_BIT_RATE) + bitRate = AI_MAX_BIT_RATE; + + IO_WRITE(AI_DACRATE_REG, dacRate - 1); + IO_WRITE(AI_BITRATE_REG, bitRate - 1); + IO_WRITE(AI_CONTROL_REG, AI_CONTROL_DMA_ON); + + return osViClock / (s32)dacRate; +} diff --git a/lib/src/os/osAiSetNextBuffer.c b/lib/src/os/osAiSetNextBuffer.c new file mode 100644 index 00000000..cf93fef8 --- /dev/null +++ b/lib/src/os/osAiSetNextBuffer.c @@ -0,0 +1,41 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C8D70 */ + +#include "types.h" +#include "macros.h" +#include +#include +#include "osVirtualToPhysical.h" + +u8 hdwrBugFlag = 0; + +/** + * It is worth noting that a previous hardware bug has been fixed by a software + * patch in osAiSetNextBuffer. This bug occurred when the address of the end of the + * buffer specified by osAiSetNextBuffer was at a specific value. This value + * occurred when the following was true: + * + * (vaddr + nbytes) & 0x00003FFF == 0x00002000 + * + * (when the buffer ends with address of lower 14 bits 0x2000) In this case, the + * DMA transfer does not complete successfully. This can cause clicks and pops in + * the audio output. This bug no longer requires special handling by the application + * because it is now patched by osAiSetNextBuffer. + */ +s32 osAiSetNextBuffer(void *bufPtr, u32 size) { + char *bptr = bufPtr; + if (hdwrBugFlag != 0) + bptr -= 0x2000; + + if ((((u32)bufPtr + size) & 0x3fff) == 0x2000) + hdwrBugFlag = 1; + else + hdwrBugFlag = 0; + + if (__osAiDeviceBusy()) + return -1; + + IO_WRITE(AI_DRAM_ADDR_REG, osVirtualToPhysical(bptr)); + IO_WRITE(AI_LEN_REG, size); + return 0; +} diff --git a/lib/src/os/osCreateMesgQueue.c b/lib/src/os/osCreateMesgQueue.c new file mode 100644 index 00000000..066c3569 --- /dev/null +++ b/lib/src/os/osCreateMesgQueue.c @@ -0,0 +1,15 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C8820 */ + +#include "libultra_internal.h" +#include "types.h" + +extern OSThread __osThreadTail; +void osCreateMesgQueue(OSMesgQueue *mq, OSMesg *msg, s32 msgCount) { + mq->mtqueue = (OSThread *)&__osThreadTail; + mq->fullqueue = (OSThread *)&__osThreadTail; + mq->validCount = 0; + mq->first = 0; + mq->msgCount = msgCount; + mq->msg = msg; +} diff --git a/lib/src/os/osCreateThread.c b/lib/src/os/osCreateThread.c index 48463f0a..e74c1887 100644 --- a/lib/src/os/osCreateThread.c +++ b/lib/src/os/osCreateThread.c @@ -7,8 +7,7 @@ extern OSThread *__osActiveQueue; //__osActiveQueue; void __osCleanupThread(void); //__osCleanupThread -void osCreateThread(OSThread *t, OSId id, void (*entry)(void *), void *arg, void *sp, OSPri p) -{ +void osCreateThread(OSThread *t, OSId id, void (*entry)(void *), void *arg, void *sp, OSPri p) { register u32 saveMask; OSIntMask mask; t->id = id; @@ -30,4 +29,4 @@ void osCreateThread(OSThread *t, OSId id, void (*entry)(void *), void *arg, void t->tlnext = __osActiveQueue; __osActiveQueue = t; __osRestoreInt(saveMask); -} \ No newline at end of file +} diff --git a/lib/src/unknown_0D24D0.c b/lib/src/os/osDpGetStatus.c similarity index 61% rename from lib/src/unknown_0D24D0.c rename to lib/src/os/osDpGetStatus.c index f1f578fa..0b0769c8 100644 --- a/lib/src/unknown_0D24D0.c +++ b/lib/src/os/osDpGetStatus.c @@ -3,5 +3,8 @@ #include "types.h" #include "macros.h" +#include "libultra_internal.h" -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D24D0/func_800D18D0.s") +u32 osDpGetStatus(){ + return IO_READ(DPC_STATUS_REG); +} diff --git a/lib/src/os/osDpSetNextBuffer.c b/lib/src/os/osDpSetNextBuffer.c new file mode 100644 index 00000000..de35b0bd --- /dev/null +++ b/lib/src/os/osDpSetNextBuffer.c @@ -0,0 +1,20 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D18E0 */ + +#include "libultra_internal.h" +#include "osVirtualToPhysical.h" + +int __osDpDeviceBusy(void); +s32 osDpSetNextBuffer(void *bufPtr, u64 size) { + register u32 stat; + + if (__osDpDeviceBusy()) + return -1; + IO_WRITE(DPC_STATUS_REG, DPC_CLR_XBUS_DMEM_DMA); + do { + stat = IO_READ(DPC_STATUS_REG); + } while (stat & DPC_STATUS_XBUS_DMEM_DMA); + IO_WRITE(DPC_START_REG, osVirtualToPhysical(bufPtr)); + IO_WRITE(DPC_END_REG, osVirtualToPhysical(bufPtr) + size); + return 0; +} diff --git a/lib/src/unknown_0CDE50.c b/lib/src/os/osDpSetStatus.c similarity index 50% rename from lib/src/unknown_0CDE50.c rename to lib/src/os/osDpSetStatus.c index f6f309c2..c14cb5a7 100644 --- a/lib/src/unknown_0CDE50.c +++ b/lib/src/os/osDpSetStatus.c @@ -1,7 +1,8 @@ /* The comment below is needed for this file to be picked up by generate_ld */ /* RAM_POS: 0x800CD250 */ -#include "types.h" -#include "macros.h" +#include "libultra_internal.h" -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CDE50/func_800CD250.s") +void osDpSetStatus(u32 data) { + IO_WRITE(DPC_STATUS_REG, data); +} diff --git a/lib/src/os/osEepromProbe.c b/lib/src/os/osEepromProbe.c new file mode 100644 index 00000000..ab4ca30a --- /dev/null +++ b/lib/src/os/osEepromProbe.c @@ -0,0 +1,21 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800CE210 */ + +#include "libultra_internal.h" + +s32 __osEepStatus(OSMesgQueue *mq, OSContStatus *data); + +s32 osEepromProbe(OSMesgQueue *mq) { + s32 ret = 0; + OSContStatus sdata; + + __osSiGetAccess(); + ret = __osEepStatus(mq, &sdata); + if (ret == 0 && (sdata.type & CONT_EEPROM) != 0) { + ret = 1; + } else { + ret = 0; + } + __osSiRelAccess(); + return ret; +} diff --git a/lib/src/os/osEepromRead.c b/lib/src/os/osEepromRead.c index 11aaebaa..4f66e6c8 100644 --- a/lib/src/os/osEepromRead.c +++ b/lib/src/os/osEepromRead.c @@ -3,5 +3,101 @@ #include "types.h" #include "macros.h" +#include "libultra_internal.h" +#include "PR/rcp.h" +#include "controller.h" +#include "siint.h" -GLOBAL_ASM("lib/asm/non_matchings/osEepromRead_0CEE80/osEepromRead.s") +extern u8 __osContLastCmd; +extern OSPifRam __osEepPifRam; +s32 __osPackEepReadData(u8 address); +s32 __osEepStatus(OSMesgQueue *mq, OSContStatus *data); +s32 __osSiRawStartDma(s32, void *); + +s32 osEepromRead(OSMesgQueue *mq, u8 address, u8 *buffer) { + s32 ret; + s32 i; + u8 *ptr; + OSContStatus sdata; + __OSContEepromFormat eepromformat; + + ret = 0; + i = 0; + ptr = (u8 *)&__osEepPifRam.ramarray; + + if (address > 0x40) { + return -1; + } + + __osSiGetAccess(); + ret = __osEepStatus(mq, &sdata); + + if (ret != 0 || sdata.type != CONT_EEPROM) { + return CONT_NO_RESPONSE_ERROR; + } + + while (sdata.status & CONT_EEPROM_BUSY) { + __osEepStatus(mq, &sdata); + } + + __osPackEepReadData(address); + ret = __osSiRawStartDma(OS_WRITE, &__osEepPifRam.ramarray); + osRecvMesg(mq, NULL, OS_MESG_BLOCK); + + for (i = 0; i <= ARRLEN(__osEepPifRam.ramarray); i++) { + __osEepPifRam.ramarray[i] = CONT_CMD_NOP; + } + + __osEepPifRam.pifstatus = 0; + + ret = __osSiRawStartDma(OS_READ, __osEepPifRam.ramarray); + + __osContLastCmd = CONT_CMD_READ_EEPROM; + osRecvMesg(mq, NULL, OS_MESG_BLOCK); + + //skip the first 4 bytes + for (i = 0; i < 4; i++) { + ptr++; + } + + eepromformat = *(__OSContEepromFormat *) ptr; + ret = CHNL_ERR(eepromformat); + + if (ret == 0) { + for (i = 0; i < ARRLEN(eepromformat.data); i++) { + *buffer++ = eepromformat.data[i]; + } + } + + __osSiRelAccess(); + + return ret; +} + +s32 __osPackEepReadData(u8 address) { + u8 *ptr; + __OSContEepromFormat eepromformat; + s32 i; + + ptr = (u8 *)&__osEepPifRam.ramarray; + //@bug? i <= here, but in libreultra its i < + for (i = 0; i <= ARRLEN(__osEepPifRam.ramarray); i++) { + __osEepPifRam.ramarray[i] = CONT_CMD_NOP; + } + __osEepPifRam.pifstatus = CONT_CMD_EXE; + + eepromformat.txsize = CONT_CMD_READ_EEPROM_TX; + eepromformat.rxsize = CONT_CMD_READ_EEPROM_RX; + eepromformat.cmd = CONT_CMD_READ_EEPROM; + eepromformat.address = address; + for (i = 0; i < ARRLEN(eepromformat.data); i++) { + eepromformat.data[i] = 0; + } + //skip the first 4 bytes + for (i = 0; i < 4; i++) { + *ptr++ = 0; + } + *(__OSContEepromFormat *)ptr = eepromformat; + ptr += sizeof(__OSContEepromFormat); + ptr[0] = CONT_CMD_END; +} diff --git a/lib/src/os/osEepromWrite.c b/lib/src/os/osEepromWrite.c index 37e2daaf..a9884f24 100644 --- a/lib/src/os/osEepromWrite.c +++ b/lib/src/os/osEepromWrite.c @@ -6,12 +6,8 @@ #include "controller.h" #include "siint.h" -extern s32 D_8012CE7C; - void __osPackEepWriteData(u8 address, u8 *buffer); -s32 osEepromWrite(OSMesgQueue *mq, u8 address, u8 *buffer) -{ - +s32 osEepromWrite(OSMesgQueue *mq, u8 address, u8 *buffer) { s32 ret; int i; u8 *ptr; @@ -30,12 +26,10 @@ s32 osEepromWrite(OSMesgQueue *mq, u8 address, u8 *buffer) ret = __osEepStatus(mq, &sdata); - if (ret != 0 || sdata.type != CONT_EEPROM) - { + if (ret != 0 || sdata.type != CONT_EEPROM) { return CONT_NO_RESPONSE_ERROR; } - while (sdata.status & CONT_EEPROM_BUSY) - { + while (sdata.status & CONT_EEPROM_BUSY) { __osEepStatus(mq, &sdata); } __osPackEepWriteData(address, buffer); @@ -46,12 +40,12 @@ s32 osEepromWrite(OSMesgQueue *mq, u8 address, u8 *buffer) __osEepPifRam.ramarray[i] = 255; } - D_8012CE7C = 0; + __osEepPifRam.pifstatus = 0; ret = __osSiRawStartDma(OS_READ, &__osEepPifRam); //recv response __osContLastCmd = CONT_CMD_WRITE_EEPROM; osRecvMesg(mq, NULL, OS_MESG_BLOCK); - for (i = 0; i < 4; i++) //skip the first 4 bytes - { + //skip the first 4 bytes + for (i = 0; i < 4; i++) { ptr++; } eepromformat = *(__OSContEepromFormat *)ptr; @@ -63,14 +57,12 @@ s32 osEepromWrite(OSMesgQueue *mq, u8 address, u8 *buffer) return ret; } -void __osPackEepWriteData(u8 address, u8 *buffer) -{ +void __osPackEepWriteData(u8 address, u8 *buffer) { u8 *ptr; __OSContEepromFormat eepromformat; int i; ptr = (u8 *)&__osEepPifRam.ramarray; - for (i = 0; i < ARRLEN(__osEepPifRam.ramarray) + 1; i++) - { + for (i = 0; i < ARRLEN(__osEepPifRam.ramarray) + 1; i++) { __osEepPifRam.ramarray[i] = CONT_CMD_NOP; } __osEepPifRam.pifstatus = CONT_CMD_EXE; @@ -79,12 +71,11 @@ void __osPackEepWriteData(u8 address, u8 *buffer) eepromformat.rxsize = CONT_CMD_WRITE_EEPROM_RX; eepromformat.cmd = CONT_CMD_WRITE_EEPROM; eepromformat.address = address; - for (i = 0; i < ARRLEN(eepromformat.data); i++) - { + for (i = 0; i < ARRLEN(eepromformat.data); i++) { eepromformat.data[i] = *buffer++; } - for (i = 0; i < 4; i++) //skip the first 4 bytes - { + //skip the first 4 bytes + for (i = 0; i < 4; i++) { *ptr++ = 0; } *(__OSContEepromFormat *)(ptr) = eepromformat; @@ -92,11 +83,7 @@ void __osPackEepWriteData(u8 address, u8 *buffer) ptr[0] = CONT_CMD_END; } -#ifdef NON_MATCHING - -// This should match! I don't know where the regalloc issue could possibly be. -s32 __osEepStatus(OSMesgQueue *mq, OSContStatus *data) -{ +s32 __osEepStatus(OSMesgQueue *mq, OSContStatus *data) { s32 ret; s32 i; u8 *ptr; @@ -104,8 +91,7 @@ s32 __osEepStatus(OSMesgQueue *mq, OSContStatus *data) ret = 0; ptr = (u8 *)__osEepPifRam.ramarray; - for (i = 0; i < ARRLEN(__osEepPifRam.ramarray) + 1; i++) - { + for (i = 0; i < ARRLEN(__osEepPifRam.ramarray) + 1; i++) { __osEepPifRam.ramarray[i] = 0; } __osEepPifRam.pifstatus = CONT_CMD_EXE; @@ -145,7 +131,3 @@ s32 __osEepStatus(OSMesgQueue *mq, OSContStatus *data) return data->errno; return 0; } - -#else -GLOBAL_ASM("lib/asm/non_matchings/osEepromWrite/__osEepStatus.s") -#endif diff --git a/lib/src/os/osEpiRawStartDma.c b/lib/src/os/osEpiRawStartDma.c new file mode 100644 index 00000000..246bac2a --- /dev/null +++ b/lib/src/os/osEpiRawStartDma.c @@ -0,0 +1,34 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D2680 */ + +#include "types.h" +#include "macros.h" +#include "libultra_internal.h" +#include "PR/rcp.h" +#include "osVirtualToPhysical.h" + +s32 osEPiRawStartDma(OSPiHandle *pihandle, s32 dir, u32 cart_addr, void *dram_addr, u32 size) { + register int status; + + status = IO_READ(PI_STATUS_REG); + + while (status & PI_STATUS_ERROR) { + status = IO_READ(PI_STATUS_REG); + } + + IO_WRITE(PI_DRAM_ADDR_REG, osVirtualToPhysical(dram_addr)); + IO_WRITE(PI_CART_ADDR_REG, K1_TO_PHYS(pihandle->baseAddress | cart_addr)); + + switch (dir) { + case OS_READ: + IO_WRITE(PI_WR_LEN_REG, size - 1); + break; + case OS_WRITE: + IO_WRITE(PI_RD_LEN_REG, size - 1); + break; + default: + return -1; + } + + return 0; +} diff --git a/lib/src/os/osGetActiveQueue.c b/lib/src/os/osGetActiveQueue.c new file mode 100644 index 00000000..27b2fff9 --- /dev/null +++ b/lib/src/os/osGetActiveQueue.c @@ -0,0 +1,11 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D2470 */ + +#include "types.h" +#include "macros.h" +#include "libultra_internal.h" + +extern OSThread *__osActiveQueue; +OSThread *__osGetActiveQueue(void) { + return __osActiveQueue; +} diff --git a/lib/src/os/osGetCount.c b/lib/src/os/osGetCount.c new file mode 100644 index 00000000..c6930a89 --- /dev/null +++ b/lib/src/os/osGetCount.c @@ -0,0 +1,8 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C78D0 */ + +#include "types.h" +#include "macros.h" + +//I don't believe that can be decompiled +GLOBAL_ASM("lib/asm/non_matchings/unknown_0C8490/osGetCount.s") diff --git a/lib/src/os/osGetThreadPri.c b/lib/src/os/osGetThreadPri.c index 86124f0e..8526fa44 100644 --- a/lib/src/os/osGetThreadPri.c +++ b/lib/src/os/osGetThreadPri.c @@ -4,9 +4,8 @@ #include "libultra_internal.h" extern OSThread *__osRunningThread; -OSPri osGetThreadPri(OSThread *thread) -{ +OSPri osGetThreadPri(OSThread *thread) { if (thread == NULL) thread = __osRunningThread; return thread->priority; -} \ No newline at end of file +} diff --git a/lib/src/os/osGetTime.c b/lib/src/os/osGetTime.c index d613e0a6..6c4bfe31 100644 --- a/lib/src/os/osGetTime.c +++ b/lib/src/os/osGetTime.c @@ -3,11 +3,10 @@ #include "libultra_internal.h" -extern OSTime __osCurrentTime;//__osCurrentTime -extern u32 __osBaseCounter; //__osBaseCounter +extern OSTime __osCurrentTime; +extern u32 __osBaseCounter; -OSTime osGetTime() -{ +OSTime osGetTime() { u32 tmptime; u32 elapseCount; OSTime currentCount; @@ -18,4 +17,4 @@ OSTime osGetTime() currentCount = __osCurrentTime; __osRestoreInt(saveMask); return currentCount + elapseCount; -} \ No newline at end of file +} diff --git a/lib/src/os/osInitialize.c b/lib/src/os/osInitialize.c new file mode 100644 index 00000000..dc6353db --- /dev/null +++ b/lib/src/os/osInitialize.c @@ -0,0 +1,75 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800CC5A0 */ + +#include "types.h" +#include "macros.h" +#include "ultra64.h" +#include "viint.h" + +typedef struct +{ + /* 0x0 */ unsigned int inst1; + /* 0x4 */ unsigned int inst2; + /* 0x8 */ unsigned int inst3; + /* 0xC */ unsigned int inst4; +} __osExceptionVector; +extern __osExceptionVector __osExceptionPreamble; + +u64 osClockRate = OS_CLOCK_RATE; +u32 __osShutdown = 0; +u32 __OSGlobalIntMask = OS_IM_ALL; +s32 D_800E38B0 = 0; // 64DD flag? (Hints from SM64 code) + +#if 0 +//Declaring this variable breaks things right away +extern s32 osViClock; //This is defined in another file somehow +u32 __osFinalrom; +void osInitialize() +{ + u32 pifdata; + u32 clock = 0; + __osFinalrom = TRUE; + __osSetSR(__osGetSR() | SR_CU1); //enable fpu + __osSetFpcCsr(FPCSR_FS | FPCSR_EV); //flush denorm to zero, enable invalid operation + + while (__osSiRawReadIo(PIF_RAM_END - 3, &pifdata)) //last byte of joychannel ram + { + ; + } + while (__osSiRawWriteIo(PIF_RAM_END - 3, pifdata | 8)) + { + ; //todo: magic contant + } + *(__osExceptionVector *)UT_VEC = __osExceptionPreamble; + *(__osExceptionVector *)XUT_VEC = __osExceptionPreamble; + *(__osExceptionVector *)ECC_VEC = __osExceptionPreamble; + *(__osExceptionVector *)E_VEC = __osExceptionPreamble; + osWritebackDCache((void *)UT_VEC, E_VEC - UT_VEC + sizeof(__osExceptionVector)); + osInvalICache((void *)UT_VEC, E_VEC - UT_VEC + sizeof(__osExceptionVector)); + osMapTLBRdb(); + osPiRawReadIo(4, &clock); //TODO: remove magic constant; + clock &= ~0xf; //clear lower 4 bits + if (clock != 0) + { + osClockRate = clock; + } + osClockRate = osClockRate * 3 / 4; + if (osResetType == 0 /*cold reset */) + { + bzero(osAppNmiBuffer, sizeof(osAppNmiBuffer)); + } + if (osTvType == OS_TV_TYPE_PAL) { + osViClock = VI_PAL_CLOCK; + } + else if (osTvType == OS_TV_TYPE_MPAL) + { + osViClock = VI_MPAL_CLOCK; + } + else + { + osViClock = VI_NTSC_CLOCK; + } +} +#else +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CCF90/osInitialize.s") +#endif diff --git a/lib/src/os/osInterrupts.c b/lib/src/os/osInterrupts.c new file mode 100644 index 00000000..40669692 --- /dev/null +++ b/lib/src/os/osInterrupts.c @@ -0,0 +1,8 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D2560 */ + +#include "macros.h" + +//To the best of my knowledge these files can never actually be decompiled +GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3160/__osDisableInt.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3160/__osRestoreInt.s") diff --git a/lib/src/unknown_0D23F0.c b/lib/src/os/osInvalDCache.c similarity index 79% rename from lib/src/unknown_0D23F0.c rename to lib/src/os/osInvalDCache.c index 132bd1c4..08cbb7ef 100644 --- a/lib/src/unknown_0D23F0.c +++ b/lib/src/os/osInvalDCache.c @@ -4,4 +4,5 @@ #include "types.h" #include "macros.h" +//Most likely hand written and unable to be be decomped GLOBAL_ASM("lib/asm/non_matchings/unknown_0D23F0/osInvalDCache.s") diff --git a/lib/src/os/osJamMesg.c b/lib/src/os/osJamMesg.c index 114eb44b..bb142355 100644 --- a/lib/src/os/osJamMesg.c +++ b/lib/src/os/osJamMesg.c @@ -6,18 +6,14 @@ extern OSThread *__osRunningThread; -s32 osJamMesg(OSMesgQueue *mq, OSMesg msg, s32 flag) -{ +s32 osJamMesg(OSMesgQueue *mq, OSMesg msg, s32 flag) { register u32 saveMask = __osDisableInt(); - while (mq->validCount >= mq->msgCount) - { - if (flag == OS_MESG_BLOCK) - { + while (mq->validCount >= mq->msgCount) { + if (flag == OS_MESG_BLOCK) { __osRunningThread->state = OS_STATE_WAITING; __osEnqueueAndYield(&mq->fullqueue); } - else - { + else { __osRestoreInt(saveMask); return -1; } @@ -26,10 +22,9 @@ s32 osJamMesg(OSMesgQueue *mq, OSMesg msg, s32 flag) mq->first = (mq->first + mq->msgCount - 1) % mq->msgCount; mq->msg[mq->first] = msg; mq->validCount++; - if (mq->mtqueue->next != NULL) - { + if (mq->mtqueue->next != NULL) { osStartThread(__osPopThread(&mq->mtqueue)); } __osRestoreInt(saveMask); return 0; -} \ No newline at end of file +} diff --git a/lib/src/os/osMotor.c b/lib/src/os/osMotor.c new file mode 100644 index 00000000..eab11065 --- /dev/null +++ b/lib/src/os/osMotor.c @@ -0,0 +1,10 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x80071D30 */ + +#include "types.h" +#include "macros.h" + +GLOBAL_ASM("lib/asm/non_matchings/unknown_072930/osMotorStop.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_072930/osMotorStart.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_072930/_MakeMotorData.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_072930/osMotorInit.s") diff --git a/lib/src/os/osPfsChecker.c b/lib/src/os/osPfsChecker.c new file mode 100644 index 00000000..31fe9b00 --- /dev/null +++ b/lib/src/os/osPfsChecker.c @@ -0,0 +1,191 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800CF530 */ + +#include "libultra_internal.h" +#include "controller.h" + +s32 corrupted_init(OSPfs *pfs, __OSInodeCache *cache); +s32 corrupted(OSPfs *pfs, __OSInodeUnit fpage, __OSInodeCache *cache); + +s32 osPfsChecker(OSPfs *pfs) { + int j; //1156 + s32 ret; //1152 + __OSInodeUnit next_page; + __OSInode checked_inode; + __OSInode tmp_inode; //636 + __OSDir tmp_dir; + __OSInodeUnit file_next_node[16]; + __OSInodeCache cache; //56 + int fixed; //52 + u8 bank; //51 + s32 cc; //44 + s32 cl; //40 + int offset; //36 + + fixed = 0; + ret = __osCheckId(pfs); + if (ret == PFS_ERR_NEW_PACK) + ret = __osGetId(pfs); + if (ret != 0) + return ret; + ERRCK(corrupted_init(pfs, &cache)); + for (j = 0; j < pfs->dir_size; j++) { + ERRCK(__osContRamRead(pfs->queue, pfs->channel, pfs->dir_table + j, (u8*)&tmp_dir)); + if (tmp_dir.company_code != 0 && tmp_dir.game_code != 0) { + next_page = tmp_dir.start_page; + cc = 0; + cl = 0; + bank = 255; + while (next_page.ipage >= pfs->inode_start_page && + next_page.inode_t.bank < pfs->banks && + next_page.inode_t.page > 0 && + next_page.inode_t.page < 128) { + if (bank != next_page.inode_t.bank) { + bank = next_page.inode_t.bank; + ret = __osPfsRWInode(pfs, &tmp_inode, OS_READ, bank); + if (ret != 0 && ret != PFS_ERR_INCONSISTENT) + return ret; + } + cc = corrupted(pfs, next_page, &cache) - cl; + if (cc != 0) + break; + cl = 1; + next_page = tmp_inode.inode_page[next_page.inode_t.page]; + } + if (cc == 0 && next_page.ipage == 1) + continue; + + tmp_dir.company_code = 0; + tmp_dir.game_code = 0; + tmp_dir.start_page.ipage = 0; + tmp_dir.status = DIR_STATUS_EMPTY; + tmp_dir.data_sum = 0; + SET_ACTIVEBANK_TO_ZERO; + ERRCK(__osContRamWrite(pfs->queue, pfs->channel, pfs->dir_table + j, (u8*)&tmp_dir, FALSE)); + fixed++; + } else { + if (tmp_dir.company_code == 0 && tmp_dir.game_code == 0) + continue; + tmp_dir.company_code = 0; + tmp_dir.game_code = 0; + tmp_dir.start_page.ipage = 0; + tmp_dir.status = DIR_STATUS_EMPTY; + tmp_dir.data_sum = 0; + + SET_ACTIVEBANK_TO_ZERO; + ERRCK(__osContRamWrite(pfs->queue, pfs->channel, pfs->dir_table + j, (u8*)&tmp_dir, FALSE)); + fixed++; + } + } + + for (j = 0; j < pfs->dir_size; j++) { + ERRCK(__osContRamRead(pfs->queue, pfs->channel, pfs->dir_table + j, (u8*)&tmp_dir)); + + if (tmp_dir.company_code != 0 && tmp_dir.game_code != 0 && + tmp_dir.start_page.ipage >= (u16)pfs->inode_start_page) { + file_next_node[j].ipage = tmp_dir.start_page.ipage; + } else { + file_next_node[j].ipage = 0; + } + } + + for (bank = 0; bank < pfs->banks; bank++) { + ret = __osPfsRWInode(pfs, &tmp_inode, 0, bank); + if (ret != 0 && ret != PFS_ERR_INCONSISTENT) + return ret; + if (bank > 0) { + offset = 1; + } else { + offset = pfs->inode_start_page; + } + for (j = 0; j < offset; j++) { + checked_inode.inode_page[j].ipage = tmp_inode.inode_page[j].ipage; + } + for (; j < 128; j++) { + checked_inode.inode_page[j].ipage = 3; + } + for (j = 0; j < pfs->dir_size; j++) { + while (file_next_node[j].inode_t.bank == bank && + file_next_node[j].ipage >= (u16)pfs->inode_start_page) { + u8 pp = file_next_node[j].inode_t.page; + file_next_node[j] = checked_inode.inode_page[pp] = tmp_inode.inode_page[pp]; + } + } + ERRCK(__osPfsRWInode(pfs, &checked_inode, OS_WRITE, bank)); + } + if (fixed) + pfs->status |= PFS_CORRUPTED; + else + pfs->status &= ~PFS_CORRUPTED; + + return 0; +} + +s32 corrupted_init(OSPfs *pfs, __OSInodeCache *cache) { + int i; + int n; + int offset; + u8 bank; + __OSInodeUnit tpage; + __OSInode tmp_inode; + s32 ret; + + for (i = 0; i < ARRLEN(cache->map); i++) + cache->map[i] = 0; + cache->bank = -1; + for (bank = 0; bank < pfs->banks; bank++) { + if (bank > 0) + offset = 1; + else + offset = pfs->inode_start_page; + + ret = __osPfsRWInode(pfs, &tmp_inode, OS_READ, bank); + if (ret != 0 && ret != PFS_ERR_INCONSISTENT) + return ret; + for (i = offset; i < ARRLEN(tmp_inode.inode_page); i++) { + tpage = tmp_inode.inode_page[i]; + if (tpage.ipage >= pfs->inode_start_page && tpage.inode_t.bank != bank) { + n = (tpage.inode_t.page / 4) + ((tpage.inode_t.bank % PFS_ONE_PAGE) * BLOCKSIZE); + cache->map[n] |= 1 << (bank % PFS_ONE_PAGE); + } + } + } + + return 0; +} + +s32 corrupted(OSPfs *pfs, __OSInodeUnit fpage, __OSInodeCache *cache) { + int j; + int n; + int hit; + u8 bank; + int offset; + s32 ret; + + hit = 0; + ret = 0; + n = (fpage.inode_t.page / 4) + (fpage.inode_t.bank % 8) * BLOCKSIZE; + for (bank = 0; bank < pfs->banks; bank++) { + if (bank > 0) + offset = 1; + else + offset = pfs->inode_start_page; + if (bank == fpage.inode_t.bank || cache->map[n] & (1 << (bank % 8))) { + if (bank != cache->bank) { + ret = __osPfsRWInode(pfs, &cache->inode, 0, bank); + if (ret != 0 && ret != PFS_ERR_INCONSISTENT) + return ret; + cache->bank = bank; + } + + for (j = offset; hit < 2 && (j < ARRLEN(cache->inode.inode_page)); j++) { + if (cache->inode.inode_page[j].ipage == fpage.ipage) + hit++; + } + if (1 < hit) + return PFS_ERR_NEW_PACK; + } + } + + return hit; +} diff --git a/lib/src/os/osPfsFindFile.c b/lib/src/os/osPfsFindFile.c new file mode 100644 index 00000000..661db5ac --- /dev/null +++ b/lib/src/os/osPfsFindFile.c @@ -0,0 +1,46 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D0E80 */ + +#include "libultra_internal.h" +#include "controller.h" + +s32 osPfsFindFile(OSPfs *pfs, u16 company_code, u32 game_code, u8 *game_name, u8 *ext_name, s32 *file_no) { + s32 j; + int i; + __OSDir dir; + s32 ret; + int fail; + ret = 0; + PFS_CHECK_ID; + + for (j = 0; j < pfs->dir_size; j++) { + ERRCK(__osContRamRead(pfs->queue, pfs->channel, pfs->dir_table + j, (u8*)&dir)); + if ((dir.company_code == company_code) && dir.game_code == game_code) { + fail = FALSE; + if (game_name != NULL) { + for (i = 0; i < ARRLEN(dir.game_name); i++) { + if (dir.game_name[i] != game_name[i]) { + fail = TRUE; + break; + } + } + } + if (ext_name != NULL && !fail) { + for (i = 0; i < ARRLEN(dir.ext_name); i++) { + if (dir.ext_name[i] != ext_name[i]) { + fail = TRUE; + break; + } + } + } + if (!fail) { + *file_no = j; + return ret; + } + } + } + + *file_no = -1; + + return PFS_ERR_INVALID; +} diff --git a/lib/src/os/osPfsFreeBlocks.c b/lib/src/os/osPfsFreeBlocks.c index f3934383..8245226c 100644 --- a/lib/src/os/osPfsFreeBlocks.c +++ b/lib/src/os/osPfsFreeBlocks.c @@ -4,8 +4,7 @@ #include "libultra_internal.h" #include "controller.h" -s32 osPfsFreeBlocks(OSPfs *pfs, s32 *bytes_not_used) -{ +s32 osPfsFreeBlocks(OSPfs *pfs, s32 *bytes_not_used) { int j; int pages; __OSInode inode; @@ -16,19 +15,17 @@ s32 osPfsFreeBlocks(OSPfs *pfs, s32 *bytes_not_used) ret = 0; PFS_CHECK_STATUS; PFS_CHECK_ID; - for (bank = 0; bank < pfs->banks; bank++) - { + for (bank = 0; bank < pfs->banks; bank++) { ERRCK(__osPfsRWInode(pfs, &inode, OS_READ, bank)); if (bank > 0) offset = 1; else - offset = pfs->inodeStartPage; - for (j = offset; j < ARRLEN(inode.inodePage); j++) - { - if (inode.inodePage[j].ipage == 3) + offset = pfs->inode_start_page; + for (j = offset; j < ARRLEN(inode.inode_page); j++) { + if (inode.inode_page[j].ipage == 3) pages++; } } *bytes_not_used = pages * 8 * 32; return 0; -} \ No newline at end of file +} diff --git a/lib/src/os/osPfsIsPlug.c b/lib/src/os/osPfsIsPlug.c new file mode 100644 index 00000000..c90615f8 --- /dev/null +++ b/lib/src/os/osPfsIsPlug.c @@ -0,0 +1,108 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800CD290 */ + +#include "types.h" +#include "macros.h" +#include "libultra_internal.h" +#include "controller.h" +#include "siint.h" + +void __osPfsGetInitData(u8 *pattern, OSContStatus *data); +void __osPfsRequestData(u8 cmd); + +s32 osPfsIsPlug(OSMesgQueue *queue, u8 *pattern) { + s32 ret; + OSMesg dummy; + u8 bitpattern; + OSContStatus data[MAXCONTROLLERS]; + int channel; + u8 bits; + int crc_error_cnt; + ret = 0; + bits = 0; + crc_error_cnt = 3; + __osSiGetAccess(); + + while (TRUE) { + __osPfsRequestData(CONT_CMD_REQUEST_STATUS); + ret = __osSiRawStartDma(OS_WRITE, &__osPfsPifRam); + osRecvMesg(queue, &dummy, OS_MESG_BLOCK); + ret = __osSiRawStartDma(OS_READ, &__osPfsPifRam); + osRecvMesg(queue, &dummy, OS_MESG_BLOCK); + __osPfsGetInitData(&bitpattern, data); + + for (channel = 0; channel < __osMaxControllers; channel++) { + if ((data[channel].status & CONT_ADDR_CRC_ER) == 0) { + crc_error_cnt--; + break; + } + } + + if (__osMaxControllers == channel) + crc_error_cnt = 0; + + if (crc_error_cnt < 1) { + for (channel = 0; channel < __osMaxControllers; channel++) { + if (data[channel].errno == 0 && (data[channel].status & CONT_CARD_ON) != 0) + bits |= 1 << channel; + } + __osSiRelAccess(); + *pattern = bits; + + return ret; + } + } +} + +void __osPfsRequestData(u8 cmd) { + u8 *ptr; + __OSContRequesFormat requestformat; + int i; + + __osContLastCmd = cmd; + //Also clear pifstatus + for (i = 0; i < ARRLEN(__osPfsPifRam.ramarray) + 1; i++) { + __osPfsPifRam.ramarray[i] = 0; + } + + __osPfsPifRam.pifstatus = CONT_CMD_EXE; + ptr = (u8 *)&__osPfsPifRam; + requestformat.dummy = CONT_CMD_NOP; + requestformat.txsize = CONT_CMD_REQUEST_STATUS_TX; + requestformat.rxsize = CONT_CMD_REQUEST_STATUS_RX; + requestformat.cmd = cmd; + requestformat.typeh = CONT_CMD_NOP; + requestformat.typel = CONT_CMD_NOP; + requestformat.status = CONT_CMD_NOP; + requestformat.dummy1 = CONT_CMD_NOP; + + for (i = 0; i < __osMaxControllers; i++) { + *(__OSContRequesFormat *)ptr = requestformat; + ptr += sizeof(__OSContRequesFormat); + } + + *ptr = CONT_CMD_END; +} + +void __osPfsGetInitData(u8 *pattern, OSContStatus *data) { + u8 *ptr; + __OSContRequesFormat requestformat; + int i; + u8 bits; + + bits = 0; + ptr = (u8 *)&__osPfsPifRam; + + for (i = 0; i < __osMaxControllers; i++, ptr += sizeof(__OSContRequesFormat)) { + requestformat = *(__OSContRequesFormat *)ptr; + data->errno = CHNL_ERR(requestformat); + if (data->errno == 0) { + data->type = (requestformat.typel << 8) | (requestformat.typeh); + data->status = requestformat.status; + bits |= 1 << i; + } + data++; + } + + *pattern = bits; +} diff --git a/lib/src/os/osPfsNumFiles.c b/lib/src/os/osPfsNumFiles.c new file mode 100644 index 00000000..9877c381 --- /dev/null +++ b/lib/src/os/osPfsNumFiles.c @@ -0,0 +1,24 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D0390 */ + +#include "libultra_internal.h" +#include "controller.h" + +s32 osPfsNumFiles(OSPfs *pfs, s32 *max_files, s32 *files_used) { + int j; + s32 ret; + __OSDir dir; + int files; + files = 0; + PFS_CHECK_STATUS; + PFS_CHECK_ID; + SET_ACTIVEBANK_TO_ZERO; + for (j = 0; j < pfs->dir_size; j++) { + ERRCK(__osContRamRead(pfs->queue, pfs->channel, pfs->dir_table + j, (u8*)&dir)); + if (dir.company_code != 0 && dir.game_code != 0) + files++; + } + *files_used = files; + *max_files = pfs->dir_size; + return 0; +} diff --git a/lib/src/os/osPfsReFormat.c b/lib/src/os/osPfsReFormat.c new file mode 100644 index 00000000..eb6a2702 --- /dev/null +++ b/lib/src/os/osPfsReFormat.c @@ -0,0 +1,66 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800CFF90 */ + +#include "libultra_internal.h" +#include "controller.h" +#include "siint.h" + +s32 osPfsReFormat(OSPfs *pfs, OSMesgQueue *queue, int channel) { + int j; + int i; + __OSInode inode; + u8 tmp_data[32]; + u8 *ptr; + s32 ret; + + __osSiGetAccess(); + ret = __osPfsGetStatus(queue, channel); + + if (ret != 0) { + //Single difference between this and libreultra + //__osSiRelAccess(); + return ret; + } + + pfs->status ^= PFS_INITIALIZED; + pfs->queue = queue; + pfs->channel = channel; + __osSiRelAccess(); + ERRCK(__osGetId(pfs)); + + SET_ACTIVEBANK_TO_ZERO; + for (j = 0; j < ARRLEN(tmp_data); j++) + tmp_data[j] = 0; + + for (j = 0; j < pfs->dir_size; j++) { + ERRCK(__osContRamWrite(queue, channel, pfs->dir_table + j, tmp_data, FALSE)); + } + + for (j = 0; j < pfs->inode_start_page; j++) + inode.inode_page[j].ipage = 0; + + for (j = pfs->inode_start_page; j < ARRLEN(inode.inode_page); j++) + inode.inode_page[j].ipage = 3; + + inode.inode_page[0].ipage = __osSumcalc((u8*)&inode.inode_page[pfs->inode_start_page], + sizeof(__OSInodeUnit) * -pfs->inode_start_page + sizeof(inode.inode_page)); + ptr = (u8 *)&inode; + + for (j = 0; j < PFS_ONE_PAGE; j++){ + ERRCK(__osContRamWrite(queue, channel, pfs->inode_table + j, ptr + j * BLOCKSIZE, FALSE)); + ERRCK(__osContRamWrite(queue, channel, pfs->minode_table + j, ptr + j * BLOCKSIZE, FALSE)); + } + + for (i = 1; i < pfs->banks; i++) { + for (j = 1; j < ARRLEN(inode.inode_page); j++) + inode.inode_page[j].ipage = 3; + inode.inode_page[0].ipage = __osSumcalc((u8*)&inode.inode_page[1], -sizeof(__OSInodeUnit) + sizeof(inode.inode_page)); + ptr = (u8 *)&inode; + for (j = 0; j < PFS_ONE_PAGE; j++) { + ERRCK(__osContRamWrite(queue, channel, pfs->inode_table + i * PFS_ONE_PAGE + j, ptr + j * BLOCKSIZE, FALSE)); + ERRCK(__osContRamWrite(queue, channel, pfs->minode_table + i * PFS_ONE_PAGE + j, ptr + j * BLOCKSIZE, FALSE)); + } + } + + return 0; +} diff --git a/lib/src/os/osPiGetCmdQueue.c b/lib/src/os/osPiGetCmdQueue.c index 493221cd..f7f3b705 100644 --- a/lib/src/os/osPiGetCmdQueue.c +++ b/lib/src/os/osPiGetCmdQueue.c @@ -5,9 +5,8 @@ extern OSDevMgr __osPiDevMgr; -OSMesgQueue *osPiGetCmdQueue(void) -{ +OSMesgQueue *osPiGetCmdQueue(void) { if (!__osPiDevMgr.active) return NULL; return __osPiDevMgr.cmdQueue; -} \ No newline at end of file +} diff --git a/lib/src/os/osPiRawStartDma.c b/lib/src/os/osPiRawStartDma.c new file mode 100644 index 00000000..bced171d --- /dev/null +++ b/lib/src/os/osPiRawStartDma.c @@ -0,0 +1,32 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D25a0 */ + +#include "types.h" +#include "macros.h" +#include "libultra_internal.h" +#include "PR/rcp.h" +#include "osVirtualToPhysical.h" + +s32 osPiRawStartDma(s32 direction, u32 devAddr, void *dramAddr, u32 size) { + register int status; + status = IO_READ(PI_STATUS_REG); + while (status & (PI_STATUS_DMA_BUSY | PI_STATUS_IO_BUSY | PI_STATUS_ERROR)) { + status = IO_READ(PI_STATUS_REG); + } + + IO_WRITE(PI_DRAM_ADDR_REG, osVirtualToPhysical(dramAddr)); + IO_WRITE(PI_CART_ADDR_REG, K1_TO_PHYS(osRomBase | devAddr)); + + switch (direction) { + case OS_READ: + IO_WRITE(PI_WR_LEN_REG, size - 1); + break; + case OS_WRITE: + IO_WRITE(PI_RD_LEN_REG, size - 1); + break; + default: + return -1; + break; + } + return 0; +} diff --git a/lib/src/os/osPiRawWriteIo.c b/lib/src/os/osPiRawWriteIo.c new file mode 100644 index 00000000..849d7fd7 --- /dev/null +++ b/lib/src/os/osPiRawWriteIo.c @@ -0,0 +1,13 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D4790 */ + +#include "macros.h" +#include "libultra_internal.h" +#include "piint.h" + +s32 osPiRawWriteIo(u32 devAddr, u32 *data) { + register u32 stat; + WAIT_ON_IOBUSY(stat); + *data = IO_READ((u32)osRomBase | devAddr); + return 0; +} diff --git a/lib/src/os/osPiStartDma.c b/lib/src/os/osPiStartDma.c index 40626262..46ce2aaa 100644 --- a/lib/src/os/osPiStartDma.c +++ b/lib/src/os/osPiStartDma.c @@ -5,8 +5,7 @@ extern OSDevMgr __osPiDevMgr; //__osPiDevMgr; -s32 osPiStartDma(OSIoMesg *mb, s32 priority, s32 direction, u32 devAddr, void *dramAddr, u32 size, OSMesgQueue *mq) -{ +s32 osPiStartDma(OSIoMesg *mb, s32 priority, s32 direction, u32 devAddr, void *dramAddr, u32 size, OSMesgQueue *mq) { register s32 ret; if (!__osPiDevMgr.active) return -1; @@ -29,4 +28,4 @@ s32 osPiStartDma(OSIoMesg *mb, s32 priority, s32 direction, u32 devAddr, void *d ret = osSendMesg(osPiGetCmdQueue(), (OSMesg)mb, OS_MESG_NOBLOCK); } return ret; -} \ No newline at end of file +} diff --git a/lib/src/os/osRecvMesg.c b/lib/src/os/osRecvMesg.c index c8f3efc8..9d817688 100644 --- a/lib/src/os/osRecvMesg.c +++ b/lib/src/os/osRecvMesg.c @@ -7,15 +7,12 @@ extern OSThread *__osRunningThread; -s32 osRecvMesg(OSMesgQueue *mq, OSMesg *msg, s32 flags) -{ +s32 osRecvMesg(OSMesgQueue *mq, OSMesg *msg, s32 flags) { register u32 saveMask; saveMask = __osDisableInt(); - while (MQ_IS_EMPTY(mq)) - { - if (flags == OS_MESG_NOBLOCK) - { + while (MQ_IS_EMPTY(mq)) { + if (flags == OS_MESG_NOBLOCK) { __osRestoreInt(saveMask); return -1; } @@ -23,16 +20,14 @@ s32 osRecvMesg(OSMesgQueue *mq, OSMesg *msg, s32 flags) __osEnqueueAndYield(&mq->mtqueue); } - if (msg != NULL) - { + if (msg != NULL) { *msg = mq->msg[mq->first]; } mq->first = (mq->first + 1) % mq->msgCount; mq->validCount--; - if (mq->fullqueue->next != NULL) - { + if (mq->fullqueue->next != NULL) { osStartThread(__osPopThread(&mq->fullqueue)); } __osRestoreInt(saveMask); return 0; -} \ No newline at end of file +} diff --git a/lib/src/os/osSendMesg.c b/lib/src/os/osSendMesg.c index 32a3eb97..5120f52a 100644 --- a/lib/src/os/osSendMesg.c +++ b/lib/src/os/osSendMesg.c @@ -4,20 +4,16 @@ extern OSThread *__osRunningThread; -s32 osSendMesg(OSMesgQueue *mq, OSMesg msg, s32 flags) -{ +s32 osSendMesg(OSMesgQueue *mq, OSMesg msg, s32 flags) { register u32 saveMask; register s32 last; saveMask = __osDisableInt(); - while (MQ_IS_FULL(mq)) - { - if (flags == OS_MESG_BLOCK) - { + while (MQ_IS_FULL(mq)) { + if (flags == OS_MESG_BLOCK) { __osRunningThread->state = OS_STATE_WAITING; __osEnqueueAndYield(&mq->fullqueue); } - else - { + else { __osRestoreInt(saveMask); return -1; } @@ -25,10 +21,9 @@ s32 osSendMesg(OSMesgQueue *mq, OSMesg msg, s32 flags) last = (mq->first + mq->validCount) % mq->msgCount; mq->msg[last] = msg; mq->validCount++; - if (mq->mtqueue->next != NULL) - { + if (mq->mtqueue->next != NULL) { osStartThread(__osPopThread(&mq->mtqueue)); } __osRestoreInt(saveMask); return 0; -} \ No newline at end of file +} diff --git a/lib/src/os/osSetEventMesg.c b/lib/src/os/osSetEventMesg.c index 82424c45..5b33da27 100644 --- a/lib/src/os/osSetEventMesg.c +++ b/lib/src/os/osSetEventMesg.c @@ -3,16 +3,13 @@ #include "libultra_internal.h" -typedef struct __OSEventState -{ +typedef struct __OSEventState { OSMesgQueue *messageQueue; OSMesg message; } __OSEventState; - __OSEventState __osEventStateTab[15]; // __osEventStateTab[OS_NUM_EVENTS]; -void osSetEventMesg(OSEvent event, OSMesgQueue *mq, OSMesg msg) -{ +void osSetEventMesg(OSEvent event, OSMesgQueue *mq, OSMesg msg) { register u32 saveMask = __osDisableInt(); __OSEventState *es; @@ -20,4 +17,4 @@ void osSetEventMesg(OSEvent event, OSMesgQueue *mq, OSMesg msg) es->messageQueue = mq; es->message = msg; __osRestoreInt(saveMask); -} \ No newline at end of file +} diff --git a/lib/src/os/osSetIntMask.c b/lib/src/os/osSetIntMask.c new file mode 100644 index 00000000..cbe2348f --- /dev/null +++ b/lib/src/os/osSetIntMask.c @@ -0,0 +1,8 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C9A30 */ + +#include "types.h" +#include "macros.h" + +//I don't believe it's possible to decomp this one +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA530/osSetIntMask.s") diff --git a/lib/src/os/osSetThreadPri.c b/lib/src/os/osSetThreadPri.c new file mode 100644 index 00000000..7c9a704a --- /dev/null +++ b/lib/src/os/osSetThreadPri.c @@ -0,0 +1,25 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800CC840 */ + +#include "libultra_internal.h" + +extern OSThread *__osRunningThread; +extern OSThread *__osRunQueue; + +void osSetThreadPri(OSThread *t, OSPri pri) { + register u32 saveMask = __osDisableInt(); + if (t == NULL) + t = __osRunningThread; + if (t->priority != pri) { + t->priority = pri; + if (t != __osRunningThread && t->state != OS_STATE_STOPPED) { + __osDequeueThread(t->queue, t); + __osEnqueueThread(t->queue, t); + } + if (__osRunningThread->priority < __osRunQueue->priority) { + __osRunningThread->state = OS_STATE_RUNNABLE; + __osEnqueueAndYield(&__osRunQueue); + } + } + __osRestoreInt(saveMask); +} diff --git a/lib/src/os/osSetTime.c b/lib/src/os/osSetTime.c index 82b1cdc7..c794f4ec 100644 --- a/lib/src/os/osSetTime.c +++ b/lib/src/os/osSetTime.c @@ -5,6 +5,6 @@ extern OSTime __osCurrentTime; -void osSetTime(OSTime time){ +void osSetTime(OSTime time) { __osCurrentTime = time; -} \ No newline at end of file +} diff --git a/lib/src/os/osSetTimer.c b/lib/src/os/osSetTimer.c index c969461b..41c97d8a 100644 --- a/lib/src/os/osSetTimer.c +++ b/lib/src/os/osSetTimer.c @@ -2,28 +2,28 @@ /* RAM_POS: 0x800D4DE0 */ #include "macros.h" - -#if 1 -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/osSetTimer.s") -#else #include "libultra_internal.h" -extern OSTimer *D_800E4910; +extern OSTimer *__osTimerList; +OSTime __osInsertTimer(OSTimer *t); +void __osSetTimerIntr(OSTime tim); -u32 osSetTimer(OSTimer *t, OSTime value, OSTime interval, OSMesgQueue *mq, OSMesg msg) -{ +s32 osSetTimer(OSTimer *t, OSTime value, OSTime interval, OSMesgQueue *mq, OSMesg msg) { OSTime time; t->next = NULL; t->prev = NULL; t->interval = interval; - if(value != 0) t->remaining = value; - else t->remaining = interval; + + if(value != 0) + t->remaining = value; + else + t->remaining = interval; t->mq = mq; t->msg = msg; - time = (OSTime) __osInsertTimer(t); - if(D_800E4910->next == t) { + time = __osInsertTimer(t); + + if(__osTimerList->next == t) __osSetTimerIntr(time); - } + return 0; } -#endif diff --git a/lib/src/unknown_0D2E40.c b/lib/src/os/osSpTaskYield.c similarity index 64% rename from lib/src/unknown_0D2E40.c rename to lib/src/os/osSpTaskYield.c index 704199a2..a7d4460b 100644 --- a/lib/src/unknown_0D2E40.c +++ b/lib/src/os/osSpTaskYield.c @@ -1,12 +1,8 @@ /* The comment below is needed for this file to be picked up by generate_ld */ /* RAM_POS: 0x800D2240 */ -#include "types.h" -#include "macros.h" #include "libultra_internal.h" void osSpTaskYield(void) { __osSpSetStatus(SPSTATUS_SET_SIGNAL0); } - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D2E40/osViSetSpecialFeatures.s") diff --git a/lib/src/os/osStartThread.c b/lib/src/os/osStartThread.c index 0d124761..753e304b 100644 --- a/lib/src/os/osStartThread.c +++ b/lib/src/os/osStartThread.c @@ -4,42 +4,35 @@ #include "libultra_internal.h" extern OSThread *__osRunningThread; -extern OSThread *__RunQueue; //__osRunQueue +extern OSThread *__osRunQueue; -void osStartThread(OSThread *t) -{ +void osStartThread(OSThread *t) { register u32 saveMask = __osDisableInt(); - switch (t->state) - { - case OS_STATE_WAITING: - t->state = OS_STATE_RUNNABLE; - __osEnqueueThread(&__RunQueue, t); - break; - case OS_STATE_STOPPED: - if (t->queue == NULL || t->queue == &__RunQueue) - { + switch (t->state) { + case OS_STATE_WAITING: t->state = OS_STATE_RUNNABLE; - __osEnqueueThread(&__RunQueue, t); - } - else - { - t->state = OS_STATE_WAITING; - __osEnqueueThread(t->queue, t); - __osEnqueueThread(&__RunQueue, __osPopThread(t->queue)); - } - break; + __osEnqueueThread(&__osRunQueue, t); + break; + case OS_STATE_STOPPED: + if (t->queue == NULL || t->queue == &__osRunQueue) { + t->state = OS_STATE_RUNNABLE; + __osEnqueueThread(&__osRunQueue, t); + } + else { + t->state = OS_STATE_WAITING; + __osEnqueueThread(t->queue, t); + __osEnqueueThread(&__osRunQueue, __osPopThread(t->queue)); + } + break; } - if (__osRunningThread == NULL) - { + if (__osRunningThread == NULL) { __osDispatchThread(); } - else - { - if (__osRunningThread->priority < __RunQueue->priority) - { + else { + if (__osRunningThread->priority < __osRunQueue->priority) { __osRunningThread->state = OS_STATE_RUNNABLE; - __osEnqueueAndYield(&__RunQueue); + __osEnqueueAndYield(&__osRunQueue); } } __osRestoreInt(saveMask); -} \ No newline at end of file +} diff --git a/lib/src/os/osStopThread.c b/lib/src/os/osStopThread.c index 4d445397..5e163766 100644 --- a/lib/src/os/osStopThread.c +++ b/lib/src/os/osStopThread.c @@ -5,29 +5,25 @@ extern OSThread *__osRunningThread; -void osStopThread(OSThread *t) -{ +void osStopThread(OSThread *t) { register u32 saveMask = __osDisableInt(); register u16 state; - if (t == NULL) - { + if (t == NULL) { state = OS_STATE_RUNNING; } - else - { + else { state = t->state; } - switch (state) - { - case OS_STATE_RUNNING: - __osRunningThread->state = OS_STATE_STOPPED; - __osEnqueueAndYield(NULL); - break; - case OS_STATE_RUNNABLE: - case OS_STATE_WAITING: - t->state = OS_STATE_STOPPED; - __osDequeueThread(t->queue, t); - break; + switch (state) { + case OS_STATE_RUNNING: + __osRunningThread->state = OS_STATE_STOPPED; + __osEnqueueAndYield(NULL); + break; + case OS_STATE_RUNNABLE: + case OS_STATE_WAITING: + t->state = OS_STATE_STOPPED; + __osDequeueThread(t->queue, t); + break; } __osRestoreInt(saveMask); -} \ No newline at end of file +} diff --git a/lib/src/os/osTimer.c b/lib/src/os/osTimer.c index 14615318..9a9f2bea 100644 --- a/lib/src/os/osTimer.c +++ b/lib/src/os/osTimer.c @@ -5,108 +5,102 @@ #include "libultra_internal.h" extern OSTimer D_8012D200; -OSTimer *D_800E4910 = &D_8012D200; +OSTimer *__osTimerList = &D_8012D200; extern OSTime __osCurrentTime; extern u32 __osBaseCounter; -extern u32 D_8012D22C; -extern u32 D_8012D230; +extern u32 __osViIntrCount; +extern u32 __osTimerCounter; OSTime __osInsertTimer(OSTimer *t); -#if 1 -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/__osTimerServicesInit.s") -#else +#ifdef NON_MATCHING +//Seems to be a mistmatch based on where __osCurrentTime is defined. +//Scratch proving that: https://decomp.me/scratch/OB3iP void __osTimerServicesInit(void) { - //D_8012D224 = 0; - __osCurrentTime = 0; + __osCurrentTime = 0; __osBaseCounter = 0; - D_8012D22C = 0; - D_800E4910->prev = D_800E4910; - D_800E4910->next = D_800E4910->prev; - D_800E4910->remaining = 0; - D_800E4910->interval = D_800E4910->remaining; - D_800E4910->mq = NULL; - D_800E4910->msg = 0; + __osViIntrCount = 0; + __osTimerList->prev = __osTimerList; + __osTimerList->next = __osTimerList->prev; + __osTimerList->remaining = 0; + __osTimerList->interval = __osTimerList->remaining; + __osTimerList->mq = NULL; + __osTimerList->msg = 0; } -#endif - -void __osTimerInterrupt(void) -{ - OSTimer *t; - u32 count; - u32 elapsed_cycles; - - if (D_800E4910->next == D_800E4910) - return; - while (1){ - t = D_800E4910->next; - if (t == D_800E4910){ - __osSetCompare(0); - D_8012D230 = 0; - break; - } - count = osGetCount(); - elapsed_cycles = count - D_8012D230; - D_8012D230 = count; - if (elapsed_cycles < t->remaining){ - t->remaining -= elapsed_cycles; - __osSetTimerIntr(t->remaining); - return; - } - else{ - t->prev->next = t->next; - t->next->prev = t->prev; - t->next = NULL; - t->prev = NULL; - if (t->mq != NULL){ - osSendMesg(t->mq, t->msg, OS_MESG_NOBLOCK); - } - if (t->interval != 0){ - t->remaining = t->interval; - __osInsertTimer(t); - } - } - } -} - -#if 1 -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/__osSetTimerIntr.s") #else -void __osSetTimerIntr(OSTime tim) -{ - OSTime NewTime; - u32 savedMask; - savedMask = __osDisableInt(); - D_8012D230 = osGetCount(); - NewTime = tim + D_8012D230; - __osSetCompare(NewTime); - __osRestoreInt(savedMask); -} +GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/__osTimerServicesInit.s") #endif +void __osSetTimerIntr(OSTime tim); +void __osSetCompare(u32); -OSTime __osInsertTimer(OSTimer *t) -{ - OSTimer *timep; - OSTime tim; - u32 savedMask; - savedMask = __osDisableInt(); - for (timep = D_800E4910->next, tim = t->remaining; - timep != D_800E4910 && tim > timep->remaining; - tim -= timep->remaining, timep = timep->next) - { - ; - } - t->remaining = tim; - if (timep != D_800E4910) - timep->remaining -= tim; - t->next = timep; - t->prev = timep->prev; - timep->prev->next = t; - timep->prev = t; - __osRestoreInt(savedMask); - return tim; -} \ No newline at end of file +void __osTimerInterrupt(void) { + OSTimer *t; + u32 count; + u32 elapsed_cycles; + + if (__osTimerList->next == __osTimerList) + return; + while (1) { + t = __osTimerList->next; + if (t == __osTimerList){ + __osSetCompare(0); + __osTimerCounter = 0; + break; + } + count = osGetCount(); + elapsed_cycles = count - __osTimerCounter; + __osTimerCounter = count; + if (elapsed_cycles < t->remaining){ + t->remaining -= elapsed_cycles; + __osSetTimerIntr(t->remaining); + return; + } else { + t->prev->next = t->next; + t->next->prev = t->prev; + t->next = NULL; + t->prev = NULL; + if (t->mq != NULL){ + osSendMesg(t->mq, t->msg, OS_MESG_NOBLOCK); + } + if (t->interval != 0){ + t->remaining = t->interval; + __osInsertTimer(t); + } + } + } +} + +void __osSetTimerIntr(OSTime tim) { + OSTime NewTime; + u32 savedMask; + savedMask = __osDisableInt(); + __osTimerCounter = osGetCount(); + NewTime = tim + __osTimerCounter; + __osSetCompare(NewTime); + __osRestoreInt(savedMask); +} + +OSTime __osInsertTimer(OSTimer *t) { + OSTimer *timep; + OSTime tim; + u32 savedMask; + savedMask = __osDisableInt(); + for (timep = __osTimerList->next, tim = t->remaining; + timep != __osTimerList && tim > timep->remaining; + tim -= timep->remaining, timep = timep->next) { + ; + } + t->remaining = tim; + if (timep != __osTimerList) + timep->remaining -= tim; + t->next = timep; + t->prev = timep->prev; + timep->prev->next = t; + timep->prev = t; + __osRestoreInt(savedMask); + return tim; +} diff --git a/lib/src/os/osViBlack.c b/lib/src/os/osViBlack.c index f0599ff7..e070a865 100644 --- a/lib/src/os/osViBlack.c +++ b/lib/src/os/osViBlack.c @@ -2,15 +2,14 @@ /* RAM_POS: 0x800D1D10 */ #include "libultra_internal.h" +#include "viint.h" -extern OSViContext *__osViNext; -// TODO: name magic constants void osViBlack(u8 active) { register u32 int_disabled = __osDisableInt(); if (active) { - __osViNext->unk00 |= 0x20; + __osViNext->state |= VI_STATE_BLACK; } else { - __osViNext->unk00 &= ~0x20; + __osViNext->state &= ~VI_STATE_BLACK; } __osRestoreInt(int_disabled); } diff --git a/lib/src/os/osViMgr.c b/lib/src/os/osViMgr.c index f64bb24d..320e31b2 100644 --- a/lib/src/os/osViMgr.c +++ b/lib/src/os/osViMgr.c @@ -4,11 +4,11 @@ #include "types.h" #include "macros.h" #include "libultra_internal.h" - +#include "viint.h" extern OSTime __osCurrentTime; extern u32 __osBaseCounter; -extern u32 D_8012D22C; //__osViIntrCount +extern u32 __osViIntrCount; //__osViIntrCount OSDevMgr __osViDevMgr = {0}; @@ -25,13 +25,11 @@ extern OSIoMesg viCounterMsg; //viCounterMsg void viMgrMain(void *arg); -void osCreateViManager(OSPri pri) -{ +void osCreateViManager(OSPri pri) { u32 savedMask; OSPri oldPri; OSPri myPri; - if (__osViDevMgr.active == 0) - { + if (__osViDevMgr.active == 0) { __osTimerServicesInit(); osCreateMesgQueue(&viEventQueue, viEventBuf, 5); viRetraceMsg.hdr.type = OS_MESG_TYPE_VRETRACE; @@ -44,8 +42,7 @@ void osCreateViManager(OSPri pri) osSetEventMesg(OS_EVENT_COUNTER, &viEventQueue, &viCounterMsg); oldPri = -1; myPri = osGetThreadPri(NULL); - if (myPri < pri) - { + if (myPri < pri) { oldPri = myPri; osSetThreadPri(NULL, pri); } @@ -57,14 +54,68 @@ void osCreateViManager(OSPri pri) __osViDevMgr.acsQueue = NULL; __osViDevMgr.dma = NULL; __osViDevMgr.edma = NULL; - osCreateThread(&viThread, 0, viMgrMain, &__osViDevMgr, &viThreadStack[OS_VIM_STACKSIZE], pri); //TODO give 0x8012C130 a proper symbol + osCreateThread(&viThread, 0, viMgrMain, &__osViDevMgr, &viThreadStack[OS_VIM_STACKSIZE], pri); __osViInit(); osStartThread(&viThread); __osRestoreInt(savedMask); - if (oldPri != -1) - { + if (oldPri != -1) { osSetThreadPri(0, oldPri); } } } + +#ifdef NON_MATCHING +void __osTimerInterrupt(void); +//Fails due to how retrace is declared. Not sure how to fix it. +void viMgrMain(void *arg) { + __OSViContext *vc; + OSDevMgr *dm; + OSIoMesg *mesg; + static u16 retrace; + s32 first; + u32 count; + + mesg = NULL; + first = FALSE; + vc = __osViGetCurrentContext(); + retrace = vc->retraceCount; + + if (retrace == 0) + retrace = 1; + + dm = (OSDevMgr *)arg; + + while (TRUE) { + osRecvMesg(dm->evtQueue, (OSMesg *)&mesg, OS_MESG_BLOCK); + switch (mesg->hdr.type) { + case OS_MESG_TYPE_VRETRACE: + __osViSwapContext(); + retrace--; + if (retrace == 0) { + vc = __osViGetCurrentContext(); + if (vc->msgq != NULL) { + osSendMesg(vc->msgq, vc->msg, OS_MESG_NOBLOCK); + } + retrace = vc->retraceCount; + } + __osViIntrCount++; + if (first) { + count = osGetCount(); + __osCurrentTime = count; + first = FALSE; + } + count = __osBaseCounter; + __osBaseCounter = osGetCount(); + count = __osBaseCounter - count; + __osCurrentTime = __osCurrentTime + count; + break; + + case OS_MESG_TYPE_COUNTER: + __osTimerInterrupt(); + break; + } + } +} +#else GLOBAL_ASM("lib/asm/non_matchings/osViMgr_0D2590/viMgrMain.s") +#endif diff --git a/lib/src/os/osViSetEvent.c b/lib/src/os/osViSetEvent.c new file mode 100644 index 00000000..08dc6d0b --- /dev/null +++ b/lib/src/os/osViSetEvent.c @@ -0,0 +1,14 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D1D80 */ + +#include "libultra_internal.h" +#include "viint.h" + +void osViSetEvent(OSMesgQueue *mq, OSMesg m, u32 retraceCount) { + register u32 saveMask; + saveMask = __osDisableInt(); + __osViNext->msgq = mq; + __osViNext->msg = m; + __osViNext->retraceCount = retraceCount; + __osRestoreInt(saveMask); +} diff --git a/lib/src/os/osViSetEventMsg.c b/lib/src/os/osViSetEventMsg.c deleted file mode 100644 index df67605b..00000000 --- a/lib/src/os/osViSetEventMsg.c +++ /dev/null @@ -1,7 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800D1D80 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/osViSetEventMsg_0D2980/osViSetEventMsg.s") diff --git a/lib/src/os/osViSetMode.c b/lib/src/os/osViSetMode.c new file mode 100644 index 00000000..c3c4d595 --- /dev/null +++ b/lib/src/os/osViSetMode.c @@ -0,0 +1,14 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D1CA0 */ + +#include "libultra_internal.h" +#include "viint.h" + +void osViSetMode(OSViMode *modep) { + register u32 saveMask; + saveMask = __osDisableInt(); + __osViNext->modep = modep; + __osViNext->state = VI_STATE_01; + __osViNext->control = __osViNext->modep->comRegs.ctrl; + __osRestoreInt(saveMask); +} diff --git a/lib/src/os/osViSetSpecialFeatures.c b/lib/src/os/osViSetSpecialFeatures.c new file mode 100644 index 00000000..d0596eb9 --- /dev/null +++ b/lib/src/os/osViSetSpecialFeatures.c @@ -0,0 +1,39 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D2260 */ + +#include "libultra_internal.h" +#include "viint.h" + +void osViSetSpecialFeatures(u32 func) { + register u32 saveMask; + saveMask = __osDisableInt(); + if ((func & OS_VI_GAMMA_ON) != 0) { + __osViNext->control |= VI_CTRL_GAMMA_ON; + } + if ((func & OS_VI_GAMMA_OFF) != 0) { + __osViNext->control &= ~VI_CTRL_GAMMA_ON; + } + if ((func & OS_VI_GAMMA_DITHER_ON) != 0) { + __osViNext->control |= VI_CTRL_GAMMA_DITHER_ON; + } + if ((func & OS_VI_GAMMA_DITHER_OFF) != 0) { + __osViNext->control &= ~VI_CTRL_GAMMA_DITHER_ON; + } + if ((func & OS_VI_DIVOT_ON) != 0) { + __osViNext->control |= VI_CTRL_DIVOT_ON; + } + if ((func & OS_VI_DIVOT_OFF) != 0) { + __osViNext->control &= ~VI_CTRL_DIVOT_ON; + } + if ((func & OS_VI_DITHER_FILTER_ON) != 0) { + __osViNext->control |= VI_CTRL_DITHER_FILTER_ON; + __osViNext->control &= ~VI_CTRL_ANTIALIAS_MASK; + } + if ((func & OS_VI_DITHER_FILTER_OFF) != 0) { + __osViNext->control &= ~VI_CTRL_DITHER_FILTER_ON; + __osViNext->control |= __osViNext->modep->comRegs.ctrl & VI_CTRL_ANTIALIAS_MASK; + } + __osViNext->state |= VI_STATE_08; + + __osRestoreInt(saveMask); +} diff --git a/lib/src/os/osViSwapBuffer.c b/lib/src/os/osViSwapBuffer.c index ad00dcae..7311c45b 100644 --- a/lib/src/os/osViSwapBuffer.c +++ b/lib/src/os/osViSwapBuffer.c @@ -2,12 +2,11 @@ /* RAM_POS: 0x800D2420 */ #include "libultra_internal.h" +#include "viint.h" -extern OSViContext *__osViNext; - -void osViSwapBuffer(void *frameBufPtr){ +void osViSwapBuffer(void *frameBufPtr) { u32 saveMask = __osDisableInt(); - __osViNext->buffer = frameBufPtr; - __osViNext->unk00 |= 0x10; + __osViNext->framep = frameBufPtr; + __osViNext->state |= VI_STATE_10; __osRestoreInt(saveMask); } diff --git a/lib/src/os/osVirtualToPhysical.c b/lib/src/os/osVirtualToPhysical.c new file mode 100644 index 00000000..468de672 --- /dev/null +++ b/lib/src/os/osVirtualToPhysical.c @@ -0,0 +1,18 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C8CF0 */ + +#include "types.h" +#include "macros.h" +#include "PR/R4300.h" + +u32 osVirtualToPhysical(void *addr) { + if (IS_KSEG0(addr)) { + return K0_TO_PHYS(addr); + } + else if (IS_KSEG1(addr)) { + return K1_TO_PHYS(addr); + } + else { + return __osProbeTLB(addr); + } +} diff --git a/lib/src/os/osVirtualToPhysical.h b/lib/src/os/osVirtualToPhysical.h new file mode 100644 index 00000000..de6aef77 --- /dev/null +++ b/lib/src/os/osVirtualToPhysical.h @@ -0,0 +1,8 @@ +#ifndef _OSVIRTUALTOPHYSICAL_H_ +#define _OSVIRTUALTOPHYSICAL_H_ + +#include "types.h" + +u32 osVirtualToPhysical(void *addr); + +#endif diff --git a/lib/src/unknown_0D24A0.c b/lib/src/os/osWritebackDCacheAll.c similarity index 82% rename from lib/src/unknown_0D24A0.c rename to lib/src/os/osWritebackDCacheAll.c index 52ba94b3..1c238a06 100644 --- a/lib/src/unknown_0D24A0.c +++ b/lib/src/os/osWritebackDCacheAll.c @@ -4,4 +4,5 @@ #include "types.h" #include "macros.h" +//Likely hand written and impossible to decomp GLOBAL_ASM("lib/asm/non_matchings/unknown_0D24A0/osWritebackDCacheAll.s") diff --git a/lib/src/os/piint.h b/lib/src/os/piint.h new file mode 100644 index 00000000..0c4b300c --- /dev/null +++ b/lib/src/os/piint.h @@ -0,0 +1,144 @@ +#ifndef _PIINT_H +#define _PIINT_H +#include "libultra_internal.h" + +//https://github.com/LuigiBlood/64dd/wiki/Memory-Map + +#define LEO_BASE_REG 0x05000000 + +#define LEO_CMD (LEO_BASE_REG + 0x508) +#define LEO_STATUS (LEO_BASE_REG + 0x508) + +#define LEO_BM_CTL (LEO_BASE_REG + 0x510) +#define LEO_BM_STATUS (LEO_BASE_REG + 0x510) + +#define LEO_SEQ_CTL (LEO_BASE_REG + 0x518) +#define LEO_SEQ_STATUS (LEO_BASE_REG + 0x518) + +#define LEO_C2_BUFF (LEO_BASE_REG + 0x000) //C2 Sector Buffer +#define LEO_SECTOR_BUFF (LEO_BASE_REG + 0x400) //Data Sector Buffer +#define LEO_DATA (LEO_BASE_REG + 0x500) //Data +#define LEO_MISC_REG (LEO_BASE_REG + 0x504) //Misc Register +#define LEO_CUR_TK (LEO_BASE_REG + 0x50C) //Current Track +#define LEO_ERR_SECTOR (LEO_BASE_REG + 0x514) //Sector Error Status +#define LEO_CUR_SECTOR (LEO_BASE_REG + 0x51C) //Current Sector +#define LEO_HARD_RESET (LEO_BASE_REG + 0x520) //Hard Reset +#define LEO_C1_S0 (LEO_BASE_REG + 0x524) //C1 +#define LEO_HOST_SECBYTE (LEO_BASE_REG + 0x528) //Sector Size (in bytes) +#define LEO_C1_S2 (LEO_BASE_REG + 0x52C) //C1 +#define LEO_SEC_BYTE (LEO_BASE_REG + 0x530) //Sectors per Block, Full Size +#define LEO_C1_S4 (LEO_BASE_REG + 0x534) //C1 +#define LEO_C1_S6 (LEO_BASE_REG + 0x538) //C1 +#define LEO_CUR_ADDR (LEO_BASE_REG + 0x53C) //Current Address? +#define LEO_ID_REG (LEO_BASE_REG + 0x540) //ID +#define LEO_TEST_REG (LEO_BASE_REG + 0x544) //Test Read +#define LEO_TEST_PIN_SEL (LEO_BASE_REG + 0x548) //Test Write +#define LEO_RAM_ADDR (LEO_BASE_REG + 0x580) //Microsequencer RAM + +#define LEO_STATUS_PRESENCE_MASK 0xFFFF + +#define LEO_STATUS_DATA_REQUEST 0x40000000 +#define LEO_STATUS_C2_TRANSFER 0x10000000 +#define LEO_STATUS_BUFFER_MANAGER_ERROR 0x08000000 +#define LEO_STATUS_BUFFER_MANAGER_INTERRUPT 0x04000000 +#define LEO_STATUS_MECHANIC_INTERRUPT 0x02000000 +#define LEO_STATUS_DISK_PRESENT 0x01000000 +#define LEO_STATUS_BUSY_STATE 0x00800000 +#define LEO_STATUS_RESET_STATE 0x00400000 +#define LEO_STATUS_MOTOR_NOT_SPINNING 0x00100000 +#define LEO_STATUS_HEAD_RETRACTED 0x00080000 +#define LEO_STATUS_WRITE_PROTECT_ERROR 0x00040000 +#define LEO_STATUS_MECHANIC_ERROR 0x00020000 +#define LEO_STATUS_DISK_CHANGE 0x00010000 + +#define LEO_STATUS_MODE_MASK (LEO_STATUS_MOTOR_NOT_SPINNING | LEO_STATUS_HEAD_RETRACTED) +#define LEO_STATUS_MODE_SLEEP (LEO_STATUS_MOTOR_NOT_SPINNING | LEO_STATUS_HEAD_RETRACTED) +#define LEO_STATUS_MODE_STANDBY (LEO_STATUS_HEAD_RETRACTED) +#define LEO_STATUS_MODE_ACTIVE 0 + +#define LEO_CUR_TK_INDEX_LOCK 0x60000000 + +#define LEO_BM_STATUS_RUNNING 0x80000000 //Running +#define LEO_BM_STATUS_ERROR 0x04000000 //Error +#define LEO_BM_STATUS_MICRO 0x02000000 //Micro Status? +#define LEO_BM_STATUS_BLOCK 0x01000000 //Block Transfer +#define LEO_BM_STATUS_C1CORRECTION 0x00800000 //C1 Correction +#define LEO_BM_STATUS_C1DOUBLE 0x00400000 //C1 Double +#define LEO_BM_STATUS_C1SINGLE 0x00200000 //C1 Single +#define LEO_BM_STATUS_C1ERROR 0x00010000 //C1 Error + +#define LEO_BM_CTL_START 0x80000000 //Start Buffer Manager +#define LEO_BM_CTL_MODE 0x40000000 //Buffer Manager Mode +#define LEO_BM_CTL_IMASK 0x20000000 //BM Interrupt Mask +#define LEO_BM_CTL_RESET 0x10000000 //Buffer Manager Reset +#define LEO_BM_CTL_DISABLE_OR 0x08000000 //Disable OR Check? +#define LEO_BM_CTL_DISABLE_C1 0x04000000 //Disable C1 Correction +#define LEO_BM_CTL_BLOCK 0x02000000 //Block Transfer +#define LEO_BM_CTL_CLR_MECHANIC_INTR 0x01000000 //Mechanic Interrupt Reset + +#define LEO_BM_CTL_CONTROL_MASK 0xFF000000 +#define LEO_BM_CTL_SECTOR_MASK 0x00FF0000 +#define LEO_BM_CTL_SECTOR_SHIFT 16 + +#define LEO_CMD_TYPE_0 0 //TODO: name +#define LEO_CMD_TYPE_1 1 //TODO: name +#define LEO_CMD_TYPE_2 2 //TODO: name + +#define LEO_ERROR_GOOD 0 +#define LEO_ERROR_4 4 //maybe busy? +#define LEO_ERROR_22 22 // +#define LEO_ERROR_23 23 //unrecovered read error? +#define LEO_ERROR_24 24 //no reference position found? +#define LEO_ERROR_29 29 // + +extern OSDevMgr __osPiDevMgr; +extern OSPiHandle *__osCurrentHandle[2]; +extern OSPiHandle CartRomHandle; +extern OSPiHandle LeoDiskHandle; +extern OSMesgQueue __osPiAccessQueue; +extern u32 __osPiAccessQueueEnabled; + +int __osPiDeviceBusy(void); +void __osDevMgrMain(void *); +void __osPiCreateAccessQueue(void); +void __osPiRelAccess(void); +void __osPiGetAccess(void); +OSMesgQueue *osPiGetCmdQueue(void); + +#define OS_RAMROM_STACKSIZE 1024 + +#define WAIT_ON_IOBUSY(stat) \ + stat = IO_READ(PI_STATUS_REG); \ + while (stat & (PI_STATUS_IO_BUSY | PI_STATUS_DMA_BUSY)) \ + stat = IO_READ(PI_STATUS_REG); + +#define UPDATE_REG(reg, var) \ + if (cHandle->var != pihandle->var) \ + IO_WRITE(reg, pihandle->var); + +#define EPI_SYNC(pihandle, stat, domain) \ + \ + WAIT_ON_IOBUSY(stat) \ + \ + domain = pihandle->domain; \ + if (__osCurrentHandle[domain] != pihandle) \ + { \ + OSPiHandle *cHandle = __osCurrentHandle[domain]; \ + if (domain == PI_DOMAIN1) \ + { \ + UPDATE_REG(PI_BSD_DOM1_LAT_REG, latency); \ + UPDATE_REG(PI_BSD_DOM1_PGS_REG, pageSize); \ + UPDATE_REG(PI_BSD_DOM1_RLS_REG, relDuration); \ + UPDATE_REG(PI_BSD_DOM1_PWD_REG, pulse); \ + } \ + else \ + { \ + UPDATE_REG(PI_BSD_DOM2_LAT_REG, latency); \ + UPDATE_REG(PI_BSD_DOM2_PGS_REG, pageSize); \ + UPDATE_REG(PI_BSD_DOM2_RLS_REG, relDuration); \ + UPDATE_REG(PI_BSD_DOM2_PWD_REG, pulse); \ + } \ + __osCurrentHandle[domain] = pihandle; \ + } + +#endif diff --git a/lib/src/unknown_0C7F40.c b/lib/src/os/unknown_0C7F40.c similarity index 86% rename from lib/src/unknown_0C7F40.c rename to lib/src/os/unknown_0C7F40.c index 6986dbab..cb91a737 100644 --- a/lib/src/unknown_0C7F40.c +++ b/lib/src/os/unknown_0C7F40.c @@ -4,6 +4,7 @@ #include "types.h" #include "macros.h" +//Called only in osInitialize s32 func_800C7340(void) { return 0; } diff --git a/lib/src/unknown_0CD820.c b/lib/src/os/unknown_0CD820.c similarity index 92% rename from lib/src/unknown_0CD820.c rename to lib/src/os/unknown_0CD820.c index cc6a67ea..18cc8de8 100644 --- a/lib/src/unknown_0CD820.c +++ b/lib/src/os/unknown_0CD820.c @@ -29,4 +29,4 @@ GLOBAL_ASM("lib/asm/non_matchings/unknown_0CD820/__osContGetInitData.s") GLOBAL_ASM("lib/asm/non_matchings/unknown_0CD820/__osPackRequestData.s") GLOBAL_ASM("lib/asm/non_matchings/unknown_0CD820/osContStartReadData.s") GLOBAL_ASM("lib/asm/non_matchings/unknown_0CD820/osContGetReadData.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CD820/func_800CD14C.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CD820/__osPackReadData.s") diff --git a/lib/src/unknown_0CE200.c b/lib/src/os/unknown_0CE200.c similarity index 60% rename from lib/src/unknown_0CE200.c rename to lib/src/os/unknown_0CE200.c index 25b26541..1027d2b3 100644 --- a/lib/src/unknown_0CE200.c +++ b/lib/src/os/unknown_0CE200.c @@ -4,35 +4,37 @@ #include "types.h" #include "macros.h" #include "libultra_internal.h" -#include "../src/memory.h" +#include "src/memory.h" s32 D_800E38D0 = 0; // Ok, so I completely gave up on the rest of these bss variables. // This is probably not the right place for them, but we can always -// fix that later. ¯\_(ツ)_/¯ +// fix that later. s32 D_8012CE20[2]; s32 D_8012CE28[6]; -s32 __osEepPifRam[15]; -s32 D_8012CE7C; -s32 viThread[172]; -s32 viEventQueue[6]; -s32 viEventBuf[6]; +s32 __osEepPifRam[15]; +s32 D_8012CE7C; //__osEepPifRam.pifstatus +s32 viThread[172]; +s32 viEventQueue[6]; +s32 viEventBuf[6]; s32 viRetraceMsg[6]; s32 viCounterMsg[6]; -s32 D_8012D190[4]; -s32 D_8012D1A0[16]; -s32 D_8012D1E0[2]; -s32 piAccessQueue[6]; +u16 retrace; //Used in viMgrMain, but it's supposed to be static in that function +u16 D_8012D192; +s32 D_8012D194[2]; +s32 D_8012D1A0[16]; +s32 D_8012D1E0[2]; +s32 piAccessQueue[6]; OSTimer D_8012D200; -s32 __osCurrentTime; -s32 D_8012D224; +OSTime __osCurrentTime; s32 __osBaseCounter; -s32 D_8012D22C; -s32 D_8012D230[4]; -s32 D_8012D240[108]; -MemoryPoolSlot *gMainMemoryPool; +s32 __osViIntrCount; +u32 __osTimerCounter; +u32 D_8012D234[2]; +s32 D_8012D240[108]; +MemoryPoolSlot *gMainMemoryPool; GLOBAL_ASM("lib/asm/non_matchings/unknown_0CE200/__osSiCreateAccessQueue.s") GLOBAL_ASM("lib/asm/non_matchings/unknown_0CE200/__osSiGetAccess.s") diff --git a/lib/src/unknown_0CE370.c b/lib/src/os/unknown_0CE370.c similarity index 100% rename from lib/src/unknown_0CE370.c rename to lib/src/os/unknown_0CE370.c diff --git a/lib/src/os/unknown_0CF330.c b/lib/src/os/unknown_0CF330.c new file mode 100644 index 00000000..8da09a4d --- /dev/null +++ b/lib/src/os/unknown_0CF330.c @@ -0,0 +1,10 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800CED20 */ + +#include "types.h" +#include "macros.h" + +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/func_800CED20.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__osPfsGetStatus.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__osPfsGetNextPage.s") +GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/osPfsReadWriteFile.s") diff --git a/lib/src/unknown_0D1180.c b/lib/src/os/unknown_0D1180.c similarity index 100% rename from lib/src/unknown_0D1180.c rename to lib/src/os/unknown_0D1180.c diff --git a/lib/src/unknown_0D1C40.c b/lib/src/os/unknown_0D1C40.c similarity index 100% rename from lib/src/unknown_0D1C40.c rename to lib/src/os/unknown_0D1C40.c diff --git a/lib/src/unknown_0D29F0.c b/lib/src/os/unknown_0D29F0.c similarity index 96% rename from lib/src/unknown_0D29F0.c rename to lib/src/os/unknown_0D29F0.c index b1be7246..66e3f434 100644 --- a/lib/src/unknown_0D29F0.c +++ b/lib/src/os/unknown_0D29F0.c @@ -4,6 +4,7 @@ #include "types.h" #include "macros.h" #include "libultra_internal.h" +#include "osVirtualToPhysical.h" typedef struct { @@ -30,6 +31,7 @@ __OSViContext vi[2] = {0}; __OSViContext *__osViCurr = &vi[0]; __OSViContext *__osViNext = &vi[1]; +//TODO: This should be defined above osInitialize #define VI_NTSC_CLOCK 48681812 s32 osViClock = VI_NTSC_CLOCK; @@ -126,9 +128,8 @@ void osSpTaskLoad(OSTask *intp){ ; } -void osSpTaskStartGo(OSTask *tp){ +void osSpTaskStartGo(OSTask *tp) { while (__osSpDeviceBusy()); __osSpSetStatus(SP_SET_INTR_BREAK | SP_CLR_SSTEP | SP_CLR_BROKE | SP_CLR_HALT); } - diff --git a/lib/src/unknown_0D3360.c b/lib/src/os/unknown_0D3360.c similarity index 89% rename from lib/src/unknown_0D3360.c rename to lib/src/os/unknown_0D3360.c index 687ccda5..fe43830f 100644 --- a/lib/src/unknown_0D3360.c +++ b/lib/src/os/unknown_0D3360.c @@ -4,14 +4,12 @@ #include "types.h" #include "macros.h" #include "libultra_internal.h" -#include "hardware.h" GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3160/__osDevMgrMain.s") GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3160/__osViInit.s") GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3160/alSynDelete.s") -void __osDequeueThread(OSThread **queue, OSThread *t) -{ +void __osDequeueThread(OSThread **queue, OSThread *t) { register OSThread *pred; register OSThread *succ; pred = (OSThread *)queue; //this is actually legit.. diff --git a/lib/src/unknown_0D5390.c b/lib/src/os/unknown_0D5390.c similarity index 60% rename from lib/src/unknown_0D5390.c rename to lib/src/os/unknown_0D5390.c index c74313d4..edc82764 100644 --- a/lib/src/unknown_0D5390.c +++ b/lib/src/os/unknown_0D5390.c @@ -1,8 +1,6 @@ /* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800D4790 */ +/* RAM_POS: 0x800D47DC */ -#include "types.h" #include "macros.h" -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D5390/osPiRawWriteIo.s") GLOBAL_ASM("lib/asm/non_matchings/unknown_0D5390/__osSetHWIntrRoutine.s") diff --git a/lib/src/unknown_0D5EC0.c b/lib/src/os/unknown_0D5EC0.c similarity index 99% rename from lib/src/unknown_0D5EC0.c rename to lib/src/os/unknown_0D5EC0.c index 1a03639b..34e43d5b 100644 --- a/lib/src/unknown_0D5EC0.c +++ b/lib/src/os/unknown_0D5EC0.c @@ -19,4 +19,3 @@ GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/__osDpDeviceBusy.s") __OSViContext *__osViGetCurrentContext(void){ return __osViCurr; } - diff --git a/lib/src/unknown_0D6C90.c b/lib/src/os/unknown_0D6C90.c similarity index 74% rename from lib/src/unknown_0D6C90.c rename to lib/src/os/unknown_0D6C90.c index 79552979..7f05b926 100644 --- a/lib/src/unknown_0D6C90.c +++ b/lib/src/os/unknown_0D6C90.c @@ -12,7 +12,7 @@ struct __osThreadTail } __osThreadTail; struct __osThreadTail __osThreadTail = {0, -1}; -OSThread *__RunQueue = &__osThreadTail.next; +OSThread *__osRunQueue = &__osThreadTail.next; OSThread *__osActiveQueue = &__osThreadTail.next; extern OSThread *__osRunningThread = NULL; @@ -31,14 +31,8 @@ extern void __osRestoreInt(u32); void osYieldThread(void){ register u32 saveMask = __osDisableInt(); __osRunningThread->state = OS_STATE_RUNNABLE; - __osEnqueueAndYield(&__RunQueue); + __osEnqueueAndYield(&__osRunQueue); __osRestoreInt(saveMask); }*/ GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/osDestroyThread.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/_Litob.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/_Genld.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/_Ldtob.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/__osSetCompare.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/lldiv.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/ldiv.s") \ No newline at end of file diff --git a/lib/src/viint.h b/lib/src/os/viint.h similarity index 100% rename from lib/src/viint.h rename to lib/src/os/viint.h diff --git a/lib/src/vitbl.c b/lib/src/os/vitbl.c similarity index 99% rename from lib/src/vitbl.c rename to lib/src/os/vitbl.c index 29dcdfe4..a21a3f0c 100644 --- a/lib/src/vitbl.c +++ b/lib/src/os/vitbl.c @@ -1546,9 +1546,7 @@ OSViMode osViModeTable[42] = { }}}, }; - // TODO: Convert the following arrays into OSViMode structs. - s32 D_800E4620[20] = { 0x00000000, 0x0000320E, 0x00000140, 0x03E52239, 0x0000020D, 0x00000C15, 0x0C150C15, 0x006C02EC, diff --git a/lib/src/unknown_0C91A0.c b/lib/src/unknown_0C91A0.c deleted file mode 100644 index b4856297..00000000 --- a/lib/src/unknown_0C91A0.c +++ /dev/null @@ -1,27 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C85A0 */ - -#include "libultra_internal.h" -#include "types.h" -#include "macros.h" - -ALGlobals *alGlobals = NULL; - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/alCSPPlay.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/alCSPStop.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/osAiSetFrequency.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/alUnlink.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/alLink.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/alClose.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/alInit.s") - -extern OSThread __osThreadTail; -void osCreateMesgQueue(OSMesgQueue *mq, OSMesg *msg, s32 msgCount) -{ - mq->mtqueue = (OSThread *)&__osThreadTail; - mq->fullqueue = (OSThread *)&__osThreadTail; - mq->validCount = 0; - mq->first = 0; - mq->msgCount = msgCount; - mq->msg = msg; -} \ No newline at end of file diff --git a/lib/src/unknown_0C98F0.c b/lib/src/unknown_0C98F0.c deleted file mode 100644 index d60b9397..00000000 --- a/lib/src/unknown_0C98F0.c +++ /dev/null @@ -1,7 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C8CF0 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C98F0/osVirtualToPhysical.s") diff --git a/lib/src/unknown_0C9970.c b/lib/src/unknown_0C9970.c deleted file mode 100644 index 92294c27..00000000 --- a/lib/src/unknown_0C9970.c +++ /dev/null @@ -1,9 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C8D70 */ - -#include "types.h" -#include "macros.h" - -u8 D_800E3790 = 0; - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C9970/osAiSetNextBuffer.s") diff --git a/lib/src/unknown_0CA730.c b/lib/src/unknown_0CA730.c deleted file mode 100644 index 1d48aaaa..00000000 --- a/lib/src/unknown_0CA730.c +++ /dev/null @@ -1,9 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C9B30 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA730/__d_to_ll.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA730/__f_to_ll.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA730/__ll_to_f.s") diff --git a/lib/src/unknown_0CA940.c b/lib/src/unknown_0CA940.c deleted file mode 100644 index 3467b96d..00000000 --- a/lib/src/unknown_0CA940.c +++ /dev/null @@ -1,8 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C9D40 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA940/func_800C9D40.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA940/func_800C9D54.s") diff --git a/lib/src/unknown_0CA9A0.c b/lib/src/unknown_0CA9A0.c deleted file mode 100644 index 9321d016..00000000 --- a/lib/src/unknown_0CA9A0.c +++ /dev/null @@ -1,18 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800CA0B0 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alFilterNew.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alEnvMixerPull.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alEnvmixerParam.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/func_800CAC5C.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/func_800CB2D4.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/func_800CB498.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alLoadParam.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alRaw16Pull.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/func_800CBAC0.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alLoadPull.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alResampleParam.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alResamplePull.s") diff --git a/lib/src/unknown_0CCF90.c b/lib/src/unknown_0CCF90.c deleted file mode 100644 index 3b42e9b6..00000000 --- a/lib/src/unknown_0CCF90.c +++ /dev/null @@ -1,20 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800CC390 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CCF90/alMainBusParam.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CCF90/alMainBusPull.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CCF90/alSaveParam.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CCF90/alSavePull.s") - -s32 D_800E38A0 = 0; // Not sure what this is. -s32 D_800E38A4 = 62500000; // OSTime osClockRate = OS_CLOCK_RATE; -u32 D_800E38A8 = 0; // u32 __osShutdown = 0; -u32 D_800E38AC = 0x3FFF01; // u32 __OSGlobalIntMask = OS_IM_ALL; -s32 D_800E38B0 = 0; // Not sure what this is. - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CCF90/osInitialize.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CCF90/osSetThreadPri.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CCF90/guPerspectiveF.s") diff --git a/lib/src/unknown_0CDE90.c b/lib/src/unknown_0CDE90.c deleted file mode 100644 index 863b500f..00000000 --- a/lib/src/unknown_0CDE90.c +++ /dev/null @@ -1,36 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800CD290 */ - -#include "types.h" -#include "macros.h" -#include "libultra_internal.h" -#include "controller.h" - -extern OSPifRam __osPfsPifRam; //__osPfsPifRam -extern u8 __osContLastCmd; //__osContLastCmd -extern u8 __osMaxControllers;//__osMaxControllers -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CDE90/osPfsIsPlug.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CDE90/__osPfsRequestData.s") - -void __osPfsGetInitData(u8 *pattern, OSContStatus *data) -{ - u8 *ptr; - __OSContRequesFormat requestformat; - int i; - u8 bits; - bits = 0; - ptr = (u8 *)&__osPfsPifRam; - for (i = 0; i < __osMaxControllers; i++, ptr += sizeof(__OSContRequesFormat)) - { - requestformat = *(__OSContRequesFormat *)ptr; - data->errno = CHNL_ERR(requestformat); - if (data->errno == 0) - { - data->type = (requestformat.typel << 8) | (requestformat.typeh); - data->status = requestformat.status; - bits |= 1 << i; - } - data++; - } - *pattern = bits; -} diff --git a/lib/src/unknown_0CE8A0.c b/lib/src/unknown_0CE8A0.c deleted file mode 100644 index 282cef81..00000000 --- a/lib/src/unknown_0CE8A0.c +++ /dev/null @@ -1,8 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800CDCA0 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CE8A0/__osContRamRead.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CE8A0/__osPackRamReadData.s") diff --git a/lib/src/unknown_0CF070.c b/lib/src/unknown_0CF070.c deleted file mode 100644 index 72e90555..00000000 --- a/lib/src/unknown_0CF070.c +++ /dev/null @@ -1,7 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800CE470 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF070/__osPackEepReadData.s") diff --git a/lib/src/unknown_0CF330.c b/lib/src/unknown_0CF330.c deleted file mode 100644 index 02a3e6cd..00000000 --- a/lib/src/unknown_0CF330.c +++ /dev/null @@ -1,17 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800CE730 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_rshift.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_rem.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_div.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ll_lshift.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ll_div.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ll_mul.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_divremi.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/func_800CED20.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__osPfsGetStatus.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__osPfsGetNextPage.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/osPfsReadWriteFile.s") diff --git a/lib/src/unknown_0D0130.c b/lib/src/unknown_0D0130.c deleted file mode 100644 index f7d628c8..00000000 --- a/lib/src/unknown_0D0130.c +++ /dev/null @@ -1,11 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800CF530 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D0130/osPfsChecker.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D0130/corrupted_init.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D0130/corrupted.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D0130/osPfsReFormat.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D0130/osPfsNumFiles.s") diff --git a/lib/src/unknown_0D1A80.c b/lib/src/unknown_0D1A80.c deleted file mode 100644 index 0fdb9412..00000000 --- a/lib/src/unknown_0D1A80.c +++ /dev/null @@ -1,7 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800D0E80 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D1A80/osPfsFindFile.s") diff --git a/lib/src/unknown_0D24E0.c b/lib/src/unknown_0D24E0.c deleted file mode 100644 index ae725053..00000000 --- a/lib/src/unknown_0D24E0.c +++ /dev/null @@ -1,7 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800D18E0 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D24E0/osDpSetNextBuffer.s") diff --git a/lib/src/unknown_0D28A0.c b/lib/src/unknown_0D28A0.c deleted file mode 100644 index 2a38ff5d..00000000 --- a/lib/src/unknown_0D28A0.c +++ /dev/null @@ -1,7 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800D1CA0 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D28A0/osViSetMode.s") diff --git a/lib/src/unknown_0D3020.c b/lib/src/unknown_0D3020.c index 6e51a003..8a74a7ba 100644 --- a/lib/src/unknown_0D3020.c +++ b/lib/src/unknown_0D3020.c @@ -1,34 +1,28 @@ /* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800D2470 */ +/* RAM_POS: 0x800D2480 */ #include "types.h" #include "macros.h" #include "libultra_internal.h" -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/func_800D2470.s") - #define PI_Q_BUF_LEN 1 extern u32 __osPiAccessQueueEnabled;//__osPiAccessQueueEnabled extern OSMesg D_8012D1E0[PI_Q_BUF_LEN];//piAccessBuf extern OSMesgQueue piAccessQueue; //__osPiAccessQueue -void __osPiCreateAccessQueue(void) -{ - +void __osPiCreateAccessQueue(void) { __osPiAccessQueueEnabled = 1; osCreateMesgQueue(&piAccessQueue, D_8012D1E0, PI_Q_BUF_LEN); osSendMesg(&piAccessQueue, NULL, OS_MESG_NOBLOCK); } -void __osPiGetAccess(void) -{ +void __osPiGetAccess(void) { OSMesg dummyMesg; if (!__osPiAccessQueueEnabled) __osPiCreateAccessQueue(); osRecvMesg(&piAccessQueue, &dummyMesg, OS_MESG_BLOCK); } -void __osPiRelAccess(void) -{ +void __osPiRelAccess(void) { osSendMesg(&piAccessQueue, NULL, OS_MESG_NOBLOCK); } @@ -115,21 +109,3 @@ const int D_800E98B8[2] = { const int D_800E98C0[2] = { 0x7F810000, 0x00000000 }; - - - - - - - - - - - - - - - - - - diff --git a/lib/src/unknown_0D3160.c b/lib/src/unknown_0D3160.c deleted file mode 100644 index e754a52f..00000000 --- a/lib/src/unknown_0D3160.c +++ /dev/null @@ -1,38 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800D2560 */ - -#include "types.h" -#include "macros.h" -#include "libultra_internal.h" -#include "hardware.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3160/__osDisableInt.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3160/__osRestoreInt.s") - -s32 osPiRawStartDma(s32 direction, u32 devAddr, void *dramAddr, u32 size) -{ - register int status; - status = HW_REG(PI_STATUS_REG, u32); - while (status & (PI_STATUS_BUSY | PI_STATUS_IOBUSY | PI_STATUS_ERROR)) { - status = HW_REG(PI_STATUS_REG, u32); - } - - HW_REG(PI_DRAM_ADDR_REG, void *) = (void *) osVirtualToPhysical(dramAddr); - - HW_REG(PI_CART_ADDR_REG, void *) = (void *) (((uintptr_t) osRomBase | devAddr) & 0x1fffffff); - - switch (direction) { - case OS_READ: - HW_REG(PI_WR_LEN_REG, u32) = size - 1; - break; - case OS_WRITE: - HW_REG(PI_RD_LEN_REG, u32) = size - 1; - break; - default: - return -1; - break; - } - return 0; -} - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3160/osEPiRawStartDma.s") diff --git a/lib/src/unknown_0D4270.c b/lib/src/unknown_0D4270.c deleted file mode 100644 index ae655ab2..00000000 --- a/lib/src/unknown_0D4270.c +++ /dev/null @@ -1,7 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800D3670 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D4270/__osAiDeviceBusy.s") diff --git a/lib/src/unknown_0D43F0.c b/lib/src/unknown_0D43F0.c deleted file mode 100644 index af16b492..00000000 --- a/lib/src/unknown_0D43F0.c +++ /dev/null @@ -1,16 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800D3820 */ - -#include "types.h" -#include "macros.h" - -s32 D_800E48A0[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D43F0/alCopy.s") - - -char D_800E48C0[36] = " "; -char D_800E48E4[32] = "00000000000000000000000000000000"; - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D43F0/_Putfld.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D43F0/_Printf.s") \ No newline at end of file diff --git a/src/audio.c b/src/audio.c index 05f2cf7b..b59c2a67 100644 --- a/src/audio.c +++ b/src/audio.c @@ -11,17 +11,10 @@ #include "audio_internal.h" #include "unknown_003260.h" -/* Size: 0x08 bytes */ -typedef struct unk80115D48 { - /* 0x00 */ u16 unk0; - /* 0x02 */ s16 unk2; - /* 0x04 */ s32 unk4; -} unk80115D48; - /************ .data ************/ -ALCSPlayer *gMusicPlayer = NULL; -ALCSPlayer *gSndFxPlayer = NULL; +ALSeqPlayer *gMusicPlayer = NULL; +ALSeqPlayer *gSndFxPlayer = NULL; u8 musicRelativeVolume = 0x7F; u8 sfxRelativeVolume = 0x7F; u8 D_800DC640 = 1; @@ -162,7 +155,7 @@ void audio_init(u32 arg0) { synth_config.heap = &gALHeap; audioNewThread(&synth_config, 12, arg0); gMusicPlayer = func_80002224(24, 120); - func_8000B010(gMusicPlayer, 18); + set_voice_limit(gMusicPlayer, 18); gSndFxPlayer = func_80002224(16, 50); D_80115CFC = allocate_from_main_pool_safe( seq_max_len, COLOR_TAG_CYAN); D_80115D00 = allocate_from_main_pool_safe( seq_max_len, COLOR_TAG_CYAN); @@ -255,9 +248,9 @@ void play_music(u8 arg0) { } } -void func_80000BE0(u8 arg0) { +void set_music_player_voice_limit(u8 voiceLimit) { if (D_800DC670 == 0) { - func_8000B010(gMusicPlayer, arg0); + set_voice_limit(gMusicPlayer, voiceLimit); } } @@ -269,8 +262,8 @@ void func_80000C2C(void) { D_800DC670 = 0; } -void func_80000C38(u8 arg0) { - func_8000B010(gSndFxPlayer, arg0); +void set_sndfx_player_voice_limit(u8 voiceLimit) { + set_voice_limit(gSndFxPlayer, voiceLimit); } /* Unused? */ @@ -750,8 +743,8 @@ u8 ALBankFile_80115D14_GetSoundDecayTime(u16 sndIndx) { return ((u32)(1+ ALBankFile_80115D14->bankArray[0]->instArray[0]->soundArray[sndIndx-1]->envelope->decayTime) == 0); } -ALCSPlayer *func_80002224(s32 _max_voices, s32 _max_events) { - ALCSPlayer *cseqp; +ALSeqPlayer *func_80002224(s32 _max_voices, s32 _max_events) { + ALCSPlayer_Custom *cseqp; ALSeqpConfig config; config.maxVoices = _max_voices; @@ -763,15 +756,15 @@ ALCSPlayer *func_80002224(s32 _max_voices, s32 _max_events) { config.updateOsc = NULL; config.stopOsc = NULL; - - cseqp = (ALCSPlayer *) alHeapDBAlloc(NULL, 0, &gALHeap, 1, 128); + cseqp = (ALCSPlayer_Custom *) alHeapDBAlloc(NULL, 0, &gALHeap, 1, sizeof(ALCSPlayer_Custom)); alCSPNew(cseqp, &config); alCSPSetBank(cseqp, ALBankFile_80115D10->bankArray[0]); - ((u8*) cseqp)[0x36]= 0x7F; //this member doesn't exist in ALCSPlayer + cseqp->unk36 = 0x7F; + return cseqp; } -void func_800022BC(u8 arg0, ALCSPlayer *arg1) { +void func_800022BC(u8 arg0, ALSeqPlayer *arg1) { func_80002570(arg1); if (arg0 < ALSeqFile_80115CF8->seqCount) { if (arg1 == gMusicPlayer) { @@ -785,7 +778,7 @@ void func_800022BC(u8 arg0, ALCSPlayer *arg1) { #if 1 GLOBAL_ASM("asm/non_matchings/audio/func_8000232C.s") #else -void func_8000232C(ALCSPlayer *seqp, void *ptr, u8 *arg2, ALCSeq *seq){ +void func_8000232C(ALSeqPlayer *seqp, void *ptr, u8 *arg2, ALCSeq *seq){ if(alCSPGetState(seqp) == AL_STOPPED && *arg2){ /*load_asset_to_address(ASSET_AUDIO, ptr, (u32)((ALSeqFile_80115CF8->seqArray)[*arg2]) - get_rom_offset_of_asset(ASSET_AUDIO,0), @@ -802,7 +795,7 @@ void func_8000232C(ALCSPlayer *seqp, void *ptr, u8 *arg2, ALCSeq *seq){ } #endif -void func_80002570(ALCSPlayer *seqp) { +void func_80002570(ALSeqPlayer *seqp) { if(gMusicPlayer == seqp && D_80115D40 != 0){ alCSPStop(seqp); D_80115D40 = 0; diff --git a/src/audio.h b/src/audio.h index bcdbc0b0..32fda725 100644 --- a/src/audio.h +++ b/src/audio.h @@ -4,8 +4,8 @@ #include "types.h" #include "audio_internal.h" -extern ALCSPlayer* gMusicPlayer; -extern ALCSPlayer* gSndFxPlayer; +extern ALSeqPlayer* gMusicPlayer; +extern ALSeqPlayer* gSndFxPlayer; extern u8 musicRelativeVolume; extern u8 sfxRelativeVolume; extern u8 D_800DC640; @@ -30,38 +30,48 @@ typedef struct unk80115D18 { u8 pad8[2]; } unk80115D18; -/* Size: 3 bytes */ +/* Size: 0x03 bytes */ typedef struct unk80115D1C { u8 unk0; u8 unk1; u8 unk2; } unk80115D1C; +/* Size: 0x08 bytes */ +typedef struct unk80115D48 { + /* 0x00 */ u16 unk0; + /* 0x02 */ s16 unk2; + /* 0x04 */ s32 unk4; +} unk80115D48; + void alCSPNew(ALCSPlayer *seqp, ALSeqpConfig *config); //lib/src/al/csplayer.c void alCSPSetBank(ALCSPlayer *seqp, ALBank *b); //lib/src/unknown_0C8660.c -void func_8000B010(ALCSPlayer *, u8); //lib/src/mips1/alseqplayer.c +void set_voice_limit(ALSeqPlayer *seqp, u8 voiceLimit); //lib/src/mips1/alseqplayer.c void *alHeapDBAlloc(u8 *file, s32 line, ALHeap *hp, s32 num, s32 size); //lib/src/al/alHeapDBAlloc.c s32 alCSPSetChlPan(ALCSPlayer *seqp, u8 chan, ALPan pan); //lib/src/unknown_0C84E0.c void alCSPSetChlVol(ALCSPlayer *, u8 chan, u8 vol); //lib/src/unknown_0C84E0.c -s32 alCSPGetChlVol(ALCSPlayer *seqp, u8 chan); //lib/src/al +u8 alCSPGetChlVol(ALCSPlayer *seqp, u8 chan); //lib/src/al void func_80063BA0(ALCSPlayer *seqp, u8 arg1, u8 arg2); //lib/src/unknown_0647A0.c u8 func_80063C00(ALCSPlayer *seqp, u8 arg1); //lib/src/mips1/al/unknown_064800.c u8 alSeqpGetChlFXMix(ALSeqPlayer *seqp, u8 chan); //lib/src/al/alSeqpGetChlFXMix.c void func_8006492C(u8 arg0); //lib/src/mips1/al/reverb.c +void alHeapInit(ALHeap *hp, u8 *base, s32 len); //lib/src/al/alHeapInit.c +void alBnkfNew(ALBankFile *ctl, u8 *tbl); //lib/src/al/global_asm.c +void alCSPSetVol(ALCSPlayer *seqp, s16 vol); //lib/src/al/alCSPSetVol.c +void alCSPStop(ALCSPlayer *seqp); //lib/src/al/unknown_0C91A0.c +void func_80063B44(u32 arg0, u8 arg1); //lib/src/al/unknown_0646F0.c +s32 alCSPGetState(ALCSPlayer *seqp); //lib/src/unknown_0C8650.c -ALCSPlayer *func_80002224(s32 _max_voices, s32 _max_events); void audio_init(u32 arg0); -void set_relative_volume_for_music(u8 vol); void func_80000890(u8 arg0); void func_80000968(s32 arg0); void func_80000B18(void); void func_80000B28(void); -void func_800022BC(u8 arg0, ALCSPlayer *arg1); void play_music(u8 arg0); -void func_80000BE0(u8 arg0); +void set_music_player_voice_limit(u8 voiceLimit); void func_80000C1C(void); void func_80000C2C(void); -void func_80000C38(u8 arg0); +void set_sndfx_player_voice_limit(u8 voiceLimit); void func_80000C68(u8 arg0); void func_80000C98(s32 arg0); void func_80000CBC(void); @@ -112,17 +122,16 @@ u8 ALSeqFile_80115CF8_GetSeqCount(void); void func_80002128(unk80115D18 **arg0, s32 *arg1, s32 *arg2); void func_8000216C(unk80115D1C **arg0, s32 *arg1, s32 *arg2); u8 ALBankFile_80115D14_GetSoundDecayTime(u16 sndIndx); -ALCSPlayer *func_80002224(s32 _max_voices, s32 _max_events); -void func_800022BC(u8 arg0, ALCSPlayer *arg1); -void func_80002570(ALCSPlayer *seqp); +ALSeqPlayer *func_80002224(s32 _max_voices, s32 _max_events); +void func_800022BC(u8 arg0, ALSeqPlayer *arg1); +void func_80002570(ALSeqPlayer *seqp); void func_80002608(u8 arg0); u8 func_80002630(void); void func_80001D04(u16, s32*); //Non matching. -void func_8000232C(ALCSPlayer *seqp, void *ptr, u8 *arg2, ALCSeq *seq); //Non Matching +void func_8000232C(ALSeqPlayer *seqp, void *ptr, u8 *arg2, ALCSeq *seq); //Non Matching f32 func_800015F8(void); //Non Matching void func_80001FB8(u16 arg0); //Non Matching -void func_8000232C(ALCSPlayer *seqp, void *ptr, u8 *arg2, ALCSeq *seq); // Non Matching void func_80009B7C(s32 *arg0, f32 x, f32 y, f32 z); // Non Matching #endif diff --git a/src/camera.c b/src/camera.c index 110b1daa..cc8aa85d 100644 --- a/src/camera.c +++ b/src/camera.c @@ -6,6 +6,8 @@ #include "unknown_00BC20.h" #include "unknown_06B2B0.h" #include "unknown_0255E0.h" +#include "video.h" +#include "lib/src/libc/rmonPrintf.h" extern u32 osTvType; @@ -128,9 +130,10 @@ Matrix D_80121020; Matrix D_80121060; Matrix D_801210A0; OSMesgQueue *D_801210E0[6]; -s32 D_801210F8; -s32 D_801210FC; -u8 D_80121100[16]; +OSMesg *D_801210F8; +OSMesg D_801210FC; +OSContStatus status; +s32 D_80121108[2]; //Padding? unk80121110 D_80121110[8]; u16 D_80121140[4]; u16 D_80121148[4]; @@ -139,7 +142,6 @@ u8 D_80121150[16]; /******************************/ #ifdef NON_MATCHING -void func_800663DC(s32 x_pos, s32 y_pos, s32 z_pos, s32 arg3, s32 arg4, s32 arg5); extern s32 D_A4600010; extern s32 D_B0000578; @@ -166,8 +168,8 @@ void func_80065EA0(void) { if ((D_B0000578 & 0xFFFF) != 0x8965) { D_800DD060 = 1; } - guPerspectiveF(&D_80120EE0, &perspNorm[5], CAMERA_DEFAULT_FOV, CAMERA_ASPECT, CAMERA_NEAR, CAMERA_FAR, CAMERA_SCALE); - func_8006F870(&D_80120EE0, &D_80120FE0); + guPerspectiveF(D_80120EE0, perspNorm[5], CAMERA_DEFAULT_FOV, CAMERA_ASPECT, CAMERA_NEAR, CAMERA_FAR, CAMERA_SCALE); + func_8006F870(D_80120EE0, D_80120FE0); gCurCamFOV = CAMERA_DEFAULT_FOV; } #else @@ -305,7 +307,7 @@ void func_80066488(s32 arg0, f32 xPos, f32 yPos, f32 zPos, s16 arg4, s16 arg5, s D_80120AC0[arg0].unk0 = arg4; D_80120AC0[arg0].unk2 = arg5; D_80120AC0[arg0].unk4 = arg6; - D_80120AC0[arg0].unk34 = get_level_segment_index_from_position(xPos, yPos, zPos); + D_80120AC0[arg0].levelSegmentIndex = get_level_segment_index_from_position(xPos, yPos, zPos); D_80120D14 = 1; } @@ -464,30 +466,30 @@ void func_80066940(s32 viewPortIndex, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { phi_a2 = arg2; } if ((phi_a1 >= width) || (phi_a3 < 0) || (arg2 >= height) || (phi_a2 < 0)) { - gScreenViewports[viewPortIndex].unk20 = 0; - gScreenViewports[viewPortIndex].unk24 = 0; - gScreenViewports[viewPortIndex].unk28 = 0; - gScreenViewports[viewPortIndex].unk2C = 0; + gScreenViewports[viewPortIndex].upperLeftX = 0; + gScreenViewports[viewPortIndex].upperLeftY = 0; + gScreenViewports[viewPortIndex].lowerRightX = 0; + gScreenViewports[viewPortIndex].lowerRightY = 0; } else { if (phi_a1 < 0) { - gScreenViewports[viewPortIndex].unk20 = 0; + gScreenViewports[viewPortIndex].upperLeftX = 0; } else { - gScreenViewports[viewPortIndex].unk20 = phi_a1; + gScreenViewports[viewPortIndex].upperLeftX = phi_a1; } if (arg2 < 0) { - gScreenViewports[viewPortIndex].unk24 = 0; + gScreenViewports[viewPortIndex].upperLeftY = 0; } else { - gScreenViewports[viewPortIndex].unk24 = arg2; + gScreenViewports[viewPortIndex].upperLeftY = arg2; } if (phi_a3 >= width) { - gScreenViewports[viewPortIndex].unk28 = width - 1; + gScreenViewports[viewPortIndex].lowerRightX = width - 1; } else { - gScreenViewports[viewPortIndex].unk28 = phi_a3; + gScreenViewports[viewPortIndex].lowerRightX = phi_a3; } if (phi_a2 >= height) { - gScreenViewports[viewPortIndex].unk2C = height - 1; + gScreenViewports[viewPortIndex].lowerRightY = height - 1; } else { - gScreenViewports[viewPortIndex].unk2C = phi_a2; + gScreenViewports[viewPortIndex].lowerRightY = phi_a2; } } gScreenViewports[viewPortIndex].unk4 = arg2; @@ -526,12 +528,13 @@ void func_80066AA8(s32 viewPortIndex, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { gScreenViewports[viewPortIndex].flags &= ~0x40; } -s32 func_80066BA8(s32 viewPortIndex, s32 *arg1, s32 *arg2, s32 *arg3, s32 *arg4) { - *arg1 = gScreenViewports[viewPortIndex].unk20; - *arg3 = gScreenViewports[viewPortIndex].unk28; - *arg2 = gScreenViewports[viewPortIndex].unk24; - *arg4 = gScreenViewports[viewPortIndex].unk2C; - if ((*arg1 | *arg3 | *arg2 | *arg4) == 0) { +s32 func_80066BA8(s32 viewPortIndex, s32 *upperLeftX, s32 *upperLeftY, s32 *lowerRightX, s32 *lowerRightY) { + //gDPFillRectangle values + *upperLeftX = gScreenViewports[viewPortIndex].upperLeftX; + *lowerRightX = gScreenViewports[viewPortIndex].lowerRightX; + *upperLeftY = gScreenViewports[viewPortIndex].upperLeftY; + *lowerRightY = gScreenViewports[viewPortIndex].lowerRightY; + if ((*upperLeftX | *lowerRightX | *upperLeftY | *lowerRightY) == 0) { return 0; } return 1; @@ -550,10 +553,9 @@ void func_80066C80(s32 *arg0, s32 *arg1, s32 *arg2, s32 *arg3) { *arg0 = 0; *arg1 = 0; *arg2 = temp_v0 & 0xFFFF; - *arg3 = (u32) (temp_v0 >> 0x10); + *arg3 = temp_v0 >> 0x10; } - #ifdef NON_MATCHING // Still a work-in-progress but it doesn't seem to cause any problems, @@ -584,10 +586,10 @@ void func_80066CDC(Gfx **dlist, s32 arg1) { temp_a3 = temp_t0 >> 1; if (gScreenViewports[D_80120CE4].flags & 1) { gDPSetScissor((*dlist)++, SCISSOR_INTERLACE, - gScreenViewports[D_80120CE4].unk20, - gScreenViewports[D_80120CE4].unk24, - gScreenViewports[D_80120CE4].unk28, - gScreenViewports[D_80120CE4].unk2C + gScreenViewports[D_80120CE4].upperLeftX, + gScreenViewports[D_80120CE4].upperLeftY, + gScreenViewports[D_80120CE4].lowerRightX, + gScreenViewports[D_80120CE4].lowerRightY ) func_80068158(dlist, 0, 0, 0, 0); if (arg1 != 0) { @@ -709,13 +711,14 @@ void func_80067F20(f32 arg0) { } void func_80067F2C(Gfx **dlist, s32 *arg1) { - u32 widthAndHeight, width, height; + u32 widthAndHeight; + s32 width, height; s32 i, j; widthAndHeight = get_video_width_and_height_as_s32(); height = widthAndHeight >> 0x10; width = widthAndHeight & 0xFFFF; - func_8006F870(&D_800DD2B8, *arg1); + func_8006F870(D_800DD2B8, *arg1); D_80120D88[0] = *arg1; D_800DD148[D_80120CE4 + 5].vp.vscale[0] = width * 2; D_800DD148[D_80120CE4 + 5].vp.vscale[1] = width * 2; @@ -876,13 +879,13 @@ void func_80069F64(s16 *mtx) { for(i = 0; i < 4; i++) { for(j = 0; j < 4; j++) { val = mtx[i * 4 + j]; - func_800C9D54("%x.", val); + rmonPrintf("%x.", val); val = mtx[((i + 4) * 4 + j)]; // Issue here. - func_800C9D54("%x ", (u16)val); + rmonPrintf("%x ", (u16)val); } - func_800C9D54("\n"); + rmonPrintf("\n"); } - func_800C9D54("\n"); + rmonPrintf("\n"); } #else GLOBAL_ASM("asm/non_matchings/camera/func_80069F64.s") @@ -894,36 +897,40 @@ void func_8006A03C(f32 *mtx) { for(i = 0; i < 4; i++) { for(j = 0; j < 4; j++) { - func_800C9D54("%f ", mtx[i * 4 + j]); + rmonPrintf("%f ", mtx[i * 4 + j]); } - func_800C9D54("\n"); + rmonPrintf("\n"); } - func_800C9D54("\n"); + rmonPrintf("\n"); } OSMesgQueue *func_8006A100(void) { return &D_801210E0; } -#ifdef NON_MATCHING -// Has regalloc & stack issues. s32 func_8006A10C(void) { - u8 sp23; + s32 *temp1; + u8 bitpattern; + s32 *temp2; + osCreateMesgQueue(&D_801210E0, &D_801210F8, 1); - osSetEventMesg(5, &D_801210E0, D_801210FC); - osContInit(&D_801210E0, &sp23, &D_80121100); + osSetEventMesg(OS_EVENT_SI, &D_801210E0, D_801210FC); + osContInit(&D_801210E0, &bitpattern, &status); osContStartReadData(&D_801210E0); func_8006A434(); + D_800DD300 = 0; - if ((sp23 & 1) && !(D_80121100[3] & 8)) { + + if ((bitpattern & CONT_ABSOLUTE) && (!(status.errno & CONT_NO_RESPONSE_ERROR))) { return 0; } + + if (!bitpattern) { } + D_800DD300 = 1; + return -1; } -#else -GLOBAL_ASM("asm/non_matchings/camera/func_8006A10C.s") -#endif GLOBAL_ASM("asm/non_matchings/camera/func_8006A1C4.s") diff --git a/src/camera.h b/src/camera.h index abeeef0e..285bea05 100644 --- a/src/camera.h +++ b/src/camera.h @@ -35,19 +35,19 @@ extern s8 D_800DD060; /* Size: 0x34 bytes. */ typedef struct ScreenViewport { - s32 unk0; - s32 unk4; - s32 unk8; - s32 unkC; - s32 unk10; - s32 unk14; - s32 unk18; - s32 unk1C; - s32 unk20; - s32 unk24; - s32 unk28; - s32 unk2C; - s32 flags; + /* 0x00 */ s32 unk0; + /* 0x04 */ s32 unk4; + /* 0x08 */ s32 unk8; + /* 0x0C */ s32 unkC; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 upperLeftX; //gDPFillRectangle values + /* 0x24 */ s32 upperLeftY; + /* 0x28 */ s32 lowerRightX; + /* 0x2C */ s32 lowerRightY; + /* 0x30 */ s32 flags; } ScreenViewport; /* Size: 6 bytes */ @@ -115,7 +115,7 @@ void func_80066894(s32 viewPortIndex, s32 arg1); s32 func_80066910(s32 viewPortIndex); void func_80066940(s32 viewPortIndex, s32 arg1, s32 arg2, s32 arg3, s32 arg4); void func_80066AA8(s32 viewPortIndex, s32 arg1, s32 arg2, s32 arg3, s32 arg4); -s32 func_80066BA8(s32 viewPortIndex, s32 *arg1, s32 *arg2, s32 *arg3, s32 *arg4); +s32 func_80066BA8(s32 viewPortIndex, s32 *upperLeftX, s32 *upperLeftY, s32 *lowerRightX, s32 *lowerRightY); void func_80066C2C(s32 viewPortIndex, s32 *arg1, s32 *arg2, s32 *arg3, s32 *arg4); void func_80066C80(s32 *arg0, s32 *arg1, s32 *arg2, s32 *arg3); void func_80066CDC(Gfx **dlist, s32 arg1); @@ -149,4 +149,7 @@ s32 func_8006A5E0(s32 arg0); s32 func_8006A624(s8 arg0); void disable_button_mask(void); +// Non Matching +void func_80067A3C(Gfx **dlist); + #endif diff --git a/src/controller_pak.c b/src/controller_pak.c index 94e1bbac..c745c857 100644 --- a/src/controller_pak.c +++ b/src/controller_pak.c @@ -2,6 +2,13 @@ /* RAM_POS: 0x80072250 */ #include "controller_pak.h" +#include "memory.h" +#include "PR/pfs.h" +#include "PR/os_cont.h" +#include "macros.h" +#include "structs.h" +#include "camera.h" +#include "unknown_00BC20.h" /************ .data ************/ @@ -117,11 +124,11 @@ GLOBAL_ASM("asm/non_matchings/controller_pak/func_800732E8.s") GLOBAL_ASM("asm/non_matchings/controller_pak/func_80073588.s") GLOBAL_ASM("asm/non_matchings/controller_pak/func_800738A4.s") -s32 func_80073C4C(void) { +s32 get_s32_256(void) { return 256; } -s32 func_80073C54(void) { +s32 get_s32_512(void) { return 512; } @@ -135,9 +142,9 @@ s32 func_80073F5C(s32 arg0, s32 arg1) { s32 phi_v1; s32 size; - size = func_80073C4C(); // 256 bytes + size = get_s32_256(); // 256 bytes sp2C = allocate_from_main_pool_safe(size, COLOR_TAG_WHITE); - *((s32*)sp2C) = 'GAMD'; + *((s32*)sp2C) = 0x47414D44; //'GAMD'; func_800732E8(arg1, sp2C + 4); phi_v1 = func_80073C5C(arg0, 3, &sp30); if (phi_v1 == 0) { @@ -159,7 +166,7 @@ s32 func_80074148(s32 arg0, Settings *arg1) { s32 temp_v0; s32 sp30; //Possible epcInfo struct - sp24 = func_80073C54(); // 512 bytes + sp24 = get_s32_512(); // 512 bytes sp2C = allocate_from_main_pool_safe(sp24, COLOR_TAG_WHITE); *((s32*)sp2C) = 0x54494D44; // TIMD func_800738A4(arg1, sp2C + 4); @@ -425,13 +432,13 @@ s32 func_80076AF4(s32 controllerIndex, s32 fileNum) { data = allocate_from_main_pool_safe(0x100, COLOR_TAG_BLACK); if (read_data_from_controller_pak(controllerIndex, fileNum, (u8 *)data, 0x100) == 0) { switch(*data) { - case 'GAMD': // Game Data? + case 0x47414D44: //'GAMD': // Game Data? ret = 3; break; - case 'TIMD': // Time Data? + case 0x54494D44: //'TIMD': // Time Data? ret = 4; break; - case 'GHSS': // Ghosts? + case 0x47485353: //'GHSS': // Ghosts? ret = 5; break; default: diff --git a/src/controller_pak.h b/src/controller_pak.h index d6b5c79b..65a67f31 100644 --- a/src/controller_pak.h +++ b/src/controller_pak.h @@ -2,12 +2,7 @@ #define _UNKNOWN_072E50_H_ #include "types.h" -#include "memory.h" -#include "PR/pfs.h" -#include "PR/os_cont.h" -#include "macros.h" #include "structs.h" -#include "camera.h" extern s32 *D_800DE440; extern u8 gN64FontCodes[68]; @@ -17,8 +12,8 @@ extern s32 D_800DE48C; u8 func_80072250(s32 arg0); void func_80072298(u8 arg0); void func_80072708(void); -s32 func_80073C4C(void); -s32 func_80073C54(void); +s32 get_s32_256(void); +s32 get_s32_512(void); s32 func_80073F5C(s32 arg0, s32 arg1); s32 func_80074148(s32 arg0, Settings *arg1); void func_80074AA8(GhostHeader *ghostHeader, s16 characterID, s16 time, s16 nodeCount, u8 *dest); diff --git a/src/fade_transition.c b/src/fade_transition.c index 0adaa99e..60070b29 100644 --- a/src/fade_transition.c +++ b/src/fade_transition.c @@ -9,6 +9,8 @@ #include "asset_sections.h" #include "memory.h" #include "PR/libultra.h" +#include "video.h" +#include "textures_sprites.h" /************ .data ************/ @@ -217,21 +219,16 @@ void func_800C0180(void) { D_800E31A0 = 0; } -#ifdef NON_MATCHING -// Regalloc issues. Uses v1 instead of v0. -s32 func_800C018C(void) { - s32 phi_v0 = (D_800E31B0 != 0); +//@bug: This doesn't seem to guarantee a return. +u32 func_800C018C(void) { + u32 phi_v0 = (D_800E31B0 != 0); if (phi_v0 == 0) { phi_v0 = (D_800E31B4 != 0); if (phi_v0 != 0) { - phi_v0 = (D_800E31BC != 0); + return (D_800E31BC != 0); } } - return phi_v0; } -#else -GLOBAL_ASM("asm/non_matchings/fade_transition/func_800C018C.s") -#endif #ifdef NON_MATCHING @@ -457,7 +454,7 @@ GLOBAL_ASM("asm/non_matchings/fade_transition/render_fade_circle.s") #if 0 // This doesn't work properly. void render_fade_waves(Gfx **dlist, s32 arg1, s32 arg2) { s32 i; - func_8007B3D0(); + func_8007B3D0(dlist); gSPDisplayList((*dlist)++, D_800E3648) for(i = 0; i < 6; i++) { s32 index = D_800E31D0[0] + i; diff --git a/src/fade_transition.h b/src/fade_transition.h index f753dc99..a410fe60 100644 --- a/src/fade_transition.h +++ b/src/fade_transition.h @@ -32,6 +32,7 @@ extern u32 osTvType; void func_800C0170(void); void func_800C0180(void); +u32 func_800C018C(void); void func_800C0724(void); s32 func_800C0494(s32 arg0); void render_fade_transition(s32 dlist, s32 arg1, s32 arg2); @@ -51,7 +52,6 @@ void func_800C27A0(s32 arg0); //Non Matching void func_800C0B00(FadeTransition *transition, s32, s32, s16*, s8*, s8*, s8*, s8*, s8*); //Non Matching void func_800C15D4(FadeTransition *transition); //Non Matching void func_800C2640(FadeTransition *transition); //Non Matching -s32 func_800C018C(void); //Non Matching s32 func_800C01D8(FadeTransition *transition); //Non Matching #endif diff --git a/src/font.c b/src/font.c index b1a80578..78a9070e 100644 --- a/src/font.c +++ b/src/font.c @@ -3,6 +3,7 @@ #include "font.h" #include "menu.h" +#include "textures_sprites.h" /************ .data ************/ diff --git a/src/font.h b/src/font.h index 2981da97..a02cade3 100644 --- a/src/font.h +++ b/src/font.h @@ -14,57 +14,6 @@ #include "f3ddkr.h" #include "textures_sprites.h" -typedef struct unk8012A7E8_24 { - u8 unk00; - u8 unk01; - char *unk4; - s16 unk8; - s16 unkA; - s16 unkC; - s16 unkE; - u8 unk10; - u8 unk11; - u8 unk12; - u8 unk13; - u8 unk14; - u8 unk15; - u8 unk16; - u8 unk17; - u8 unk18; - u8 unk19; - struct unk8012A7E8_24 *unk1C; -} unk8012A7E8_24; - -/* Size: 0x28 bytes */ -typedef struct unk8012A7E8 { - s16 xpos; - s16 ypos; - s16 unk4; - s16 unk6; - s16 unk8; - s16 unkA; - s16 unkC; - s16 unkE; - u8 unk10; - u8 unk11; - u8 unk12; - u8 unk13; - u8 colorRed; - u8 colorGreen; - u8 colorBlue; - u8 colorAlpha; - u8 bgRed; - u8 bgGreen; - u8 bgBlue; - u8 bgAlpha; - u8 opacity; - u8 font; - u16 unk1E; - s16 unk20; - s16 unk22; - unk8012A7E8_24 *unk24; -} unk8012A7E8; - /* Size: 0x20 bytes */ typedef struct unk8012A7EC { u8 unk0; diff --git a/src/game_text.c b/src/game_text.c index 3d82db49..01c742cc 100644 --- a/src/game_text.c +++ b/src/game_text.c @@ -5,6 +5,7 @@ #include "menu.h" #include "unknown_00BC20.h" #include "unknown_043920.h" +#include "unknown_06B2B0.h" /************ .data ************/ diff --git a/src/gzip.c b/src/gzip.c index 74b4a7a7..710c2307 100644 --- a/src/gzip.c +++ b/src/gzip.c @@ -2,11 +2,12 @@ /* RAM_POS: 0x800C6170 */ #include "gzip.h" +#include "asset_loading.h" /************ .data ************/ huft *D_800E3760 = NULL; -u8 *D_800E3764 = NULL; +s32 *gAssetAddress = NULL; u8 *gzip_inflate_input = NULL; u8 *gzip_inflate_output = NULL; @@ -22,7 +23,7 @@ s32 D_8012AAD8; void func_800C6170(void) { D_800E3760 = (huft*)allocate_from_main_pool_safe(0x2800, COLOR_TAG_BLACK); - D_800E3764 = (u8*)allocate_from_main_pool_safe(0x10, COLOR_TAG_BLACK); + gAssetAddress = (s32*)allocate_from_main_pool_safe(0x10, COLOR_TAG_BLACK); } /** @@ -41,8 +42,8 @@ s32 byteswap32(u8 *arg0) { * Returns the uncompressed size of a gzip compressed asset. */ s32 get_asset_uncompressed_size(s32 assetIndex, s32 assetOffset) { - load_asset_to_address(assetIndex, D_800E3764, assetOffset, 8); - return byteswap32(D_800E3764); + load_asset_to_address(assetIndex, gAssetAddress, assetOffset, 8); + return byteswap32((u8 *)gAssetAddress); } /** @@ -87,7 +88,7 @@ void gzip_huft_build(u32 *b, u32 n, u32 s, u16 *d, u16 *e, huft **t, s32 *m) { /* Generate counts for each bit length */ - memzero(c, sizeof(c)); + bzero(c, sizeof(c)); p = b; i = n; do { c[*p]++; /* assume all entries <= BMAX */ diff --git a/src/main.c b/src/main.c index 6d4ce606..20e4669b 100644 --- a/src/main.c +++ b/src/main.c @@ -4,6 +4,7 @@ #include "main.h" #include "thread0_epc.h" #include "unknown_06B2B0.h" +#include "lib/src/libc/rmonPrintf.h" /************ .rodata ************/ @@ -64,7 +65,7 @@ void func_80065E30(void) { D_8011D758[1] = temp3; D_8011D758[0] = temp4; if ((temp2 != temp4) || (temp != temp3)) { - func_800C9D54("WARNING: Stack overflow/underflow!!!\n"); + rmonPrintf("WARNING: Stack overflow/underflow!!!\n"); } } #else diff --git a/src/menu.c b/src/menu.c index 20069f08..f4f5b9b1 100644 --- a/src/menu.c +++ b/src/menu.c @@ -2316,7 +2316,7 @@ void menu_title_screen_init(void) { for(i = 0; i < 11; i++) { D_800DF7DC[i].texture = D_80126550[D_800DF7C4[i]]; } - func_80000BE0(0x1B); + set_music_player_voice_limit(0x1B); func_800660C0(); set_text_font(0); func_800C4170(2); @@ -2344,7 +2344,7 @@ GLOBAL_ASM("asm/non_matchings/menu/menu_title_screen_loop.s") void func_80084118(void) { func_8009C4A8(D_800DF7C4); - func_80000BE0(0x10); + set_music_player_voice_limit(0x10); func_800660D0(); func_800C422C(2); func_80000890(1); @@ -2356,7 +2356,7 @@ void menu_options_init(void) { func_800C01D8(&D_800DF77C); func_800C4170(2); set_text_font(2); - func_80000BE0(0x18); + set_music_player_voice_limit(0x18); play_music(0x18); func_80000B18(); } @@ -2533,7 +2533,7 @@ void menu_audio_options_init(void) { if (gActiveMagicCodes & CHEAT_MUSIC_MENU) { // Check if "JUKEBOX" cheat is active gAudioMenuStrings[6].unkC = gMusicTestString; gAudioMenuStrings[3].unk2 = 0xD4; - func_80000BE0(0x20); + set_music_player_voice_limit(0x20); D_801263E0 = 5; } else { gAudioMenuStrings[6].unkC = NULL; @@ -2646,7 +2646,7 @@ s32 menu_audio_options_loop(s32 arg0) { play_music((u8)D_800DFABC); } else { func_80000B28(); - func_80000BE0(0x18); + set_music_player_voice_limit(0x18); play_music(0x18); func_80000B18(); } @@ -2662,7 +2662,7 @@ s32 menu_audio_options_loop(s32 arg0) { } if (buttonInputs & (A_BUTTON | START_BUTTON)) { func_80000B28(); - func_80000BE0(0x18); + set_music_player_voice_limit(0x18); play_music((u8)D_800DFABC); D_801263D8 = D_800DFABC; } @@ -2699,7 +2699,7 @@ void func_800851FC(void) { func_8000488C(D_801269FC); } if (D_801263D8 >= 0) { - func_80000BE0(0x18); + set_music_player_voice_limit(0x18); play_music(0x18); func_80000C98(0x100); func_80000B18(); @@ -2782,7 +2782,7 @@ void func_800861C8(unk800861C8 *arg0, s32 *arg1) { arg0[*arg1].unk1 = 0; arg0[*arg1].unk2 = 0; arg0[*arg1].unk6 = i; - arg0[*arg1].unkC = func_80073C4C(); + arg0[*arg1].unkC = get_s32_256(); (*arg1)++; } } @@ -4723,7 +4723,7 @@ void menu_5_init(void) { if (temp != -1) { func_80000FDC(temp, 0, 0.5f); } - func_80000BE0(0x18); + set_music_player_voice_limit(0x18); play_music(0x18); func_80000B18(); D_801263E0 = 0; @@ -4922,7 +4922,7 @@ void func_80094C14(s32 arg0) { break; case 1: if (func_8000C8B4(0x12C) < D_801263D8) { - func_80000BE0(0x18); + set_music_player_voice_limit(0x18); play_music(0x18); func_80000C98(0x100); } @@ -5028,7 +5028,7 @@ void menu_11_init(void) { func_80094604(); func_800C4170(2); func_800C01D8(&D_800DF77C); - func_80000BE0(0x18); + set_music_player_voice_limit(0x18); play_music(0x18); func_80000C98(0x80); } @@ -5199,7 +5199,7 @@ void menu_trophy_race_round_init(void) { gMenuDelay = 0; D_800E0980 = 10; func_800C4170(2); - func_80000BE0(0x18); + set_music_player_voice_limit(0x18); play_music(0x18); func_80000C98(0x100); } @@ -5545,7 +5545,7 @@ void menu_credits_init(void) { func_8009C8A4(D_800E17F0); func_80094604(); func_800C4170(2); - func_80000BE0(0x18); + set_music_player_voice_limit(0x18); D_800E18F8 = (u16)0x1000; if (gViewingCreditsFromCheat) { play_music(8); @@ -5603,7 +5603,7 @@ void func_8009B1E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { GLOBAL_ASM("asm/non_matchings/menu/menu_credits_loop.s") void func_8009BCF0(void) { - func_80000BE0(0x12); + set_music_player_voice_limit(0x12); func_800C0180(); func_80066894(0, 0); func_80066AA8(0, 0x8000, 0x8000, 0x8000, 0x8000); @@ -6545,7 +6545,7 @@ void func_8009E9A8(void) { } -f32 func_8009E9B0(s32 arg0, Gfx **arg1, s32 *arg2, s32 *arg3) { +f32 func_8009E9B0(unk8012A7E8 *arg0, Gfx **arg1, s32 *arg2, s32 *arg3) { D_801263A0 = *arg1; D_801263A8 = *arg2; D_801263AC = *arg3; diff --git a/src/menu.h b/src/menu.h index 7aeebe89..c8c86129 100644 --- a/src/menu.h +++ b/src/menu.h @@ -765,7 +765,7 @@ s32 func_8009D9F4(void); s32 trophy_race_cabinet_menu_loop(void); void func_8009E9A0(void); void func_8009E9A8(void); -f32 func_8009E9B0(s32 arg0, Gfx **arg1, s32 *arg2, s32 *arg3); +f32 func_8009E9B0(unk8012A7E8 *arg0, Gfx **arg1, s32 *arg2, s32 *arg3); s64 *func_8009EA6C(void); s32 func_8009EA78(s64 arg0); s32 func_8009EABC(s64 arg0); diff --git a/src/screen_asset.c b/src/screen_asset.c index aee03656..d96945c8 100644 --- a/src/screen_asset.c +++ b/src/screen_asset.c @@ -2,6 +2,7 @@ /* RAM_POS: 0x8007F640 */ #include "screen_asset.h" +#include "lib/src/libc/rmonPrintf.h" // Render settings for the screens Gfx gRdpSetModeScreenAsset[] = { @@ -35,7 +36,7 @@ u8 *load_screen(s32 screenIndex) { return 0x80100000; } else { if (screenIndex < 0 || screenIndex >= screenTableCount) { - func_800C9D54("SCREEN: No out of range!!\n"); + rmonPrintf("SCREEN: No out of range!!\n"); screenIndex = 0; } diff --git a/src/thread0_epc.c b/src/thread0_epc.c index ba6f818d..7a5e4e3f 100644 --- a/src/thread0_epc.c +++ b/src/thread0_epc.c @@ -144,27 +144,24 @@ GLOBAL_ASM("asm/non_matchings/thread0_epc/thread0.s") #endif void func_800B70D0(void) { - unk800D2470 *node = func_800D2470(); //Might be epcInfo? - while(node->unk4 != -1) { - if (node->unk4 == 0) { - node->unk118 &= 0xFFFF00FE; - node->unk118 |= 0x6C01; - return; + OSThread *node = __osGetActiveQueue(); + while(node->priority != -1) { + if (node->priority == 0) { + node->context.sr &= 0xFFFF00FE; + node->context.sr |= 0x6C01; + break; } - node = node->next; + node = node->tlnext; } } void func_800B7144(void) { - s32 temp_v0_2; - s32 phi_v0; - s32 phi_return; - unk800D2470 *node = func_800D2470(); - while (node->unk4 != -1) { - if ((node->unk4 > 0) && (node->unk4 < 0x80)) { - osStopThread(&node->thread); + OSThread *node = __osGetActiveQueue(); + while (node->priority != -1) { + if ((node->priority > 0) && (node->priority < 128)) { + osStopThread(&node->next); } - node = node->next; + node = node->tlnext; } } @@ -184,7 +181,7 @@ void func_800B7460(s32 *epc, s32 size, s32 mask) { s32 i; if ((get_filtered_cheats() << 4) < 0) { // This is checking if the EPC cheat is active - memzero(&sp840, 0x1B0); + bzero(&sp840, 0x1B0); sp840.a0 = size; sp840.a1 = mask; sp840.epc = epc; @@ -193,7 +190,7 @@ void func_800B7460(s32 *epc, s32 size, s32 mask) { sp840.unk134 = D_80129FB0[1]; sp840.unk138 = D_80129FB0[2]; bcopy(&sp840, &sp40, 0x1B0); - memzero(&sp240, 0x200); + bzero(&sp240, 0x200); v0 = func_80024594(&sp38, &size); for (i = 0; i < size; i++) { sp440[i] = v0[sp38]; diff --git a/src/thread30.c b/src/thread30.c index 28e52bf2..2683b629 100644 --- a/src/thread30.c +++ b/src/thread30.c @@ -4,6 +4,7 @@ #include "thread30.h" #include "macros.h" #include "libultra_internal.h" +#include "unknown_06B2B0.h" /************ .data ************/ @@ -21,7 +22,8 @@ s32 D_8012AAE0[4]; OSThread gThread30; OSMesgQueue gThread30MesgQueue; -OSMesg gThread30Messages[2]; +OSMesg gThread30Message; +s32 gPadding; //Unused? s32 D_8012ACC0[1305]; // Unused? Might be another stack. @@ -35,7 +37,7 @@ extern void *gThread30Stack; * Initalizes and starts thread30() */ void create_and_start_thread30(void) { - osCreateMesgQueue(&gThread30MesgQueue, &gThread30Messages, 2); + osCreateMesgQueue(&gThread30MesgQueue, &gThread30Message, 2); osCreateThread(&gThread30, 30, &thread30, NULL, &gThread30Stack, 8); osStartThread(&gThread30); } @@ -64,7 +66,7 @@ void tick_thread30(void) { gThread30LoadDelay--; if (gThread30LoadDelay == 0) { // Signal thread30 that the level needs to load. - osSendMesg(&gThread30MesgQueue, OS_MESG_TYPE_LOOPBACK, 0); + osSendMesg(&gThread30MesgQueue, (OSMesg *)OS_MESG_TYPE_LOOPBACK, 0); } } } @@ -102,7 +104,8 @@ void thread30(void *arg) { do { osRecvMesg(&gThread30MesgQueue, &mesg, 1); } while(mesg != (OSMesg)OS_MESG_TYPE_LOOPBACK); - load_level_for_menu(gThread30LevelIdToLoad, -1, gThread30CutsceneIdToLoad); // -1 means there won't be any racers loaded. + // -1 means there won't be any racers loaded. + load_level_for_menu(gThread30LevelIdToLoad, -1, gThread30CutsceneIdToLoad); gThread30NeedToLoadLevel = FALSE; } } diff --git a/src/unknown_005740.h b/src/unknown_005740.h index 98edf833..0b0fad73 100644 --- a/src/unknown_005740.h +++ b/src/unknown_005740.h @@ -9,4 +9,4 @@ extern s32 D_800DC6D8; extern s32 D_800DC6DC; extern s32 D_800DC6E0; -#endif \ No newline at end of file +#endif diff --git a/src/unknown_05CEF0.h b/src/unknown_05CEF0.h index 60cda2b1..75fdab77 100644 --- a/src/unknown_05CEF0.h +++ b/src/unknown_05CEF0.h @@ -28,4 +28,4 @@ void func_8005CA84(f32 x, f32 y, f32 z, s32 arg3); void func_8005CB04(s32 arg0); void func_8005D048(Object *object, unk8005D048 *arg1, s32 arg2); -#endif \ No newline at end of file +#endif diff --git a/src/unknown_06B2B0.c b/src/unknown_06B2B0.c index 8d91bd7a..cf52f2eb 100644 --- a/src/unknown_06B2B0.c +++ b/src/unknown_06B2B0.c @@ -484,7 +484,7 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, s32 vehicleId, if (noPlayers && gCurrentLevelHeader->race_type != RACE_TYPE_CUTSCENE_2) { gCurrentLevelHeader->race_type = RACE_TYPE_CUTSCENE_1; } - func_80000BE0(gCurrentLevelHeader->unkB3); + set_music_player_voice_limit(gCurrentLevelHeader->voiceLimit); func_80000CBC(); func_80031BB8(0x20); vehicle = VEHICLE_CAR; @@ -792,7 +792,7 @@ void thread3_main(s32 arg0) { audioStopThread(); stop_thread30(); __osSpSetStatus(0xAAAA82); - func_800CD250(0x1D6); + osDpSetStatus(0x1D6); while(1); // Infinite loop } render(); diff --git a/src/unknown_078050.c b/src/unknown_078050.c index ed0941de..8e8e8d88 100644 --- a/src/unknown_078050.c +++ b/src/unknown_078050.c @@ -184,9 +184,9 @@ s32 func_80077A54(void) { void func_80077AAC(void *bufPtr, s32 arg1, s32 arg2) { osWritebackDCacheAll(); - while (func_800D18D0() & 0x100) {} + while (osDpGetStatus() & DPC_CLR_CMD_CTR) {} osDpSetNextBuffer(bufPtr, arg1); - while (func_800D18D0() & 0x100) {} + while (osDpGetStatus() & DPC_CLR_CMD_CTR) {} } //Probable red, green, blue diff --git a/tools/ido-static-recomp b/tools/ido-static-recomp new file mode 160000 index 00000000..5d0d2b1e --- /dev/null +++ b/tools/ido-static-recomp @@ -0,0 +1 @@ +Subproject commit 5d0d2b1ec409b0def47ed128c70801a56be47523 diff --git a/tools/ido-static-recomp/.gitignore b/tools/ido-static-recomp/.gitignore deleted file mode 100644 index 65a2b502..00000000 --- a/tools/ido-static-recomp/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -recomp -cc -cfe -uopt -ugen -as1 -err.english.cc \ No newline at end of file diff --git a/tools/ido-static-recomp/Makefile b/tools/ido-static-recomp/Makefile deleted file mode 100644 index 3bb8b713..00000000 --- a/tools/ido-static-recomp/Makefile +++ /dev/null @@ -1,45 +0,0 @@ -# Originally from: https://github.com/farisawan-2000/libreultra/tree/master/tools/ido-5.3recomp/ido5.3_recomp - -IRIX_ROOT := ../ido5.3_compiler -OUT := ../ido5.3_recomp -CXX := g++ -GCC := gcc - -DUMMY != echo "Statically recompiling IDO 5.3 tools. This might take a while." >&2 || echo FAIL -DUMMY != mkdir -p $(OUT) >&2 || echo FAIL - -cc: OPT_CFLAGS := -O2 -cfe: OPT_CFLAGS := -O2 -uopt: OPT_CFLAGS := -O2 -ugen: OPT_CFLAGS := -O2 -ujoin: OPT_CFLAGS := -O2 -usplit: OPT_CFLAGS := -O2 -umerge: OPT_CFLAGS := -O2 -uld: OPT_CFLAGS := -O2 -as1: OPT_CFLAGS := -O2 -acpp: OPT_CFLAGS := -O2 - -RECOMP := recomp - -all: cc cfe uopt ugen as1 ujoin uld usplit umerge err.english.cc - -clean: - $(RM) cc* cfe* uopt* ugen* as1* ujoin* uld* usplit* umerge* err.english.cc $(RECOMP) - -recomp: recomp.cpp - g++ recomp.cpp -o $(RECOMP) -g -lcapstone - -err.english.cc: $(IRIX_ROOT)/usr/lib/err.english.cc - cp $^ $(OUT)/$@ - -cc_c.c: $(IRIX_ROOT)/usr/bin/cc $(RECOMP) - ./$(RECOMP) $< > $@ - -%_c.c: $(IRIX_ROOT)/usr/lib/% $(RECOMP) - ./$(RECOMP) $< > $@ - -%: %_c.c - $(GCC) libc_impl.c $< -o $@ $(OPT_CFLAGS) -fno-strict-aliasing -lm -no-pie -DIDO53 - mv $@ $(OUT)/$@ - -.PHONY: all clean \ No newline at end of file diff --git a/tools/ido-static-recomp/build.py b/tools/ido-static-recomp/build.py deleted file mode 100755 index 4a25d565..00000000 --- a/tools/ido-static-recomp/build.py +++ /dev/null @@ -1,118 +0,0 @@ -#!/usr/bin/env python3 -import argparse -import subprocess -import os -import sys -import re -import platform -import threading -import shutil - -BINS = [ - "/usr/lib/as1", - "/usr/lib/cfe", - "/usr/lib/ugen", - "/usr/lib/uopt", - "/usr/bin/cc", -] - - -def call(args, output_file=None): - print(args) - p = subprocess.Popen(args, shell=True, universal_newlines=True, stdout=output_file) - p.wait() - if output_file: - output_file.flush() - -def process_prog(prog, ido_path, ido_flag, build_dir, out_dir, args, recomp_path): - print("Recompiling " + ido_path + prog + "...") - - c_file_path = os.path.join(build_dir, os.path.basename(prog) + "_c.c") - out_file_path = os.path.join(out_dir, os.path.basename(prog)) - if platform.system().startswith("CYGWIN_NT"): - out_file_path += ".exe" - - if not args.onlylibc: - with open(c_file_path, "w") as cFile: - call(recomp_path + " " + ido_path + prog, cFile) - - flags = " -g -fno-strict-aliasing" - if args.O2: - flags += " -O2" - - flags = " -g -fno-strict-aliasing -lm" - if platform.system() == "Darwin": - flags += " -fno-pie" - else: - flags += " -no-pie" - if args.O2: - flags += " -O2" - - call("gcc libc_impl.c " + c_file_path + " -o " + out_file_path + flags + ido_flag) - - return - -def main(args): - ido_path = args.ido_path - if ido_path[len(ido_path)-1] == "/": - ido_path = ido_path[:len(ido_path)-1] - - ido_dir = ido_path.split(os.path.sep)[-1] - if "7.1" in ido_dir: - print("Detected IDO version 7.1") - ido_flag = " -DIDO71" - ugen_flag = "" - build_dir = "build71" - elif "5.3" in ido_dir: - print("Detected IDO version 5.3") - ido_flag = " -DIDO53" - ugen_flag = " -Dugen53" - build_dir = "build53" - else: - sys.exit("Unsupported ido dir: " + ido_dir) - - if args.multhreading and args.O2: - print("WARNING: -O2 and -multhreading used together") - - if not os.path.exists(build_dir): - os.mkdir(build_dir) - shutil.copy("header.h", build_dir) - shutil.copy("libc_impl.h", build_dir) - shutil.copy("helpers.h", build_dir) - - out_dir = os.path.join(build_dir, "out") - if not os.path.exists(out_dir): - os.mkdir(out_dir) - - std_flag = "" - if platform.system() == "Darwin": - std_flag = " -std=c++11" - - recomp_path = os.path.join(build_dir, "recomp") - if platform.system().startswith("CYGWIN_NT"): - recomp_path += ".exe" - call("g++ recomp.cpp -o " + recomp_path + " -g -lcapstone" + std_flag + ugen_flag) - - threads = [] - for prog in BINS: - if args.multhreading: - t = threading.Thread(target=process_prog, args=(prog, ido_path, ido_flag, build_dir, out_dir, args, recomp_path)) - threads.append(t) - t.start() - else: - process_prog(prog, ido_path, ido_flag, build_dir, out_dir, args, recomp_path) - - if args.multhreading: - for t in threads: - t.join() - - shutil.copyfile(os.path.join(ido_path, "usr/lib/err.english.cc"), os.path.join(out_dir, "err.english.cc")) - -if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Static ido recompilation build utility") - parser.add_argument("ido_path", help="Path to ido") - parser.add_argument("-O2", help="Build binaries with -O2 (warning: may take forever)", action='store_true') - parser.add_argument("-onlylibc", help="Builds libc_impl.c only", action='store_true') - parser.add_argument("-multhreading", help="Enables multi threading (deprecated with O2)", action='store_true') - rgs = parser.parse_args() - main(rgs) diff --git a/tools/ido-static-recomp/cc_c.c b/tools/ido-static-recomp/cc_c.c deleted file mode 100644 index cbc9bfa1..00000000 --- a/tools/ido-static-recomp/cc_c.c +++ /dev/null @@ -1,70220 +0,0 @@ -#include "header.h" -static const uint32_t rodata[] = { -0x706c3100,0x706c6900,0x636f6200,0x696c0000,0x73740000,0x616e6c00,0x632b2b00,0x63630000, -0x63787800,0x43000000,0x63707000,0x43585800,0x43505000,0x2e630000,0x202d6c6d,0x0, -0x202d6c70,0x0,0x202d6c46,0x37370000,0x202d6c49,0x37370000,0x202d6c55,0x37370000, -0x202d6c69,0x73616d00,0x202d6c65,0x78630000,0x202d6c64,0x77000000,0x202d6c70,0x726f6600, -0x202d6c78,0x6d616c6c,0x6f630000,0x202d6c6d,0x6c640000,0x6c697374,0x0,0x6b656570, -0x0,0x6c697374,0x0,0x6b656570,0x0,0x30000000,0x2f000000,0x2f000000, -0x61637274,0x312e6f00,0x63727431,0x2e6f0000,0x6d637274,0x312e6f00,0x2f757372,0x2f62696e, -0x2f6d3400,0x2f757372,0x2f62696e,0x2f726174,0x666f7200,0x63630000,0x2f000000,0x70630000, -0x2f000000,0x66373700,0x2f000000,0x63630000,0x2f000000,0x706c3100,0x2f000000,0x636f626f, -0x6c000000,0x2f000000,0x5347495f,0x53565234,0x0,0x5347495f,0x43430000,0x456e7669, -0x726f6e6d,0x656e7420,0x76617269,0x61626c65,0x20534749,0x5f434320,0x69732065,0x6d707479, -0x3a206967,0x6e6f7265,0x640a0000,0x2d63636b,0x72000000,0x70000000,0x2d616e73,0x69000000, -0x70000000,0x2d78616e,0x73690000,0x70000000,0x2d616e73,0x69706f73,0x69780000,0x70000000, -0x456e7669,0x726f6e6d,0x656e7420,0x76617269,0x61626c65,0x20534749,0x5f434320,0x636f6e74, -0x656e7473,0x20756e72,0x65636f67,0x6e697a61,0x626c6520,0x616e6420,0x69676e6f,0x7265643b, -0x20222573,0x22206e6f,0x74206f6e,0x65206f66,0x3a202d63,0x636b7220,0x2d616e73,0x69202d78, -0x616e7369,0x202d616e,0x7369706f,0x7369780a,0x0,0x2f000000,0x63630000,0x63630000, -0x63630000,0x70630000,0x70630000,0x70630000,0x66373700,0x66373700,0x66373700,0x61730000, -0x61730000,0x61730000,0x706c3100,0x706c3100,0x706c3100,0x636f626f,0x6c000000,0x636f626f, -0x6c000000,0x636f626f,0x6c000000,0x6e63632e,0x616c7400,0x6e63632e,0x616c7400,0x6e636300, -0x4e43432e,0x616c7400,0x4e43432e,0x616c7400,0x476f7420,0x68657265,0xa000000,0x4e43432e, -0x616c7400,0x4443432e,0x616c7400,0x4443432e,0x616c7400,0x4443432e,0x616c7400,0x6e636300, -0x6e636300,0x6e636300,0x4e434300,0x4e434300,0x4e434300,0x44434300,0x44434300,0x44434300, -0x2f000000,0x63630000,0x63630000,0x63630000,0x70630000,0x70630000,0x70630000,0x66373700, -0x66373700,0x66373700,0x61730000,0x61730000,0x61730000,0x706c3100,0x706c3100,0x706c3100, -0x636f626f,0x6c000000,0x636f626f,0x6c000000,0x636f626f,0x6c000000,0x6e63632e,0x616c7400, -0x6e63632e,0x616c7400,0x6e636300,0x4e43432e,0x616c7400,0x4e43432e,0x616c7400,0x4e43432e, -0x616c7400,0x4443432e,0x616c7400,0x4443432e,0x616c7400,0x4443432e,0x616c7400,0x6e636300, -0x6e636300,0x6e636300,0x4e434300,0x4e434300,0x4e434300,0x44434300,0x44434300,0x44434300, -0x4443435f,0x5354445f,0x50415448,0x53000000,0x434f4d50,0x5f544152,0x4745545f,0x524f4f54, -0x0,0x2f000000,0x2f000000,0x544f4f4c,0x524f4f54,0x0,0x2f000000,0x2f000000, -0x6c69622f,0x616c6967,0x6e000000,0x544d5044,0x49520000,0x2f746d70,0x2f000000,0x2f000000, -0x63746d74,0x73745858,0x58585858,0x0,0x77000000,0x63633a20,0x63616e27,0x74207772, -0x69746520,0x746f2024,0x544d5044,0x49523a20,0x25730000,0x524c535f,0x49445f4f,0x424a4543, -0x54000000,0x2d6e6f6e,0x5f736861,0x72656400,0x38000000,0x2d697269,0x78340000,0x38000000, -0x2d636f66,0x66000000,0x38000000,0x2d6d6970,0x73330000,0x38000000,0x2d657863,0x70740000, -0x38000000,0x2d616269,0x0,0x2d4f3300,0x2d6e6f73,0x74646c69,0x62000000,0x2d454220, -0x6f72202d,0x454c206d,0x75737420,0x70726563,0x65646520,0x616e7920,0x2d422066,0x6c616773, -0xa000000,0x2d454220,0x6f72202d,0x454c206d,0x75737420,0x70726563,0x65646520,0x616e7920, -0x2d422066,0x6c616773,0xa000000,0x7573722f,0x6c69622f,0x6e6f6e73,0x68617265,0x64000000, -0x7573722f,0x6c69622f,0x61626900,0x7573722f,0x6c696200,0x6c696200,0x68000000,0x2f000000, -0x7573722f,0x696e636c,0x7564652f,0x43430000,0x7573722f,0x696e636c,0x75646500,0x2d737464, -0x30000000,0x73767234,0x0,0x0,0x2d595376,0x0,0x2d59537a,0x0, -0x2d637673,0x5f6e6f73,0x72630000,0x2d637673,0x0,0x2c000000,0x7573722f,0x35696e63, -0x6c756465,0x0,0x7573722f,0x696e636c,0x7564652f,0x43430000,0x7573722f,0x696e636c, -0x75646500,0x68000000,0x2d6e6f6e,0x5f736861,0x72656400,0x2d6e6f6e,0x5f736861,0x72656400, -0x2d6e6f6e,0x5f736861,0x72656400,0x2d6e6f6e,0x5f736861,0x72656400,0x2d63616c,0x6c5f7368, -0x61726564,0x0,0x2d63616c,0x6c5f7368,0x61726564,0x0,0x6e6f2073,0x6f757263, -0x652c206f,0x626a6563,0x74206f72,0x2075636f,0x64652066,0x696c6520,0x73706563,0x69666965, -0x640a0000,0x2d773100,0x2d770000,0x6e6f2073,0x6f757263,0x65206669,0x6c650a00,0x61637274, -0x312e6f00,0x72000000,0x272d6c63,0x5f732720,0x73706563,0x69666965,0x642e2053,0x68617265, -0x64207665,0x7273696f,0x6e206f66,0x2043206c,0x69627261,0x72792064,0x6f657320,0x6e6f7420, -0x636f6e66,0x6f726d20,0x746f2041,0x4e534920,0x58332e31,0x35392d31,0x3938392e,0xa000000, -0x30000000,0x2d4b5049,0x43202874,0x68652064,0x65666175,0x6c742920,0x6973206f,0x6e6c7920, -0x636f6d70,0x61746962,0x6c652077,0x69746820,0x2d472030,0x2c206368,0x616e6769,0x6e672074, -0x6f202d47,0x20302e20,0xa000000,0x30000000,0x2d6e6f6e,0x5f736861,0x72656420,0x6973206e, -0x6f742063,0x6f6d7061,0x7469626c,0x65207769,0x7468202d,0x6162692c,0x20636861,0x6e67696e, -0x6720746f,0x202d6162,0x692e0a00,0x30000000,0x2d445f4d,0x49505345,0x42000000,0x2d444d49, -0x50534542,0x0,0x2d445f5f,0x53544443,0x5f5f3d31,0x0,0x2d445f50,0x4f534958, -0x5f534f55,0x5243453d,0x31000000,0x2d454200,0x2d454200,0x2d454200,0x2d454200,0x2d454200, -0x2d454200,0x2d454200,0x2d454200,0x2d454200,0x2d454200,0x2d445f4d,0x49505345,0x4c000000, -0x2d445f4d,0x49505345,0x4c000000,0x2d444d49,0x5053454c,0x0,0x2d445f5f,0x53544443, -0x5f5f3d31,0x0,0x2d445f50,0x4f534958,0x5f534f55,0x5243453d,0x31000000,0x2d454c00, -0x2d454c00,0x2d454c00,0x2d454c00,0x2d454c00,0x2d454c00,0x2d454c00,0x2d454c00,0x2d454c00, -0x2d454c00,0x2d454c00,0x2d586730,0x0,0x2d673000,0x2d673000,0x2d673000,0x2d673000, -0x2d673000,0x2d673000,0x2d673000,0x2d673000,0x2d673000,0x2d673000,0x2d673000,0x2d5a6730, -0x0,0x2d5a6731,0x0,0x2d586731,0x0,0x2d673100,0x2d5a6732,0x0, -0x2d586732,0x0,0x2d673200,0x2d5a6733,0x0,0x2d586733,0x0,0x2d673300, -0x63616e27,0x74207573,0x65202d6d,0x702f2d70,0x66612077,0x69746820,0x2d64646f,0x70740a00, -0x2d6d6970,0x73332069,0x6d706c69,0x6573202d,0x36346269,0x742c2077,0x68696368,0x20697320, -0x6e6f7420,0x73757070,0x6f727465,0x642e0a00,0x49524958,0x34206e6f,0x74207375,0x70706f72, -0x74656420,0x696e2044,0x656c7461,0x2d432b2b,0xa000000,0x49524958,0x3420616e,0x64202d73, -0x61206e6f,0x74207375,0x70706f72,0x74656420,0x746f6765,0x74686572,0xa000000,0x2d736861, -0x72656420,0x63616e20,0x62652073,0x70656369,0x66696564,0x206f6e6c,0x79207768,0x656e2061, -0x206c696e,0x6b206973,0x20746f20,0x62652070,0x6572666f,0x726d6564,0xa000000,0x2d462061, -0x6e64202d,0x736d6172,0x74206361,0x6e6e6f74,0x20626520,0x73706563,0x69666965,0x6420746f, -0x67657468,0x65723a20,0x2d736d61,0x72742069,0x676e6f72,0x65640a00,0x4443435f,0x464f5243, -0x455f4f50,0x54000000,0x2d44756e,0x69780000,0x63616e27,0x74206d69,0x78202d6d,0x69707332, -0x20776974,0x68202d64,0x776f7063,0x6f64650a,0x0,0x2d446d69,0x70733d32,0x0, -0x2d446d69,0x70733d33,0x0,0x2d446d69,0x70733d31,0x0,0x2d44686f,0x73745f6d, -0x69707300,0x2d363462,0x69740000,0x2d363462,0x69740000,0x2d64776f,0x70636f64,0x65000000, -0x2d64776f,0x70636f64,0x65000000,0x2d6d6970,0x73330000,0x2d6d6970,0x73330000,0x4d000000, -0x2d64776f,0x70636f64,0x65000000,0x2d64776f,0x70636f64,0x65000000,0x2d6d6970,0x73330000, -0x2d6d6970,0x73330000,0x4d000000,0x2d4f3000,0x2d4f3100,0x2d4f3200,0x2d4f3300,0x2d4f3400, -0x2d617574,0x6f6d6174,0x69630000,0x2d737461,0x74696300,0x2d737461,0x74696300,0x436f6e66, -0x6c696374,0x696e6720,0x666c6167,0x733b202d,0x6e6f6c6f,0x636b2061,0x6e64202d,0x6c70696c, -0x6f636b20,0x63616e27,0x7420626f,0x74682062,0x65207370,0x65636966,0x6965640a,0x0, -0x6f6e6c79,0x206f6e65,0x20736f75,0x72636520,0x66696c65,0x2063616e,0x20626520,0x73706563, -0x69666965,0x64207769,0x74682025,0x730a0000,0x61730000,0x77000000,0x25732025,0x73257325, -0x730a0000,0x2d632000,0x0,0x0,0x25730a00,0x63616e6e,0x6f74206f,0x70656e20, -0x636f6d6d,0x616e6466,0x696c6520,0x27257327,0xa000000,0x752e6f75,0x742e3f00,0x2e3f0000, -0x25733a0a,0x0,0x2e540000,0x704b666a,0x736d766f,0x63616274,0x797a0000,0x704b666a, -0x736d766f,0x63616274,0x797a0000,0x704b666a,0x736d766f,0x63616274,0x797a0000,0x704b666a, -0x736d766f,0x63616274,0x797a0000,0x70666a73,0x6d766f63,0x61627479,0x7a000000,0x70666a73, -0x6d766f63,0x61627479,0x7a000000,0x70666a73,0x6d766f63,0x61627479,0x7a000000,0x70666a73, -0x6d766f63,0x61627479,0x7a000000,0x7066656b,0x6a736d76,0x6f636162,0x74797a00,0x7066656b, -0x6a736d76,0x6f636162,0x74797a00,0x7066656b,0x6a736d76,0x6f636162,0x74797a00,0x7066656b, -0x6a736d76,0x6f636162,0x74797a00,0x70656b6a,0x736d766f,0x63616274,0x797a0000,0x70666a73, -0x6d766f63,0x61627479,0x7a000000,0x66000000,0x75746f62,0x0,0x63616e27,0x74206f76, -0x65727772,0x69746520,0x61207772,0x6974652d,0x70726f74,0x65637465,0x64206669,0x6c652025, -0x73200a00,0x70000000,0x70000000,0x70000000,0x70000000,0x2d363462,0x6974206f,0x7074696f, -0x6e206973,0x206e6f74,0x20696d70,0x6c656d65,0x6e746564,0x20776974,0x68206363,0x6f6d206f, -0x72206163,0x636f6d2e,0xa000000,0x63707000,0x61637070,0x0,0x2d445f4d,0x4950535f, -0x46505345,0x543d3136,0x0,0x2d445f4d,0x4950535f,0x4953413d,0x31000000,0x2d445f4d, -0x4950535f,0x4953413d,0x32000000,0x2d445f4d,0x4950535f,0x4953413d,0x33000000,0x2d445f41, -0x42494f33,0x323d3100,0x2d445f4d,0x4950535f,0x53494d3d,0x5f414249,0x4f333200,0x2d445f4d, -0x4950535f,0x535a494e,0x543d3332,0x0,0x2d445f4d,0x4950535f,0x535a4c4f,0x4e473d33, -0x32000000,0x2d445f4d,0x4950535f,0x535a5054,0x523d3332,0x0,0x2d445f4d,0x4950535f, -0x46505345,0x543d3332,0x0,0x2d445f4d,0x4950535f,0x4953413d,0x5f4d4950,0x535f4953, -0x415f4d49,0x50533300,0x2d445f4d,0x4950535f,0x53494d3d,0x5f4d4950,0x535f5349,0x4d5f4142, -0x49363400,0x2d445f4d,0x4950535f,0x535a494e,0x543d3332,0x0,0x2d445f4d,0x4950535f, -0x535a4c4f,0x4e473d36,0x34000000,0x2d445f4d,0x4950535f,0x535a5054,0x523d3634,0x0, -0x556e6b6e,0x6f776e20,0x76616c75,0x6520666f,0x72206d69,0x70735f61,0x62693a20,0x25642e0a, -0x0,0x2d6e6f73,0x7464696e,0x63000000,0x2d445f5f,0x45585445,0x4e53494f,0x4e535f5f, -0x0,0x2d57616c,0x6c000000,0x2d747261,0x64697469,0x6f6e616c,0x0,0x2d747269, -0x67726170,0x68730000,0x2d756e64,0x65660000,0x2d700000,0x2d445f5f,0x45585445,0x4e53494f, -0x4e535f5f,0x0,0x2d594500,0x2d610000,0x2d445f5f,0x45585445,0x4e53494f,0x4e535f5f, -0x0,0x2d445f4c,0x414e4755,0x4147455f,0x435f504c,0x55535f50,0x4c55533d,0x31000000, -0x2d445f5f,0x63706c75,0x73706c75,0x733d3100,0x2d445f5f,0x414e5349,0x5f435050,0x5f5f3d31, -0x0,0x2d445f44,0x454c5441,0x5f455854,0x454e5349,0x4f4e533d,0x31000000,0x2d444c41, -0x4e475541,0x47455f43,0x0,0x2d445f4c,0x414e4755,0x4147455f,0x43000000,0x2d445f4c, -0x414e4755,0x4147455f,0x50575243,0x0,0x2d747269,0x67726170,0x68730000,0x2d444c41, -0x4e475541,0x47455f50,0x41534341,0x4c000000,0x2d445f4c,0x414e4755,0x4147455f,0x50415343, -0x414c0000,0x2d510000,0x2d444c41,0x4e475541,0x47455f46,0x4f525452,0x414e0000,0x2d445f4c, -0x414e4755,0x4147455f,0x464f5254,0x52414e00,0x2d444c41,0x4e475541,0x47455f41,0x5353454d, -0x424c5900,0x2d445f4c,0x414e4755,0x4147455f,0x41535345,0x4d424c59,0x0,0x2d444c41, -0x4e475541,0x47455f50,0x4c310000,0x2d445f4c,0x414e4755,0x4147455f,0x504c3100,0x2d444c41, -0x4e475541,0x47455f43,0x4f424f4c,0x0,0x2d445f4c,0x414e4755,0x4147455f,0x434f424f, -0x4c000000,0x2d445f5f,0x494e4c49,0x4e455f49,0x4e545249,0x4e534943,0x53000000,0x2d447367, -0x69000000,0x2d445356,0x52330000,0x2d445f5f,0x53565233,0x0,0x2d445f5f,0x73676900, -0x2d445f5f,0x73676900,0x2d445f5f,0x53565233,0x0,0x2d240000,0x2d646f6c,0x6c617200, -0x2d240000,0x2d44756e,0x69780000,0x2d446d69,0x70730000,0x2d44686f,0x73745f6d,0x69707300, -0x2d445f5f,0x756e6978,0x0,0x2d445f5f,0x686f7374,0x5f6d6970,0x73000000,0x2d445f53, -0x5652345f,0x534f5552,0x43450000,0x2d445f4d,0x4f444552,0x4e5f4300,0x2d445f53,0x47495f53, -0x4f555243,0x45000000,0x2d445f50,0x49430000,0x2d445f5f,0x44534f5f,0x5f000000,0x2d445f5f, -0x756e6978,0x0,0x2d445f5f,0x686f7374,0x5f6d6970,0x73000000,0x2d445f53,0x5652345f, -0x534f5552,0x43450000,0x2d445f4d,0x4f444552,0x4e5f4300,0x2d445f50,0x49430000,0x2d445f5f, -0x44534f5f,0x5f000000,0x2d445359,0x53545950,0x455f0000,0x2d445f53,0x59535459,0x50455f00, -0x2d445359,0x53545950,0x455f5359,0x53560000,0x2d445f53,0x59535459,0x50455f53,0x59535600, -0x2d445f5f,0x36344249,0x54000000,0x2d445f4c,0x4f4e474c,0x4f4e4700,0x2d445f5f,0x6d697073, -0x3d320000,0x2d445f5f,0x6d697073,0x3d330000,0x2d445f5f,0x6d697073,0x3d310000,0x2f757372, -0x2f697269,0x78342f00,0x7573722f,0x696e636c,0x75646500,0x2f000000,0x2d490000,0x2d490000, -0x2d490000,0x2d490000,0x2e690000,0x63616e27,0x74206f76,0x65727772,0x69746520,0x61207772, -0x6974652d,0x70726f74,0x65637465,0x64206669,0x6c652025,0x73200a00,0x2d4b0000,0x2d450000, -0x70000000,0x70000000,0x2d450000,0x2d445f4c,0x414e4755,0x4147455f,0x43000000,0x2d445f43, -0x46450000,0x2d444c41,0x4e475541,0x47455f50,0x41534341,0x4c000000,0x2d445f4c,0x414e4755, -0x4147455f,0x50415343,0x414c0000,0x2d510000,0x2d444c41,0x4e475541,0x47455f46,0x4f525452, -0x414e0000,0x2d445f4c,0x414e4755,0x4147455f,0x464f5254,0x52414e00,0x2d737464,0x30000000, -0x2d444c41,0x4e475541,0x47455f41,0x5353454d,0x424c5900,0x2d445f4c,0x414e4755,0x4147455f, -0x41535345,0x4d424c59,0x0,0x2d444c41,0x4e475541,0x47455f50,0x4c310000,0x2d445f4c, -0x414e4755,0x4147455f,0x504c3100,0x2d444c41,0x4e475541,0x47455f43,0x4f424f4c,0x0, -0x2d445f4c,0x414e4755,0x4147455f,0x434f424f,0x4c000000,0x2d445f5f,0x756e6978,0x0, -0x2d445f5f,0x36344249,0x54000000,0x2d445f4c,0x4f4e474c,0x4f4e4700,0x2d445f5f,0x6d697073, -0x3d320000,0x2d445f5f,0x6d697073,0x3d330000,0x2d445f5f,0x6d697073,0x3d310000,0x2d445f5f, -0x686f7374,0x5f6d6970,0x73000000,0x2d445f50,0x49430000,0x2d445f5f,0x44534f5f,0x5f000000, -0x2d445f53,0x59535459,0x50455f53,0x56523400,0x2f000000,0x2d490000,0x2d490000,0x2d490000, -0x2d737464,0x31000000,0x2d737464,0x0,0x2d737464,0x30000000,0x2d760000,0x2d597700, -0x612e6f75,0x74000000,0x2d594e00,0x2d594400,0x2d4b0000,0x2d6d0000,0x2e690000,0x63616e27, -0x74206f76,0x65727772,0x69746520,0x61207772,0x6974652d,0x70726f74,0x65637465,0x64206669, -0x6c652025,0x73200a00,0x70000000,0x2d736f70,0x7420616e,0x64202d70,0x63612062,0x6f746820, -0x73706563,0x69666965,0x643b202d,0x736f7074,0x2069676e,0x6f726564,0x2e0a0000,0x636f7074, -0x0,0x2d6c6f6f,0x70756e72,0x6f6c6c00,0x30000000,0x2d493d00,0x4d000000,0x2d434d50, -0x3d000000,0x2d63703d,0x69000000,0x2d73793d,0x6b000000,0x49000000,0x2d760000,0x63707000, -0x61637070,0x0,0x2d6c0000,0x2d6e6f73,0x7464696e,0x63000000,0x70000000,0x2d6c6f6f, -0x70756e72,0x6f6c6c00,0x30000000,0x70636100,0x2d493d00,0x4d000000,0x2d434d50,0x3d000000, -0x4c000000,0x2d4c3d00,0x2d6c6f3d,0x6c730000,0x2d63703d,0x69000000,0x2d73793d,0x6b000000, -0x63707000,0x61637070,0x0,0x49000000,0x2d760000,0x2d6c0000,0x2d6e6f73,0x7464696e, -0x63000000,0x70000000,0x2d760000,0x2d4f0000,0x2d620000,0x2d6e0000,0x2d5a7a00,0x2d5a4f00, -0x2d5a5300,0x2d517a00,0x2d516e00,0x2d730000,0x2d750000,0x2d597700,0x2d594a00,0x2d594400, -0x2d4b0000,0x2d6d0000,0x2d597000,0x2d595200,0x612e6f75,0x74000000,0x2d594e00,0x2d747573, -0x65640000,0x2d74616c,0x6c000000,0x2d540000,0x2d594f00,0x2d420000,0x2d5a6300,0x2d594700, -0x2d000000,0x50000000,0x2d4b0000,0x2d616e73,0x69000000,0x2d63636b,0x72000000,0x2d78616e, -0x73690000,0x63616e27,0x74206f76,0x65727772,0x69746520,0x61207772,0x6974652d,0x70726f74, -0x65637465,0x64206669,0x6c652025,0x73200a00,0x2d6e6f63,0x70700000,0x2d6e6f63,0x70700000, -0x2d587600,0x2d445f43,0x46450000,0x2d416d61,0x6368696e,0x65286d69,0x70732900,0x2d417379, -0x7374656d,0x28756e69,0x78290000,0x2d470000,0x2d737464,0x31000000,0x2d737464,0x0, -0x2d737464,0x30000000,0x2d587072,0x6f746f74,0x79706573,0x0,0x2d585300,0x2d58636d, -0x643a0000,0x2d635f69,0x6e6c696e,0x65000000,0x62746f75,0x0,0x63616e27,0x74206f76, -0x65727772,0x69746520,0x61207772,0x6974652d,0x70726f74,0x65637465,0x64206669,0x6c652025, -0x73200a00,0x6163636f,0x6d000000,0x63636f6d,0x0,0x2d587600,0x2d584d50,0x0, -0x2d58646f,0x6c6c6172,0x0,0x2d587265,0x616c5f66,0x70000000,0x2d587072,0x6f746f74, -0x79706573,0x0,0x2d587861,0x6e736900,0x2d58616e,0x73690000,0x63616e27,0x74206f76, -0x65727772,0x69746520,0x61207772,0x6974652d,0x70726f74,0x65637465,0x64206669,0x6c652025, -0x73200a00,0x2d585300,0x2d635f69,0x6e6c696e,0x65000000,0x62746f75,0x0,0x63616e27, -0x74206f76,0x65727772,0x69746520,0x61207772,0x6974652d,0x70726f74,0x65637465,0x64206669, -0x6c652025,0x73200a00,0x75706173,0x0,0x2d760000,0x2d470000,0x63616e27,0x74206f76, -0x65727772,0x69746520,0x61207772,0x6974652d,0x70726f74,0x65637465,0x64206669,0x6c652025, -0x73200a00,0x2d740000,0x62746f75,0x0,0x63616e27,0x74206f76,0x65727772,0x69746520, -0x61207772,0x6974652d,0x70726f74,0x65637465,0x64206669,0x6c652025,0x73200a00,0x706c3166, -0x65000000,0x2d760000,0x2d6f0000,0x2d730000,0x2d700000,0x2d650000,0x756c7069,0x0, -0x2d760000,0x2d730000,0x2d6f0000,0x2d740000,0x62746f75,0x0,0x636f6266,0x65000000, -0x2d760000,0x2d6f0000,0x2d730000,0x2d700000,0x2d706400,0x2d646400,0x2d650000,0x6d340000, -0x65666c20,0x6e6f7420,0x73757070,0x6f727465,0x642e2043,0x616e6e6f,0x74207573,0x65202e65, -0x2066696c,0x65730a00,0x72617466,0x6f720000,0x2d736f70,0x7420616e,0x64202d70,0x66612062, -0x6f746820,0x73706563,0x69666965,0x643b202d,0x736f7074,0x2069676e,0x6f726564,0x2e0a0000, -0x2d6c6f6f,0x70756e72,0x6f6c6c00,0x30000000,0x666f7074,0x20646f65,0x73206e6f,0x74207265, -0x636f676e,0x697a6520,0x74686520,0x2d693220,0x6f707469,0x6f6e0a00,0x666f7074,0x20646f65, -0x73206e6f,0x74207265,0x636f676e,0x697a6520,0x74686520,0x2d363620,0x6f707469,0x6f6e0a00, -0x666f7074,0x20646f65,0x73206e6f,0x74207265,0x636f676e,0x697a6520,0x74686520,0x2d75206f, -0x7074696f,0x6e0a0000,0x666f7074,0x20646f65,0x73206e6f,0x74207375,0x70706f72,0x74207468, -0x65202d62,0x61636b73,0x6c617368,0x206f7074,0x696f6e0a,0x0,0x666f7074,0x20646f65, -0x73206e6f,0x74207375,0x70706f72,0x74207468,0x65202d55,0x206f7074,0x696f6e0a,0x0, -0x666f7074,0x0,0x6c000000,0x2d4c3d00,0x6d000000,0x2d463d00,0x2d493d00,0x2d736361, -0x6e3d3132,0x30000000,0x2d736361,0x6e3d3133,0x32000000,0x2d736176,0x653d616c,0x6c000000, -0x2d6f6e65,0x74726970,0x0,0x2d646c69,0x6e657300,0x2d737570,0x70726573,0x733d7700, -0x2d6c6f3d,0x6c6e6f00,0x2d637573,0x746f6d65,0x723d0000,0x2d6f7269,0x67696e61,0x6c5f6669, -0x6c656e61,0x6d653d00,0x2d696e63,0x6c756465,0x3d2f7573,0x722f696e,0x636c7564,0x65000000, -0x2d63703d,0x69000000,0x2d6c6f6f,0x70756e72,0x6f6c6c00,0x30000000,0x50464120,0x646f6573, -0x206e6f74,0x20726563,0x6f676e69,0x7a652074,0x6865202d,0x6932206f,0x7074696f,0x6e0a0000, -0x50464120,0x646f6573,0x206e6f74,0x20726563,0x6f676e69,0x7a652074,0x6865202d,0x3636206f, -0x7074696f,0x6e0a0000,0x50464120,0x646f6573,0x206e6f74,0x20726563,0x6f676e69,0x7a652074, -0x6865202d,0x75206f70,0x74696f6e,0xa000000,0x50464120,0x646f6573,0x206e6f74,0x20737570, -0x706f7274,0x20746865,0x202d6261,0x636b736c,0x61736820,0x6f707469,0x6f6e0a00,0x50464120, -0x646f6573,0x206e6f74,0x20737570,0x706f7274,0x20746865,0x202d5520,0x6f707469,0x6f6e0a00, -0x70666100,0x6c000000,0x2d4c3d00,0x6d000000,0x2d463d00,0x2d493d00,0x2d736361,0x6e3d3132, -0x30000000,0x2d736361,0x6e3d3133,0x32000000,0x2d736176,0x653d616c,0x6c000000,0x2d6f6e65, -0x74726970,0x0,0x2d646c69,0x6e657300,0x2d737570,0x70726573,0x733d7700,0x2d6c6f3d, -0x6c6e6f00,0x2d6c6f3d,0x6c6f0000,0x2d616e61,0x6c797369,0x733d0000,0x2d6e6f61,0x6e616c79, -0x73697300,0x2d637573,0x746f6d65,0x723d0000,0x2d6f7269,0x67696e61,0x6c5f6669,0x6c656e61, -0x6d653d00,0x2d696e63,0x6c756465,0x3d2f7573,0x722f696e,0x636c7564,0x65000000,0x2d63703d, -0x69000000,0x2d703d31,0x0,0x2d75723d,0x31000000,0x2d706661,0x70726570,0x6173732c, -0x0,0x43616e27,0x74207061,0x72736520,0x2d706661,0x70726570,0x61737320,0x6f707469, -0x6f6e0a00,0x2d706661,0x70726570,0x61737300,0x42616420,0x70666170,0x72657061,0x73732073, -0x796e7461,0x783a206e,0x6f206172,0x67206166,0x74657220,0x636f6d6d,0x610a0000,0x66636f6d, -0x0,0x2d616c69,0x676e5f63,0x6f6d6d6f,0x6e000000,0x2d4d5000,0x2d73686f,0x77646972, -0x74000000,0x2d760000,0x2d585300,0x2d6e6f63,0x6f646500,0x2d587500,0x63616e27,0x74206f76, -0x65727772,0x69746520,0x61207772,0x6974652d,0x70726f74,0x65637465,0x64206669,0x6c652025, -0x73200a00,0x2d740000,0x756a6f69,0x6e000000,0x2d760000,0x2d6f0000,0x2d6e6f6e,0x5f736861, -0x72656400,0x756c6400,0x2f000000,0x2f000000,0x2d4c0000,0x7573722f,0x6c69622f,0x6e6f6e73, -0x68617265,0x642f0000,0x2d4c0000,0x7573722f,0x6c69622f,0x0,0x2f000000,0x2d4c0000, -0x7573722f,0x6c69622f,0x0,0x6d697073,0x322f6e6f,0x6e736861,0x72656400,0x2d4c0000, -0x7573722f,0x6c69622f,0x0,0x6d697073,0x32000000,0x2d4c0000,0x7573722f,0x6c69622f, -0x0,0x6d697073,0x322f6e6f,0x6e736861,0x72656400,0x2d4c0000,0x7573722f,0x6c69622f, -0x0,0x6d697073,0x32000000,0x2d535953,0x54595045,0x5f535652,0x34000000,0x2d5f5359, -0x53545950,0x455f5356,0x52340000,0x2d726571,0x75697265,0x5f64796e,0x616d6963,0x5f6c696e, -0x6b000000,0x5f726c64,0x5f6e6577,0x5f696e74,0x65726661,0x63650000,0x2d6b4200,0x2d4c0000, -0x2d4c0000,0x2f757372,0x2f697269,0x78342f00,0x7573722f,0x6c69622f,0x6e6f6e73,0x68617265, -0x642f0000,0x7573722f,0x6c69622f,0x6e6f6e73,0x68617265,0x642f0000,0x7573722f,0x6c69622f, -0x6e6f6e73,0x68617265,0x642f0000,0x6372746e,0x2e6f0000,0x2d4c0000,0x2f757372,0x2f697269, -0x78342f00,0x7573722f,0x6c69622f,0x0,0x7573722f,0x6c69622f,0x0,0x7573722f, -0x6c69622f,0x0,0x6372746e,0x2e6f0000,0x2d6e6f5f,0x4175746f,0x476e756d,0x0, -0x2d707265,0x73657276,0x655f6465,0x61645f63,0x6f646500,0x73767233,0x0,0x2d6c6273, -0x64000000,0x2d6c7465,0x726d6361,0x70000000,0x2d6c6b61,0x70696f00,0x2d6c6b61,0x70696f00, -0x2d6c635f,0x73000000,0x2d6c6300,0x2d6c6d70,0x63000000,0x2d6c635f,0x73000000,0x2d6c635f, -0x73000000,0x2d6c635f,0x73000000,0x72000000,0x2d6c6300,0x2d6c6d00,0x2d6c6661,0x73746d00, -0x2d6b6f00,0x7573706c,0x69740000,0x2d760000,0x63616e27,0x74206f76,0x65727772,0x69746520, -0x61207772,0x6974652d,0x70726f74,0x65637465,0x64206669,0x6c652025,0x73200a00,0x2d6f0000, -0x2d740000,0x756d6572,0x67650000,0x2d760000,0x2d6f0000,0x63616e27,0x74206f76,0x65727772, -0x69746520,0x61207772,0x6974652d,0x70726f74,0x65637465,0x64206669,0x6c652025,0x73200a00, -0x2d740000,0x756c6f6f,0x70000000,0x2d760000,0x2d6f0000,0x63616e27,0x74206f76,0x65727772, -0x69746520,0x61207772,0x6974652d,0x70726f74,0x65637465,0x64206669,0x6c652025,0x73200a00, -0x2d740000,0x756f7074,0x30000000,0x2d760000,0x2d470000,0x63616e27,0x74206f76,0x65727772, -0x69746520,0x61207772,0x6974652d,0x70726f74,0x65637465,0x64206669,0x6c652025,0x73200a00, -0x2d740000,0x64646f70,0x74000000,0x2d760000,0x2d470000,0x63616e27,0x74206f76,0x65727772, -0x69746520,0x61207772,0x6974652d,0x70726f74,0x65637465,0x64206669,0x6c652025,0x73200a00, -0x2d650000,0x756f7074,0x0,0x2d760000,0x2d470000,0x2d6e6f50,0x616c6961,0x73000000, -0x2d6b7069,0x636f7074,0x0,0x2d6e6f6b,0x7069636f,0x70740000,0x63616e27,0x74206f76, -0x65727772,0x69746520,0x61207772,0x6974652d,0x70726f74,0x65637465,0x64206669,0x6c652025, -0x73200a00,0x2d740000,0x62746f75,0x0,0x7567656e,0x0,0x2d760000,0x2d470000, -0x2d706963,0x31000000,0x2d706963,0x32000000,0x2d6f0000,0x2d6c0000,0x63616e27,0x74206f76, -0x65727772,0x69746520,0x61207772,0x6974652d,0x70726f74,0x65637465,0x64206669,0x6c652025, -0x73200a00,0x2d6f0000,0x63616e27,0x74206f76,0x65727772,0x69746520,0x61207772,0x6974652d, -0x70726f74,0x65637465,0x64206669,0x6c652025,0x73200a00,0x2d6f0000,0x63616e27,0x74206f76, -0x65727772,0x69746520,0x61207772,0x6974652d,0x70726f74,0x65637465,0x64206669,0x6c652025, -0x73200a00,0x63616e27,0x74206f76,0x65727772,0x69746520,0x61207772,0x6974652d,0x70726f74, -0x65637465,0x64206669,0x6c652025,0x73200a00,0x2d6c0000,0x2d6f0000,0x63616e27,0x74206f76, -0x65727772,0x69746520,0x61207772,0x6974652d,0x70726f74,0x65637465,0x64206669,0x6c652025, -0x73200a00,0x2d740000,0x2d74656d,0x70000000,0x61733000,0x2d760000,0x2d470000,0x2d6f0000, -0x2e470000,0x63616e27,0x74206f76,0x65727772,0x69746520,0x61207772,0x6974652d,0x70726f74, -0x65637465,0x64206669,0x6c652025,0x73200a00,0x63616e27,0x74206f76,0x65727772,0x69746520, -0x61207772,0x6974652d,0x70726f74,0x65637465,0x64206669,0x6c652025,0x73200a00,0x2d740000, -0x61733100,0x2d746670,0x0,0x2d6e6f61,0x6c696173,0x6f6b0000,0x2d616c69,0x676e5f63, -0x6f6d6d6f,0x6e000000,0x2d706963,0x30000000,0x2d636f66,0x66000000,0x2d656c66,0x0, -0x2d706963,0x31000000,0x2d706963,0x32000000,0x2d636f66,0x66000000,0x2d636f66,0x66000000, -0x2d656c66,0x0,0x2d760000,0x2d6e6f67,0x6c6f6261,0x6c000000,0x2d470000,0x2d703000, -0x2d703100,0x2d6f0000,0x612e6f75,0x74000000,0x2d740000,0x2d650000,0x25732064,0x6f657320, -0x6e6f7420,0x65786973,0x74206f72,0x20697320,0x6e6f7420,0x73746174,0x2832292d,0x61626c65, -0x2e204e6f,0x74206465,0x6c657465,0x64202869,0x66206974,0x20657869,0x73747329,0x20657665, -0x6e207468,0x6f756768,0x20617331,0x20666169,0x6c65642e,0xa000000,0x25732069,0x73206e6f, -0x74206120,0x72656775,0x6c617220,0x66696c65,0x2c206e6f,0x74206465,0x6c657465,0x64206576, -0x656e2074,0x686f7567,0x68206173,0x31206661,0x696c6564,0x2e0a0000,0x66000000,0x63616e27, -0x74206d69,0x78202d6d,0x69707332,0x20776974,0x68207368,0x61726564,0x2c207472,0x79207573, -0x696e6720,0x2d6e6f6e,0x5f736861,0x7265640a,0x0,0x63616e27,0x74206d69,0x78207563, -0x6f646520,0x33322d62,0x6974202d,0x6d697073,0x33207769,0x74682073,0x68617265,0x640a0000, -0x63616e27,0x74206d69,0x78202d63,0x6f666620,0x77697468,0x20736861,0x7265642c,0x20747279, -0x20757369,0x6e67202d,0x6e6f6e5f,0x73686172,0x65640a00,0x63616e27,0x74206d69,0x78202d65, -0x78637074,0x20776974,0x68207368,0x61726564,0x2c207472,0x79207573,0x696e6720,0x2d6e6f6e, -0x5f736861,0x7265640a,0x0,0x63616e27,0x74206d69,0x78202d73,0x68617265,0x64207769, -0x7468202d,0x6e6f6e5f,0x73686172,0x65640a00,0x63616e27,0x74206d69,0x78202d73,0x68617265, -0x64207769,0x7468202d,0x636f7264,0xa000000,0x6564675f,0x7072656c,0x696e6b00,0x2d665347, -0x49000000,0x2d760000,0x6c640000,0x2d4b5049,0x43000000,0x2d6e6f6e,0x5f736861,0x72656400, -0x2d747261,0x6e736974,0x6976655f,0x6c696e6b,0x0,0x2d66756c,0x6c5f7472,0x616e7369, -0x74697665,0x5f6c696e,0x6b000000,0x2d6e6f5f,0x7472616e,0x73697469,0x76655f6c,0x696e6b00, -0x2d717569,0x636b7374,0x6172745f,0x696e666f,0x0,0x2d656c66,0x0,0x2d616c6c, -0x6f775f6a,0x756d705f,0x61745f65,0x6f700000,0x2d64656c,0x74610000,0x2d6f0000,0x2d6f0000, -0x2d454200,0x2d454c00,0x2f000000,0x2d4c0000,0x7573722f,0x6c69622f,0x44434300,0x2d4c0000, -0x7573722f,0x6c69622f,0x6e6f6e73,0x68617265,0x642f0000,0x2d4c0000,0x7573722f,0x6c69622f, -0x0,0x2d4c0000,0x7573722f,0x6c69622f,0x44434300,0x2d736861,0x72656400,0x2d4c0000, -0x2d4c0000,0x2f757372,0x2f697269,0x78342f00,0x7573722f,0x6c69622f,0x6e6f6e73,0x68617265, -0x642f0000,0x7573722f,0x6c69622f,0x6e6f6e73,0x68617265,0x642f0000,0x7573722f,0x6c69622f, -0x6e6f6e73,0x68617265,0x642f0000,0x6372746e,0x2e6f0000,0x2d4c0000,0x2f757372,0x2f697269, -0x78342f00,0x7573722f,0x6c69622f,0x0,0x7573722f,0x6c69622f,0x0,0x7573722f, -0x6c69622f,0x0,0x6372746e,0x2e6f0000,0x2d535953,0x54595045,0x5f535652,0x34000000, -0x2d5f5359,0x53545950,0x455f5356,0x52340000,0x2d726571,0x75697265,0x5f64796e,0x616d6963, -0x5f6c696e,0x6b000000,0x5f726c64,0x5f6e6577,0x5f696e74,0x65726661,0x63650000,0x2d69676e, -0x6f72655f,0x756e7265,0x736f6c76,0x65640000,0x2d6e6f5f,0x756e7265,0x736f6c76,0x65640000, -0x2d69676e,0x6f72655f,0x756e7265,0x736f6c76,0x65640000,0x2d6e6f5f,0x756e7265,0x736f6c76, -0x65640000,0x2d4c0000,0x2d420000,0x2d720000,0x2d640000,0x2d7a0000,0x2d470000,0x2d577800, -0x2c000000,0x2d470000,0x2f000000,0x2d4c0000,0x7573722f,0x6c69622f,0x0,0x6d697073, -0x322f6e6f,0x6e736861,0x72656400,0x2d4c0000,0x7573722f,0x6c69622f,0x0,0x6d697073, -0x32000000,0x2d4c0000,0x7573722f,0x6c69622f,0x0,0x6d697073,0x322f6e6f,0x6e736861, -0x72656400,0x2d4c0000,0x7573722f,0x6c69622f,0x0,0x6d697073,0x32000000,0x2d6c4300, -0x2d6c6300,0x2d6e6f63,0x6f756e74,0x0,0x2d636f75,0x6e740000,0x2d63636b,0x72000000, -0x2d6e6f63,0x6f756e74,0x0,0x2d6c7465,0x726d6361,0x70000000,0x72000000,0x2d6c6b61, -0x70696f00,0x2d6c6b61,0x70696f00,0x2d6c635f,0x73000000,0x2d6c6300,0x2d6c6d70,0x63000000, -0x2d6c635f,0x73000000,0x2d6c635f,0x73000000,0x2d6c6300,0x2d6c6d70,0x63000000,0x2d6c4300, -0x2d6c635f,0x73000000,0x2d6c635f,0x73000000,0x2d6c6300,0x612e6f75,0x74000000,0x632b2b66, -0x696c7400,0x612e6f75,0x74000000,0x636f7264,0x0,0x2d760000,0x612e6f75,0x74000000, -0x2d6f0000,0x2e666200,0x2d737973,0x74797065,0x0,0x2d737973,0x74797065,0x206d7573, -0x74206861,0x76652061,0x6e206172,0x67756d65,0x6e740a00,0x73767234,0x0,0x6f6e6c79, -0x20737973,0x74797065,0x20737672,0x3420616c,0x6c6f7765,0x640a0000,0x73767234,0x0, -0x62736434,0x33000000,0x73767233,0x0,0x73797376,0x0,0x2f000000,0x72000000, -0x54686973,0x20737973,0x74797065,0x20646f65,0x736e2774,0x20657869,0x7374206f,0x6e207468, -0x6973206d,0x61636869,0x6e653b20,0x6368616e,0x67656420,0x73797374,0x79706520,0x746f2073, -0x7672332e,0xa000000,0x73767233,0x0,0x2f000000,0x2f000000,0x7573722f,0x6c69622f, -0x0,0x636f6d70,0x2e636f6e,0x66696700,0x72000000,0x5347495f,0x49524958,0x34000000, -0x2f757372,0x2f697269,0x78342f00,0x0,0x38000000,0x2f757372,0x2f697269,0x78342f00, -0x704b666a,0x7273756c,0x6d766f63,0x61627479,0x7a000000,0x2d232069,0x73206e6f,0x74207375, -0x70706f72,0x7465642e,0x20557365,0x202d7620,0x746f2073,0x65652063,0x6f6d7069,0x6c657220, -0x70617373,0x65736e00,0x2d333262,0x69740000,0x2d333200,0x2d35206e,0x6f742073,0x7570706f, -0x72746564,0xa000000,0x2d35206d,0x75737420,0x70726563,0x65646520,0x616e7920,0x2d422066, -0x6c616773,0xa000000,0x7573722f,0x35696e63,0x6c756465,0x0,0x68000000,0x2d363600, -0x2d363462,0x69740000,0x2d363462,0x6974206f,0x7074696f,0x6e206973,0x206e6f74,0x20796574, -0x20696d70,0x6c656d65,0x6e746564,0x2c206967,0x6e6f7265,0xa000000,0x2d363462,0x69742063, -0x616e206e,0x6f742062,0x65207573,0x65642077,0x69746820,0x2d73776f,0x70636f64,0x650a0000, -0x2d410000,0x6c642072,0x65717569,0x72657320,0x2d412074,0x6f206861,0x76652061,0x6e206172, -0x67756d65,0x6e740a00,0x2d417574,0x6f476e75,0x6d000000,0x30000000,0x30000000,0x2d412d00, -0x73746174,0x69630000,0x64796e61,0x6d696300,0x73796d62,0x6f6c6963,0x0,0x2d43475f, -0x454d4954,0x3a000000,0x2d43475f,0x454d4954,0x206f7074,0x696f6e73,0x20617265,0x2069676e, -0x6f726564,0xa000000,0x2d440000,0x2d442074,0x616b656e,0x20617320,0x656d7074,0x79206370, -0x70202d44,0x2c206e6f,0x74206c64,0x28312920,0x2d442068,0x65786e75,0x6d0a0000,0x2d440000, -0x6c642072,0x65717569,0x72657320,0x2d442074,0x6f206861,0x76652061,0x6e206172,0x67756d65, -0x6e740a00,0x2d454220,0x6f72202d,0x454c206d,0x75737420,0x70726563,0x65646520,0x616e7920, -0x2d422066,0x6c616773,0xa000000,0x2d454220,0x6f72202d,0x454c206d,0x75737420,0x70726563, -0x65646520,0x616e7920,0x2d422066,0x6c616773,0xa000000,0x2d47434d,0x3a000000,0x2d47434d, -0x206f7074,0x696f6e73,0x20617265,0x2069676e,0x6f726564,0xa000000,0x2d472063,0x616e206e, -0x6f742062,0x65207573,0x65642077,0x69746820,0x2d646e20,0xa000000,0x2d472072,0x65717569, -0x72657320,0x61206465,0x63696d61,0x6c206e75,0x6d626572,0x20617267,0x756d656e,0x740a0000, -0x30000000,0x30000000,0x6e6f6e2d,0x64696769,0x74206368,0x61726163,0x74657220,0x696e202d, -0x47202573,0xa000000,0x664b4d64,0x6b6a7573,0x6d6f6361,0x62000000,0x556e6b6e,0x6f776e20, -0x63686172,0x61637465,0x7220696e,0x2025730a,0x0,0x2d490000,0x2d490000,0x2d490000, -0x2d4a7366,0x6d000000,0x6d696e61,0x62690000,0x66706500,0x2d4b6670,0x65000000,0x73640000, -0x2d4b7364,0x0,0x737a0000,0x2d4b737a,0x0,0x6d617500,0x2d4b6d61,0x75000000, -0x50494300,0x43616e27,0x74206d69,0x78202d4b,0x50494320,0x616e6420,0x2d6e6f6e,0x5f736861, -0x7265642c,0x20636861,0x6e676520,0x746f202d,0x6e6f6e5f,0x73686172,0x65640a00,0x6d696e61, -0x62690000,0x66706500,0x2d4b6670,0x65000000,0x73640000,0x2d4b7364,0x0,0x737a0000, -0x2d4b737a,0x0,0x6d617500,0x2d4b6d61,0x75000000,0x50494300,0x43616e27,0x74206d69, -0x78202d4b,0x50494320,0x616e6420,0x2d6e6f6e,0x5f736861,0x7265642c,0x20636861,0x6e676520, -0x746f202d,0x6e6f6e5f,0x73686172,0x65640a00,0x2d4b5049,0x43000000,0x43616e27,0x74206d69, -0x78202d4b,0x50494320,0x616e6420,0x2d6e6f6e,0x5f736861,0x7265642c,0x20636861,0x6e676520, -0x746f202d,0x6e6f6e5f,0x73686172,0x65640a00,0x75706461,0x74650000,0x69676e6f,0x72650000, -0x69676e6f,0x72656469,0x72000000,0x74617267,0x65740000,0x2573206d,0x75737420,0x62652066, -0x6f6c6c6f,0x77656420,0x62792061,0x2066696c,0x65206e61,0x6d650a00,0x2d4f6c69,0x6d697400, -0x35303030,0x0,0x30000000,0x2d4f6c69,0x6d697400,0x2d4f6c69,0x6d697420,0x6d757374, -0x20686176,0x6520616e,0x20617267,0x756d656e,0x740a0000,0x6e6f6e2d,0x64696769,0x74206368, -0x61726163,0x74657220,0x696e202d,0x4f6c696d,0x69742025,0x730a0000,0x2d4f5054,0x3a000000, -0x2d4f5054,0x206f7074,0x696f6e73,0x20617265,0x2069676e,0x6f726564,0xa000000,0x2d517900, -0x2d516e00,0x2d535750,0x3a000000,0x2d535750,0x206f7074,0x696f6e73,0x20617265,0x2069676e, -0x6f726564,0xa000000,0x2d540000,0x6c642072,0x65717569,0x72657320,0x2d542074,0x6f206861, -0x76652061,0x6e206172,0x67756d65,0x6e740a00,0x2d544152,0x473a0000,0x2d544152,0x47206f70, -0x74696f6e,0x73206172,0x65206967,0x6e6f7265,0x640a0000,0x2d54454e,0x563a0000,0x2d54454e, -0x56206f70,0x74696f6e,0x73206172,0x65206967,0x6e6f7265,0x640a0000,0x2d562069,0x73206e6f, -0x74207375,0x70706f72,0x7465642e,0xa000000,0x2d565300,0x2d565300,0x6c642072,0x65717569, -0x72657320,0x2d565320,0x746f2068,0x61766520,0x616e2061,0x7267756d,0x656e740a,0x0, -0x2d574b20,0x6f6e6c79,0x2076616c,0x69642069,0x6e20464f,0x52545241,0x4e206f72,0x20432063, -0x6f6d7069,0x6c617469,0x6f6e732e,0xa000000,0x6c6f6f70,0x756e726f,0x6c6c0000,0x2d472072, -0x65717569,0x72657320,0x61206465,0x63696d61,0x6c206e75,0x6d626572,0x20617267,0x756d656e, -0x740a0000,0x30000000,0x30000000,0x6e6f6e2d,0x64696769,0x74206368,0x61726163,0x74657220, -0x696e202d,0x47202573,0xa000000,0x524f4f54,0x44495200,0x524f4f54,0x44495220,0x656e7620, -0x76617220,0x69676e6f,0x7265642c,0x20757365,0x20434f4d,0x505f5441,0x52474554,0x5f524f4f, -0x5420616e,0x6420434f,0x4d505f48,0x4f53545f,0x524f4f54,0xa000000,0x2d442074,0x616b656e, -0x20617320,0x656d7074,0x79206370,0x70202d44,0x2c206e6f,0x74206c64,0x28312920,0x2d442068, -0x65786e75,0x6d0a0000,0x2d440000,0x6c642072,0x65717569,0x72657320,0x2d442074,0x6f206861, -0x76652061,0x6e206172,0x67756d65,0x6e740a00,0x2c000000,0x2d4b0000,0x2c000000,0x2d410000, -0x6c642072,0x65717569,0x72657320,0x2d412074,0x6f206861,0x76652061,0x6e206172,0x67756d65, -0x6e740a00,0x556e6b6e,0x6f776e20,0x70617373,0x20636861,0x72616374,0x65722069,0x6e202573, -0xa000000,0x2d586370,0x6c757363,0x6f6d6d00,0x2d587400,0x2d737464,0x30000000,0x2d586300, -0x2d737464,0x31000000,0x2d586100,0x2d737464,0x0,0x2d587072,0x6f746f74,0x79706573, -0x0,0x2d586e64,0x6c6f6361,0x6c646174,0x61000000,0x2d586c6f,0x63616c64,0x61746100, -0x2d586e64,0x626c6f63,0x6b000000,0x2d58626c,0x6f636b00,0x2d58616c,0x69676e62,0x73730000, -0x2d586e6f,0x616c6967,0x6e627373,0x0,0x2d586361,0x63686573,0x697a6500,0x2d586361, -0x6368656c,0x696e6573,0x697a6500,0x2d586465,0x666d6f76,0x656d6178,0x0,0x2d587365, -0x74616c69,0x676e0000,0x2d58626c,0x6f636b72,0x616e6765,0x0,0x2573206d,0x75737420, -0x68617665,0x20616e20,0x61726775,0x6d656e74,0xa000000,0x2d616c6c,0x0,0x2d617574, -0x6f5f696e,0x636c7564,0x65000000,0x2d616e73,0x69000000,0x70000000,0x2d616e73,0x69706f73, -0x69780000,0x70000000,0x2d616269,0x0,0x2d445f41,0x42495f53,0x4f555243,0x45000000, -0x2d616269,0x0,0x2d616269,0x0,0x2d616370,0x70000000,0x696e7661,0x6c696420, -0x6f707469,0x6f6e2025,0x7320666f,0x72204465,0x6c74612f,0x432b2b25,0x73202d20,0x69676e6f, -0x7265640a,0x0,0x0,0x70000000,0x2d616c69,0x676e3800,0x2d616c69,0x676e3136, -0x0,0x2d616c69,0x676e3332,0x0,0x2d616c69,0x676e3634,0x0,0x2d616c69, -0x676e5f63,0x6f6d6d6f,0x6e000000,0x2d616c69,0x676e3800,0x2d616c69,0x676e3136,0x0, -0x2d616c69,0x676e3332,0x0,0x2d616c69,0x676e3634,0x0,0x2d617574,0x6f6d6174, -0x69630000,0x2d616e73,0x69000000,0x2d617063,0x0,0x2d616c69,0x676e3800,0x2d616c69, -0x676e3136,0x0,0x2d616c69,0x676e3332,0x0,0x2d616c69,0x676e3634,0x0, -0x2d616a65,0x6f700000,0x2d6e6f5f,0x72343030,0x305f6669,0x78000000,0x2d626573,0x74476e75, -0x6d000000,0x2d627974,0x65726563,0x6c656e00,0x2d626163,0x6b736c61,0x73680000,0x2d63636b, -0x72000000,0x2d636665,0x0,0x696e7661,0x6c696420,0x6f707469,0x6f6e2025,0x7320666f, -0x72204465,0x6c74612f,0x432b2b25,0x73202d20,0x69676e6f,0x7265640a,0x0,0x0, -0x70000000,0x2d636f6d,0x6d6f6e00,0x696e7661,0x6c696420,0x6f707469,0x6f6e2025,0x7320666f, -0x72204465,0x6c74612f,0x432b2b25,0x73202d20,0x69676e6f,0x7265640a,0x0,0x0, -0x2d58636f,0x6d6d6f6e,0x0,0x2d636163,0x6865737a,0x0,0x2d636163,0x6865737a, -0x206d7573,0x74206861,0x76652061,0x6e206172,0x67756d65,0x6e740a00,0x6e6f6e2d,0x64696769, -0x74206368,0x61726163,0x74657220,0x696e202d,0x47202573,0xa000000,0x2d63706c,0x75730000, -0x2d63706c,0x75730000,0x2d637070,0x0,0x2d637070,0x20697320,0x64656661,0x756c740a, -0x0,0x2d636f72,0x64000000,0x2d636f66,0x66000000,0x2d63616c,0x6c5f7368,0x61726564, -0x0,0x2d636f75,0x6e740000,0x2d636f75,0x6e74616c,0x6c000000,0x2d63616c,0x6c5f7368, -0x61726564,0x0,0x2d637274,0x30000000,0x63727430,0x2e6f0000,0x6d637274,0x302e6f00, -0x72000000,0x2d637274,0x31000000,0x61637274,0x312e6f00,0x63727431,0x2e6f0000,0x6d637274, -0x312e6f00,0x72000000,0x2d636173,0x6573656e,0x73650000,0x2d636861,0x6e67655f,0x636f6e73, -0x74000000,0x2d636861,0x6e67655f,0x636f6e73,0x74000000,0x2d636f6c,0x31323000,0x2d636f6c, -0x37320000,0x2d636861,0x72617267,0x31000000,0x2d636875,0x6e6b0000,0x2d636865,0x636b5f62, -0x6f756e64,0x73000000,0x2d636f6c,0x31323000,0x2d636865,0x636b5f62,0x6f756e64,0x73000000, -0x2d430000,0x2d636875,0x6e6b3d00,0x2d636875,0x6e6b3d00,0x2d636875,0x6e6b3d00,0x2d6d705f, -0x6368756e,0x6b3d0000,0x2d636875,0x6e6b3d00,0x2d636f6c,0x0,0x2d636f6d,0x705f7472, -0x756e6300,0x2d636865,0x636b5f72,0x65676973,0x74727900,0x2d636865,0x636b5f72,0x65676973, -0x74727920,0x72657175,0x69726573,0x20612066,0x696c656e,0x616d6520,0x61726775,0x6d656e74, -0xa000000,0x2d646f6c,0x6c617200,0x2d646f6c,0x6c617200,0x2d646f6c,0x6c617200,0x2d646f6c, -0x6c617200,0x2d58646f,0x6c6c6172,0x0,0x2d64646f,0x7074696e,0x666f0000,0x2d647900, -0x2d646e00,0x2d646e20,0x63616e20,0x6e6f7420,0x62652075,0x73656420,0x77697468,0x202d4720, -0xa000000,0x2d64646f,0x70740000,0x2d645f6c,0x696e6573,0x0,0x2d646566,0x65787400, -0x2d646c69,0x6e650000,0x2d646566,0x65787400,0x2d64656c,0x61795f6c,0x6f616400,0x2d646566, -0x61756c74,0x5f64656c,0x61795f6c,0x6f616400,0x2d657863,0x70740000,0x2d657863,0x70742069, -0x73206e6f,0x74207375,0x70706f72,0x74656420,0x696e2073,0x76723420,0x656e762e,0xa000000, -0x2d656c66,0x0,0x2d657870,0x6f727400,0x2d657870,0x6f727473,0x0,0x2d657870, -0x6f727465,0x645f7379,0x6d626f6c,0x0,0x2d657870,0x6f727465,0x645f7379,0x6d626f6c, -0x20726571,0x75697265,0x73206120,0x73796d62,0x6f6c2061,0x7267756d,0x656e740a,0x0, -0x2d657870,0x6f727473,0x5f66696c,0x65000000,0x2d657870,0x6f727473,0x5f66696c,0x65207265, -0x71756972,0x65732061,0x2066696c,0x656e616d,0x65206172,0x67756d65,0x6e740a00,0x2d657863, -0x6c756465,0x0,0x2d657863,0x6c756465,0x20726571,0x75697265,0x73206120,0x66696c65, -0x6e616d65,0x20617267,0x756d656e,0x740a0000,0x2d650000,0x6c642072,0x65717569,0x72657320, -0x2d652074,0x6f206861,0x76652061,0x6e206172,0x67756d65,0x6e740a00,0x2d657861,0x63745f76, -0x65727369,0x6f6e0000,0x2d656c66,0x0,0x2d657874,0x656e645f,0x736f7572,0x63650000, -0x2d657870,0x616e645f,0x696e636c,0x75646500,0x2d656469,0x74000000,0x74686520,0x636f7272, -0x65637420,0x2d656469,0x74206f70,0x74696f6e,0x20737962,0x74617820,0x6973202d,0x65646974, -0x5b302d39,0x5d0a0000,0x45444954,0x4f520000,0x656d6163,0x73000000,0x76690000,0x44495350, -0x4c415900,0x25732069,0x676e6f72,0x65642066,0x6f722062,0x61636b67,0x726f756e,0x6420636f, -0x6d70696c,0x6520696e,0x206e6f6e,0x2d582065,0x6e766972,0x6f6e6d65,0x6e740a00,0x2d66756c, -0x6c5f7472,0x616e7374,0x6976655f,0x6c696e6b,0x0,0x2d666565,0x64626163,0x6b000000, -0x2d666565,0x64626163,0x6b206d75,0x73742068,0x61766520,0x616e2061,0x7267756d,0x656e740a, -0x0,0x2d66756c,0x6c61736f,0x70740000,0x2d666f72,0x63655f6c,0x6f616400,0x2d66756c, -0x6c776172,0x6e000000,0x2d586675,0x6c6c7761,0x726e0000,0x2d766572,0x626f7365,0x0, -0x2d77696d,0x706c6963,0x69740000,0x2d667261,0x6d65706f,0x696e7465,0x72000000,0x2d666c6f, -0x61740000,0x2d666c6f,0x61740000,0x2d666c6f,0x61740000,0x2d58666c,0x6f617400,0x2d666c6f, -0x61740000,0x2d667363,0x37340000,0x2d660000,0x2d662072,0x65717569,0x72657320,0x616e2061, -0x7267756d,0x656e7420,0x6f662031,0x2c20322c,0x2033206f,0x7220340a,0x0,0x2d660000, -0x6c642072,0x65717569,0x72657320,0x2d662074,0x6f206861,0x76652061,0x6e206172,0x67756d65, -0x6e740a00,0x2d686f73,0x74636163,0x68650000,0x2d68656c,0x70000000,0x2d68656c,0x70206973, -0x2069676e,0x6f726564,0x2e0a0000,0x2d686964,0x65730000,0x2d686964,0x64656e5f,0x73796d62, -0x6f6c0000,0x2d686964,0x64656e5f,0x73796d62,0x6f6c2072,0x65717569,0x72657320,0x61207379, -0x6d626f6c,0x20617267,0x756d656e,0x740a0000,0x2d686964,0x65735f66,0x696c6500,0x2d686964, -0x65735f66,0x696c6520,0x72657175,0x69726573,0x20612066,0x696c656e,0x616d6520,0x61726775, -0x6d656e74,0xa000000,0x2f000000,0x2d690000,0x6c642072,0x65717569,0x72657320,0x2d692074, -0x6f206861,0x76652061,0x6e206172,0x67756d65,0x6e740a00,0x2d696e6c,0x696e655f,0x746f0000, -0x2d696e6c,0x696e655f,0x746f206d,0x75737420,0x68617665,0x20616e20,0x61726775,0x6d656e74, -0xa000000,0x6e6f6e2d,0x64696769,0x74206368,0x61726163,0x74657220,0x696e202d,0x47202573, -0xa000000,0x2d69676e,0x6f72655f,0x756e7265,0x736f6c76,0x65640000,0x2d69676e,0x6f72655f, -0x6d696e6f,0x72000000,0x2d697269,0x78340000,0x2f757372,0x2f697269,0x78342f00,0x38000000, -0x0,0x704b666a,0x7273756c,0x6d766f63,0x61627479,0x7a000000,0x2d693200,0x2d693400, -0x2d693800,0x2d697061,0x74680000,0x2d697061,0x74680000,0x2d697061,0x7468206d,0x75737420, -0x68617665,0x20616e20,0x61726775,0x6d656e74,0xa000000,0x2d697375,0x66666978,0x0, -0x2d697375,0x66666978,0x0,0x2d697375,0x66666978,0x206d7573,0x74206861,0x76652061, -0x6e206172,0x67756d65,0x6e740a00,0x2d6a616c,0x72000000,0x2d6a6d70,0x6f707400,0x2d6b7069, -0x636f7074,0x0,0x2d6b6f20,0x776f756c,0x64206f76,0x65727772,0x69746520,0x25730a00, -0x2d6b7000,0x2d6b7500,0x69737469,0x6e670000,0x2d6c676c,0x5f730000,0x2d6c5831,0x315f7300, -0x2d6c635f,0x73000000,0x2d6d7000,0x272d6d70,0x27206d75,0x73742070,0x72656365,0x65642061, -0x6e79202d,0x4220666c,0x6167732e,0xa000000,0x66590000,0x2d6d6665,0x78740000,0x2d6d6170, -0x0,0x2d6d6970,0x73310000,0x63616e27,0x74206d69,0x78202d6d,0x69707331,0x20776974, -0x68202d64,0x776f7063,0x6f64650a,0x0,0x2d6d6970,0x73320000,0x63616e27,0x74206d69, -0x78202d6d,0x69707332,0x20776974,0x68202d6d,0x6970735b,0x312c335d,0xa000000,0x4d000000, -0x2d6d6970,0x73330000,0x63616e27,0x74206d69,0x78202d6d,0x69707333,0x20776974,0x68202d6d, -0x6970735b,0x312c325d,0xa000000,0x2d6d6970,0x73332073,0x686f756c,0x64206e6f,0x74206265, -0x20757365,0x6420666f,0x72207563,0x6f646520,0x33322d62,0x69742063,0x6f6d7069,0x6c65730a, -0x0,0x2d6d6970,0x73332063,0x616e6e6f,0x74206265,0x20757365,0x6420666f,0x72207563, -0x6f646520,0x33322d62,0x69742063,0x6f6d7069,0x6c65730a,0x0,0x4d000000,0x2d6e6f6e, -0x5f736861,0x72656400,0x2d6e6f6e,0x5f736861,0x72656400,0x2d6d6970,0x73340000,0x2d6d6970, -0x73342063,0x616e6e6f,0x74206265,0x20757365,0x6420666f,0x72207563,0x6f646520,0x33322d62, -0x69742063,0x6f6d7069,0x6c65730a,0x0,0x2d6d705f,0x6b656570,0x0,0x2d6d705f, -0x6b656570,0x0,0x20556e6b,0x6e6f776e,0x20666c61,0x673a2025,0x730a0000,0x2d6d705f, -0x73636865,0x64747970,0x653d0000,0x2d6d705f,0x73636865,0x64747970,0x653d0000,0x2d6d705f, -0x73636865,0x64747970,0x653d0000,0x2d6e6f6b,0x7069636f,0x70740000,0x2d6e6f5f,0x756e7265, -0x736f6c76,0x65640000,0x2d6e6f5f,0x7472616e,0x73697469,0x76655f6c,0x696e6b00,0x2d6e6f69, -0x6e6c696e,0x65000000,0x2d6e6f75,0x6f707430,0x0,0x2d6e6f61,0x6c696173,0x6f6b0000, -0x2d6e6f73,0x7464696e,0x63000000,0x2d6e6f73,0x74646c69,0x62000000,0x2d6e6f70,0x726f746f, -0x74797065,0x73000000,0x2d6e6f63,0x6f756e74,0x0,0x2d6e4e00,0x2d6e6f6a,0x6d706f70, -0x74000000,0x2d6e6f6e,0x5f736861,0x72656400,0x2d6e6f6e,0x5f736861,0x72656400,0x2d6e6f6e, -0x5f736861,0x72656400,0x2d6e6f5f,0x61726368,0x69766500,0x2d6e6f5f,0x6d706300,0x2d6e6f65, -0x7874656e,0x645f736f,0x75726365,0x0,0x2d6e6f69,0x34000000,0x2d6e6f69,0x73616d00, -0x2d6e6f65,0x78706f70,0x74000000,0x2d6e6f66,0x37370000,0x2d6e6f6c,0x6f636b00,0x2d6e6f6d, -0x66646174,0x61000000,0x2d6e6f72,0x6d646174,0x61000000,0x2d6e6f63,0x70700000,0x696e7661, -0x6c696420,0x6f707469,0x6f6e2025,0x7320666f,0x72204465,0x6c74612f,0x432b2b25,0x73202d20, -0x69676e6f,0x7265640a,0x0,0x0,0x2d6e6f63,0x6f646500,0x2d6e6f5f,0x7072656c, -0x696e6b00,0x2d6e6f5f,0x6175746f,0x5f696e63,0x6c756465,0x0,0x2d6e6f6e,0x65000000, -0x2d6e6f66,0x696c7400,0x2d6e6f5f,0x64656c74,0x61000000,0x2d59444e,0x0,0x5f657870, -0x72000000,0x2d594445,0x0,0x5f696e63,0x6c756465,0x0,0x2d594449,0x0, -0x2573206d,0x75737420,0x68617665,0x20616e20,0x61726775,0x6d656e74,0xa000000,0x2573206d, -0x75737420,0x68617665,0x20616e20,0x61726775,0x6d656e74,0xa000000,0x2d6f6c64,0x5f726c00, -0x2d6f6c64,0x5f726c00,0x2d6f6c64,0x63707000,0x696e7661,0x6c696420,0x6f707469,0x6f6e2025, -0x7320666f,0x72204465,0x6c74612f,0x432b2b25,0x73202d20,0x69676e6f,0x7265640a,0x0, -0x0,0x2d6f3332,0x0,0x2d6f626a,0x6563746c,0x69737400,0x2d6f626a,0x6563746c, -0x69737420,0x6d757374,0x20626520,0x67697665,0x6e206120,0x66696c65,0x20617267,0x756d656e, -0x740a0000,0x2d6f2025,0x73207265,0x73656d62,0x6c657320,0x74686520,0x6e616d65,0x206f6620, -0x6120736f,0x75726365,0x2066696c,0x652c2064,0x6973616c,0x6c6f7765,0x640a0000,0x2d6f206d, -0x75737420,0x68617665,0x20616e20,0x61726775,0x6d656e74,0xa000000,0x2d6f6e65,0x74726970, -0x0,0x2d310000,0x2d70726f,0x746f7479,0x70657300,0x696e7661,0x6c696420,0x6f707469, -0x6f6e2025,0x7320666f,0x72204465,0x6c74612f,0x432b2b25,0x73202d20,0x69676e6f,0x7265640a, -0x0,0x0,0x2d706564,0x616e7469,0x63000000,0x696e7661,0x6c696420,0x6f707469, -0x6f6e2025,0x7320666f,0x72204465,0x6c74612f,0x432b2b25,0x73202d20,0x69676e6f,0x7265640a, -0x0,0x0,0x2d700000,0x2d706661,0x0,0x2d706661,0x70726570,0x6173732c, -0x0,0x2d706361,0x0,0x2d706361,0x206d7573,0x74207072,0x65636565,0x6420616e, -0x79202d42,0x20666c61,0x67732e0a,0x0,0x664b5900,0x2d707400,0x76000000,0x6e6f6e65, -0x0,0x75736564,0x0,0x61000000,0x616c6c00,0x2e630000,0x2e636300,0x2e632b2b, -0x0,0x2e430000,0x2e637878,0x0,0x2e435858,0x0,0x2e637070,0x0, -0x2e435050,0x0,0x756e7375,0x70706f72,0x74656420,0x73756666,0x69782069,0x6e202573, -0xa000000,0x69676e6f,0x72656420,0x756e7375,0x70706f72,0x74656420,0x6f707469,0x6f6e2025, -0x730a0000,0x2d707265,0x6c696e6b,0x0,0x2d703020,0x6f72202d,0x7031206d,0x75737420, -0x70726563,0x65646520,0x616e7920,0x2d422066,0x6c616773,0xa000000,0x25732068,0x61732062, -0x65656e20,0x73757065,0x72736564,0x65642c20,0x73656520,0x70726f66,0x20283129,0x20616e64, -0x20706978,0x69652028,0x31290a00,0x726e0000,0x2d717569,0x636b7374,0x6172745f,0x696e666f, -0x0,0x2d716c00,0x2d717000,0x2d723430,0x30300000,0x2d723630,0x30300000,0x2d726571, -0x75697265,0x5f6d696e,0x6f720000,0x2d726d5f,0x64656164,0x5f636f64,0x65000000,0x2d727061, -0x74680000,0x2d726461,0x74615f73,0x68617265,0x64000000,0x2d726461,0x74615f77,0x72697461, -0x626c6500,0x2d723800,0x2d72616e,0x67650000,0x2d726d61,0x6e736900,0x2d726d65,0x78740000, -0x2d737472,0x69637449,0x45454500,0x2d736100,0x2c000000,0x6e6f7372,0x63000000,0x53746174, -0x69632061,0x6e616c79,0x73697320,0x64697265,0x63746f72,0x7920616c,0x72656164,0x79207370, -0x65636966,0x6965640a,0x0,0x2f000000,0x2c000000,0x2d73615f,0x66730000,0x63767374, -0x61746963,0x2e66696c,0x65736574,0x0,0x2d736574,0x5f766572,0x73696f6e,0x0, -0x2d736574,0x5f766572,0x73696f6e,0x20726571,0x75697265,0x7320616e,0x20617267,0x756d656e, -0x740a0000,0x2d736f6e,0x616d6500,0x2d736f6e,0x616d6520,0x72657175,0x69726573,0x20616e20, -0x61726775,0x6d656e74,0xa000000,0x2d737973,0x74797065,0x0,0x2d737973,0x74797065, -0x206d7573,0x74206861,0x76652061,0x6e206172,0x67756d65,0x6e740a00,0x6f6e6c79,0x206f6e65, -0x202d7379,0x73747970,0x65206f70,0x74696f6e,0x20616c6c,0x6f776564,0xa000000,0x2d737973, -0x74797065,0x206d7573,0x74207072,0x65636564,0x6520616e,0x79202d42,0x20666c61,0x67730a00, -0x73767234,0x0,0x2d656c66,0x0,0x2d656c66,0x0,0x4f6e6c79,0x20737973, -0x74797065,0x20737672,0x3420616c,0x6c6f7765,0x640a0000,0x73767234,0x0,0x62736434, -0x33000000,0x73767233,0x0,0x73797376,0x0,0x2f000000,0x72000000,0x54686973, -0x20737973,0x74797065,0x20646f65,0x736e2774,0x20657869,0x7374206f,0x6e207468,0x6973206d, -0x61636869,0x6e653b20,0x6368616e,0x67656420,0x73797374,0x79706520,0x746f2073,0x7672332e, -0xa000000,0x73767233,0x0,0x2f000000,0x7573722f,0x35696e63,0x6c756465,0x0, -0x7573722f,0x696e636c,0x7564652f,0x43430000,0x7573722f,0x696e636c,0x75646500,0x68000000, -0x2d73776f,0x70636f64,0x65000000,0x2d73776f,0x70636f64,0x65206361,0x6e206e6f,0x74206265, -0x20757365,0x64207769,0x7468202d,0x64776f70,0x636f6465,0x2f2d3634,0x6269740a,0x0, -0x2d736f70,0x74206f6e,0x6c792061,0x7661696c,0x61626c65,0x20776974,0x6820466f,0x72747261, -0x6e20616e,0x6420433b,0x206f7074,0x696f6e20,0x69676e6f,0x7265642e,0xa000000,0x696e7661, -0x6c696420,0x6f707469,0x6f6e2025,0x7320666f,0x72204465,0x6c74612f,0x432b2b25,0x73202d20, -0x69676e6f,0x7265640a,0x0,0x0,0x2d73686f,0x77000000,0x2d73686f,0x77300000, -0x2d73686f,0x776d0000,0x2d736d61,0x72740000,0x2d736861,0x72656400,0x2d737464,0x30000000, -0x2d737464,0x0,0x2d737464,0x31000000,0x2d736967,0x6e656400,0x2d736967,0x6e656400, -0x2d736967,0x6e656400,0x2d587369,0x676e6564,0x0,0x2d737464,0x0,0x2d737464, -0x30000000,0x2d737464,0x31000000,0x2d737464,0x0,0x2d737461,0x74696300,0x2d736861, -0x72655f00,0x696f0000,0x616c6c00,0x2d737464,0x0,0x2d737570,0x705f636f,0x62383500, -0x2d737570,0x705f636f,0x64000000,0x2d737570,0x705f726d,0x0,0x2d736967,0x6e656400, -0x2d747261,0x6e736974,0x6976655f,0x6c696e6b,0x0,0x2d747261,0x70757600,0x2d746670, -0x0,0x2d747261,0x64697469,0x6f6e616c,0x0,0x2573206e,0x6f742073,0x7570706f, -0x72746564,0xa000000,0x2573206e,0x6f742073,0x7570706f,0x72746564,0xa000000,0x2573206e, -0x6f742073,0x7570706f,0x72746564,0xa000000,0x2573206e,0x6f742073,0x7570706f,0x72746564, -0xa000000,0x2573206e,0x6f742073,0x7570706f,0x72746564,0xa000000,0x2573206e,0x6f742073, -0x7570706f,0x72746564,0xa000000,0x2573206e,0x6f742073,0x7570706f,0x72746564,0xa000000, -0x2573206e,0x6f742073,0x7570706f,0x72746564,0xa000000,0x2573206e,0x6f742073,0x7570706f, -0x72746564,0xa000000,0x2d5a4700,0x2d5a6720,0x6973206f,0x62736f6c,0x65746520,0x616e6420, -0x69732069,0x676e6f72,0x65642e0a,0x0,0x70657268,0x61707320,0x7265706c,0x61636520, -0x2d5a6720,0x77697468,0x202d6c67,0x6c5f732e,0x20536565,0x20796f75,0x72206772,0x61706869, -0x63732064,0x6f63756d,0x656e7461,0x74696f6e,0x2e0a0000,0x70657268,0x61707320,0x7265706c, -0x61636520,0x2d5a6720,0x77697468,0x202d6c66,0x676c202d,0x6c676c5f,0x73202053,0x65652066, -0x37372831,0x292e0a00,0x70657268,0x61707320,0x7265706c,0x61636520,0x2d5a6720,0x77697468, -0x202d6c70,0x676c202f,0x7573722f,0x6c69622f,0x70326373,0x74722e6f,0x202d6c67,0x6c5f7320, -0x20536565,0x20706328,0x31292e0a,0x0,0x2d5a7220,0x6973206f,0x62736f6c,0x65746520, -0x616e6420,0x69732069,0x676e6f72,0x65642e0a,0x0,0x2d737464,0x0,0x2d737464, -0x0,0x2d737464,0x0,0x2d737464,0x0,0x2d737464,0x0,0x2573206e, -0x6f742073,0x7570706f,0x72746564,0xa000000,0x556e6b6e,0x6f776e20,0x63686172,0x61637465, -0x7220696e,0x2025730a,0x0,0x25732069,0x73206465,0x6661756c,0x740a0000,0x25732069, -0x73206465,0x6661756c,0x740a0000,0x556e6b6e,0x6f776e20,0x63686172,0x61637465,0x7220696e, -0x2025730a,0x0,0x2d756f70,0x74300000,0x2d750000,0x6c642072,0x65717569,0x72657320, -0x2d752074,0x6f206861,0x76652061,0x6e206172,0x67756d65,0x6e740a00,0x2d756e72,0x6f6c6c00, -0x54686973,0x20666c61,0x67206973,0x206e6f20,0x6c6f6e67,0x65722073,0x7570706f,0x72746564, -0xa000000,0x2d757365,0x66706964,0x78000000,0x2d757365,0x5f726561,0x64777269,0x74655f63, -0x6f6e7374,0x0,0x2d597230,0x0,0x2d757365,0x5f726561,0x64777269,0x74655f63, -0x6f6e7374,0x0,0x2d757365,0x5f726561,0x646f6e6c,0x795f636f,0x6e737400,0x2d597231, -0x0,0x2d757365,0x5f726561,0x646f6e6c,0x795f636f,0x6e737400,0x2d757064,0x6174655f, -0x72656769,0x73747279,0x0,0x2d757064,0x6174655f,0x72656769,0x73747279,0x20726571, -0x75697265,0x73206120,0x66696c65,0x6e616d65,0x20617267,0x756d656e,0x740a0000,0x2d766f6c, -0x6174696c,0x65000000,0x2d766f6c,0x6174696c,0x65206973,0x206e6f20,0x6c6f6e67,0x65722073, -0x7570706f,0x72746564,0x3b207573,0x65207468,0x6520766f,0x6c617469,0x6c652071,0x75616c69, -0x66696572,0x20696e73,0x74656164,0xa000000,0x2d766172,0x61726773,0x0,0x2d587661, -0x72617267,0x73000000,0x2d766572,0x626f7365,0x0,0x2d766572,0x626f7365,0x0, -0x2d766d73,0x0,0x2d766172,0x61726773,0x0,0x2d763200,0x696e7661,0x6c696420, -0x6f707469,0x6f6e2025,0x7320666f,0x72204465,0x6c74612f,0x432b2b25,0x73202d20,0x69676e6f, -0x7265640a,0x0,0x0,0x2d776c69,0x6e740000,0x696e7661,0x6c696420,0x6f707469, -0x6f6e2025,0x7320666f,0x72204465,0x6c74612f,0x432b2b25,0x73202d20,0x69676e6f,0x7265640a, -0x0,0x0,0x2d776f66,0x66000000,0x6f707469,0x6f6e7300,0x2d776f66,0x66207265, -0x71756972,0x65732061,0x20636f6d,0x6d612d73,0x65706172,0x61746564,0x206c6973,0x74206f66, -0x20657272,0x6f72206e,0x756d6265,0x7273202d,0x2069676e,0x6f726564,0xa000000,0x2d58776f, -0x66660000,0x2d595700,0x2d776f66,0x66207265,0x71756972,0x65732061,0x20776172,0x6e696e67, -0x206e756d,0x62657220,0x286f7220,0x61206c69,0x7374206f,0x66207468,0x656d290a,0x0, -0x556e6b6e,0x6f776e20,0x666c6167,0x3a202573,0xa000000,0x556e6b6e,0x6f776e20,0x666c6167, -0x3a202573,0xa000000,0x696e7661,0x6c696420,0x6f707469,0x6f6e2025,0x7320666f,0x72204465, -0x6c74612f,0x432b2b25,0x73202d20,0x69676e6f,0x7265640a,0x0,0x0,0x2d78616e, -0x73690000,0x70000000,0x2d78676f,0x74000000,0x2d626967,0x5f676f74,0x0,0x696e7661, -0x6c696420,0x6f707469,0x6f6e2025,0x7320666f,0x72204465,0x6c74612f,0x432b2b25,0x73202d20, -0x69676e6f,0x7265640a,0x0,0x0,0x2d6a0000,0x6d616c66,0x6f726d65,0x64206f72, -0x20756e6b,0x6e6f776e,0x206f7074,0x696f6e3a,0x2025730a,0x0,0x6d616c66,0x6f726d65, -0x64206f72,0x20756e6b,0x6e6f776e,0x206f7074,0x696f6e3a,0x2025730a,0x0,0x2d4d4469, -0x676e6f72,0x65000000,0x2d594d00,0x2d597400,0x2d4d4475,0x70646174,0x65000000,0x2d4d4474, -0x61726765,0x74000000,0x2d4d4469,0x676e6f72,0x65000000,0x2d4d4475,0x70646174,0x65000000, -0x2d4d4474,0x61726765,0x74000000,0x752e6f75,0x742e6f00,0x612e6f75,0x74000000,0x2d4d4475, -0x70646174,0x65000000,0x2d4d4475,0x70646174,0x65000000,0x496e7465,0x726e616c,0x0, -0x4572726f,0x72000000,0x5761726e,0x696e6700,0x496e666f,0x0,0x46697800,0x0, -0x25733a20,0x4572726f,0x723a2065,0x72726f72,0x2028292c,0x2025643a,0x204f7574,0x206f6620, -0x6d656d6f,0x72790a00,0x25733a20,0x25730a00,0x25733a20,0x0,0x25733a20,0x25733a20, -0x0,0x25732c20,0x6c696e65,0x2025643a,0x20000000,0x25733a20,0x0,0x25732c20, -0x6c696e65,0x2025643a,0x20000000,0x25733a20,0x0,0x0,0x0,0x68706665, -0x6b6a7573,0x6d766f64,0x71636162,0x6c797a72,0x50314558,0x434f6e4d,0x46495355,0x744b5977, -0x0,0x30000000,0x50453143,0x4f4d4649,0x5553586e,0x57000000,0x7573722f,0x35696e63, -0x6c756465,0x0,0x7573722f,0x696e636c,0x7564652f,0x61626900,0x7573722f,0x696e636c, -0x7564652f,0x43430000,0x7573722f,0x696e636c,0x75646500,0x7573722f,0x35696e63,0x6c756465, -0x0,0x7573722f,0x696e636c,0x7564652f,0x61626900,0x7573722f,0x696e636c,0x7564652f, -0x43430000,0x7573722f,0x696e636c,0x75646500,0x63707000,0x61637070,0x0,0x7573722f, -0x6c69622f,0x0,0x63707000,0x61637070,0x0,0x6d706300,0x6163636f,0x6d000000, -0x63636f6d,0x0,0x65646763,0x7066652e,0x616c7400,0x65646763,0x70666500,0x63666500, -0x75706173,0x0,0x66636f6d,0x0,0x706c3166,0x65000000,0x636f6266,0x65000000, -0x7573722f,0x6c69622f,0x0,0x6d706300,0x7573722f,0x6c69622f,0x0,0x6163636f, -0x6d000000,0x63636f6d,0x0,0x7573722f,0x6c69622f,0x4443432f,0x0,0x65646763, -0x7066652e,0x616c7400,0x65646763,0x70666500,0x63666500,0x7573722f,0x6c69622f,0x0, -0x65646763,0x7066652e,0x616c7400,0x65646763,0x70666500,0x63666500,0x7573722f,0x6c69622f, -0x0,0x75706173,0x0,0x7573722f,0x6c69622f,0x0,0x66636f6d,0x0, -0x7573722f,0x6c69622f,0x0,0x706c3166,0x65000000,0x7573722f,0x6c69622f,0x0, -0x636f6266,0x65000000,0x706c3165,0x72726f72,0x0,0x7573722f,0x6c69622f,0x0, -0x706c3165,0x72726f72,0x0,0x756c7069,0x0,0x7573722f,0x6c69622f,0x0, -0x756c7069,0x0,0x756a6f69,0x6e000000,0x7573722f,0x6c69622f,0x0,0x756a6f69, -0x6e000000,0x756c6400,0x7573722f,0x6c69622f,0x0,0x756c6400,0x7573706c,0x69740000, -0x7573722f,0x6c69622f,0x0,0x7573706c,0x69740000,0x756f7074,0x30000000,0x7573722f, -0x6c69622f,0x0,0x756f7074,0x30000000,0x64646f70,0x74000000,0x7573722f,0x6c69622f, -0x0,0x64646f70,0x74000000,0x756d6572,0x67650000,0x7573722f,0x6c69622f,0x0, -0x756d6572,0x67650000,0x756c6f6f,0x70000000,0x7573722f,0x6c69622f,0x0,0x756c6f6f, -0x70000000,0x756f7074,0x0,0x7573722f,0x6c69622f,0x4443432f,0x0,0x756f7074, -0x0,0x7573722f,0x6c69622f,0x0,0x756f7074,0x0,0x7567656e,0x0, -0x7573722f,0x6c69622f,0x4443432f,0x0,0x7567656e,0x0,0x7573722f,0x6c69622f, -0x0,0x7567656e,0x0,0x61733000,0x7573722f,0x6c69622f,0x0,0x61733000, -0x61733100,0x7573722f,0x6c69622f,0x4443432f,0x0,0x61733100,0x7573722f,0x6c69622f, -0x0,0x61733100,0x6564675f,0x7072656c,0x696e6b00,0x7573722f,0x6c69622f,0x4443432f, -0x0,0x6564675f,0x7072656c,0x696e6b00,0x6c640000,0x632b2b70,0x61746368,0x0, -0x632b2b66,0x696c7400,0x7573722f,0x6c69622f,0x4443432f,0x0,0x6c640000,0x7573722f, -0x62696e2f,0x0,0x6c640000,0x7573722f,0x6c69622f,0x0,0x6c640000,0x7573722f, -0x6c69622f,0x4443432f,0x0,0x632b2b70,0x61746368,0x0,0x7573722f,0x6c69622f, -0x4443432f,0x0,0x632b2b66,0x696c7400,0x62746f75,0x0,0x75746f62,0x0, -0x7573722f,0x6c69622f,0x0,0x62746f75,0x0,0x7573722f,0x6c69622f,0x0, -0x75746f62,0x0,0x66746f63,0x0,0x7573722f,0x6c69622f,0x0,0x66746f63, -0x0,0x636f7264,0x0,0x7573722f,0x62696e2f,0x0,0x636f7264,0x0, -0x632b2b69,0x6e69742e,0x6f000000,0x64656c74,0x615f696e,0x69742e6f,0x0,0x6372746e, -0x2e6f0000,0x632b2b69,0x6e69742e,0x6f000000,0x64656c74,0x615f696e,0x69742e6f,0x0, -0x6372746e,0x2e6f0000,0x6372746e,0x2e6f0000,0x632b2b69,0x6e69742e,0x6f000000,0x64656c74, -0x615f696e,0x69742e6f,0x0,0x6372746e,0x2e6f0000,0x632b2b69,0x6e69742e,0x6f000000, -0x64656c74,0x615f696e,0x69742e6f,0x0,0x6372746e,0x2e6f0000,0x632b2b69,0x6e69742e, -0x6f000000,0x64656c74,0x615f696e,0x69742e6f,0x0,0x6372746e,0x2e6f0000,0x632b2b69, -0x6e69742e,0x6f000000,0x64656c74,0x615f696e,0x69742e6f,0x0,0x6372746e,0x2e6f0000, -0x632b2b69,0x6e69742e,0x6f000000,0x64656c74,0x615f696e,0x69742e6f,0x0,0x6372746e, -0x2e6f0000,0x632b2b69,0x6e69742e,0x6f000000,0x64656c74,0x615f696e,0x69742e6f,0x0, -0x2d4c0000,0x2d420000,0x2d4c0000,0x6c696270,0x2e620000,0x2d6c7000,0x7573722f,0x6c69622f, -0x6e6f6e73,0x68617265,0x642f0000,0x6c696270,0x2e620000,0x7573722f,0x6c69622f,0x0, -0x6c696270,0x2e620000,0x6c696270,0x6c312e62,0x0,0x2d6c706c,0x31000000,0x7573722f, -0x6c69622f,0x6e6f6e73,0x68617265,0x642f0000,0x6c696270,0x6c312e62,0x0,0x7573722f, -0x6c69622f,0x0,0x6c696270,0x6c312e62,0x0,0x2d4c0000,0x2d420000,0x2d4c0000, -0x2d420000,0x2d4c0000,0x2d4c0000,0x6c696265,0x78632e62,0x0,0x2d4c0000,0x2d420000, -0x2d4c0000,0x2d420000,0x2d6c6578,0x63000000,0x2d6c6d6c,0x64000000,0x7573722f,0x6c69622f, -0x6e6f6e73,0x68617265,0x642f0000,0x6c696265,0x78632e62,0x0,0x7573722f,0x6c69622f, -0x0,0x6c696265,0x78632e62,0x0,0x2d4c0000,0x2d420000,0x2d4c0000,0x6c696264, -0x772e6100,0x6c696264,0x772e6200,0x2d4c0000,0x7573722f,0x6c69622f,0x6e6f6e73,0x68617265, -0x642f0000,0x202d4200,0x2d4c0000,0x7573722f,0x6c69622f,0x0,0x202d4200,0x2d4c0000, -0x7573722f,0x6c69622f,0x0,0x2d4c0000,0x7573722f,0x6c69622f,0x0,0x7573722f, -0x6c69622f,0x6e6f6e73,0x68617265,0x642f0000,0x6c696264,0x772e6100,0x7573722f,0x6c69622f, -0x6e6f6e73,0x68617265,0x642f0000,0x6c696264,0x772e6200,0x7573722f,0x6c69622f,0x0, -0x6c696264,0x772e6100,0x7573722f,0x6c69622f,0x0,0x6c696264,0x772e6200,0x2d4c0000, -0x202d4200,0x2d4c0000,0x6c696278,0x6d616c6c,0x6f632e62,0x0,0x2d6c786d,0x616c6c6f, -0x63000000,0x7573722f,0x6c69622f,0x6e6f6e73,0x68617265,0x642f0000,0x6c696278,0x6d616c6c, -0x6f632e62,0x0,0x7573722f,0x6c69622f,0x0,0x6c696278,0x6d616c6c,0x6f632e62, -0x0,0x6c696273,0x6f72742e,0x62000000,0x2d6c736f,0x72740000,0x7573722f,0x6c69622f, -0x6e6f6e73,0x68617265,0x642f0000,0x6c696273,0x6f72742e,0x62000000,0x7573722f,0x6c69622f, -0x0,0x6c696273,0x6f72742e,0x62000000,0x2d4c0000,0x202d4200,0x2d4c0000,0x6c696270, -0x726f662e,0x61000000,0x6c696270,0x726f662e,0x61000000,0x202d4200,0x2d4c0000,0x6c69626d, -0x2e620000,0x6c69626d,0x5f6d6970,0x73322e61,0x0,0x6c69626d,0x5f6d6970,0x73322e62, -0x0,0x6c69626d,0x5f6d6970,0x73332e61,0x0,0x6c69626d,0x5f6d6970,0x73332e62, -0x0,0x2d6c6d00,0x7573722f,0x6c69622f,0x6e6f6e73,0x68617265,0x642f0000,0x6c69626d, -0x2e620000,0x7573722f,0x6c69622f,0x0,0x6c69626d,0x2e620000,0x7573722f,0x6c69622f, -0x6e6f6e73,0x68617265,0x642f0000,0x6c69626d,0x5f6d6970,0x73322e61,0x0,0x7573722f, -0x6c69622f,0x6e6f6e73,0x68617265,0x642f0000,0x6c69626d,0x5f6d6970,0x73322e62,0x0, -0x7573722f,0x6c69622f,0x0,0x6c69626d,0x5f6d6970,0x73322e61,0x0,0x7573722f, -0x6c69622f,0x0,0x6c69626d,0x5f6d6970,0x73322e62,0x0,0x7573722f,0x6c69622f, -0x6e6f6e73,0x68617265,0x642f0000,0x6c69626d,0x5f6d6970,0x73332e61,0x0,0x7573722f, -0x6c69622f,0x6e6f6e73,0x68617265,0x642f0000,0x6c69626d,0x5f6d6970,0x73332e62,0x0, -0x7573722f,0x6c69622f,0x0,0x6c69626d,0x5f6d6970,0x73332e61,0x0,0x7573722f, -0x6c69622f,0x0,0x6c69626d,0x5f6d6970,0x73332e62,0x0,0x2d4c0000,0x202d4200, -0x2d4c0000,0x6c696246,0x37372e62,0x0,0x2d6c6674,0x6e000000,0x2d6c4637,0x37000000, -0x7573722f,0x6c69622f,0x6e6f6e73,0x68617265,0x642f0000,0x6c696246,0x37372e62,0x0, -0x7573722f,0x6c69622f,0x0,0x6c696246,0x37372e62,0x0,0x2d4c0000,0x202d4200, -0x2d4c0000,0x6c696249,0x37372e62,0x0,0x2d6c4937,0x37000000,0x7573722f,0x6c69622f, -0x6e6f6e73,0x68617265,0x642f0000,0x6c696249,0x37372e62,0x0,0x7573722f,0x6c69622f, -0x0,0x6c696249,0x37372e62,0x0,0x2d4c0000,0x202d4200,0x2d4c0000,0x6c696269, -0x73616d2e,0x62000000,0x2d6c6973,0x616d0000,0x7573722f,0x6c69622f,0x6e6f6e73,0x68617265, -0x642f0000,0x6c696269,0x73616d2e,0x62000000,0x7573722f,0x6c69622f,0x0,0x6c696269, -0x73616d2e,0x62000000,0x2d4c0000,0x202d4200,0x2d4c0000,0x6c696255,0x37372e62,0x0, -0x2d6c5537,0x37000000,0x7573722f,0x6c69622f,0x6e6f6e73,0x68617265,0x642f0000,0x6c696255, -0x37372e62,0x0,0x7573722f,0x6c69622f,0x0,0x6c696255,0x37372e62,0x0, -0x666f7074,0x0,0x636f7074,0x0,0x70666100,0x70636100,0x7573722f,0x6c69622f, -0x0,0x666f7074,0x0,0x7573722f,0x6c69622f,0x0,0x636f7074,0x0, -0x7573722f,0x6c69622f,0x0,0x70666100,0x7573722f,0x6c69622f,0x0,0x70636100, -0x6c696249,0x37375f6d,0x702e6100,0x6c696263,0x5f6d702e,0x61000000,0x2d6c4937,0x375f6d70, -0x0,0x2d6c635f,0x6d700000,0x556e6b6e,0x6f776e20,0x63686172,0x61637465,0x7220696e, -0x202d7425,0x630a0000,0x7573722f,0x356c6962,0x0,0x2f757372,0x2f697269,0x78342f00, -0x2f000000,0x65622f00,0x656c2f00,0x72503145,0x58434f6e,0x4d464953,0x55000000,0x5f473000, -0x5f473000,0x5f473000,0x5f473000,0x5f473000,0x5f473000,0x5f473000,0x5f473000,0x5f473000, -0x5f473000,0x5f473000,0x5f473000,0x5f473000,0x6c696270,0x0,0x2e610000,0x6c696265, -0x78630000,0x2e610000,0x6c696270,0x6c310000,0x2e610000,0x6c696263,0x6f620000,0x2e610000, -0x6c696273,0x6f727400,0x2e610000,0x6c69626d,0x0,0x2e610000,0x6c696246,0x37370000, -0x2e610000,0x6c696249,0x37370000,0x2e610000,0x6c696255,0x37370000,0x2e610000,0x6c696269, -0x73616d00,0x2e610000,0x6c696270,0x726f6600,0x2e610000,0x6c696278,0x6d616c6c,0x6f630000, -0x2e610000,0x6d6b7374,0x72202829,0x0,0x6f757420,0x6f66206d,0x656d6f72,0x790a0000, -0x25730a00,0x6d6b6c69,0x73742028,0x29000000,0x6f757420,0x6f66206d,0x656d6f72,0x790a0000, -0x25730a00,0x61646473,0x74722829,0x0,0x6f757420,0x6f66206d,0x656d6f72,0x790a0000, -0x25730a00,0x61646473,0x70616365,0x64737472,0x28290000,0x6f757420,0x6f66206d,0x656d6f72, -0x790a0000,0x25730a00,0x6e657773,0x74723a20,0x756e6162,0x6c652074,0x6f206d61,0x6c6c6f63, -0x20666f72,0x20737472,0x696e6720,0x25730a00,0x73617665,0x5f706c61,0x63652829,0x0, -0x6f757420,0x6f66206d,0x656d6f72,0x790a0000,0x25730a00,0x7365745f,0x706c6163,0x65202829, -0x0,0x706c6163,0x65206f75,0x74206f66,0x2072616e,0x67650000,0x6164646c,0x69737420, -0x28290000,0x6f757420,0x6f66206d,0x656d6f72,0x790a0000,0x25730a00,0x6164646c,0x69737420, -0x28290000,0x6f757420,0x6f66206d,0x656d6f72,0x790a0000,0x25730a00,0x666f7200,0x464f5200, -0x6d6b7375,0x66202829,0x0,0x70617373,0x65642061,0x6e20756e,0x6b6e6f77,0x6e207375, -0x66666978,0x2076616c,0x75653a20,0x25730a00,0x6d6b7375,0x66202829,0x0,0x42616420, -0x66696c65,0x206e616d,0x652c206e,0x6f207375,0x66666978,0x3a202573,0xa000000,0x73617665, -0x73747220,0x28290000,0x6f757420,0x6f66206d,0x656d6f72,0x790a0000,0x25730a00,0x63746d73, -0x74585858,0x58585800,0x63746d75,0x58585858,0x58580000,0x63746d70,0x58585858,0x58580000, -0x63746d66,0x58585858,0x58580000,0x63746d6c,0x75585858,0x58585800,0x63746d73,0x58585858, -0x58580000,0x63746d6d,0x58585858,0x58580000,0x63746d6f,0x58585858,0x58580000,0x63746d6f, -0x73585858,0x58585800,0x63746d63,0x62585858,0x58585800,0x63746d63,0x58585858,0x58580000, -0x63746d61,0x58585858,0x58580000,0x63746d62,0x58585858,0x58580000,0x63746d6c,0x58585858, -0x58580000,0x63746d6d,0x34585858,0x58585800,0x63746d67,0x74585858,0x58585800,0x63746d69, -0x6c585858,0x58585800,0x63746d6c,0x74585858,0x58585800,0x63746d70,0x31585858,0x58585800, -0x63746d70,0x64585858,0x58585800,0x63746d64,0x64585858,0x58585800,0x63746d6c,0x6f585858, -0x58585800,0x63746d63,0x69585858,0x58585800,0x63746d76,0x58585858,0x58580000,0x63746d65, -0x72725858,0x58585858,0x0,0x63746d65,0x6d585858,0x58585800,0x63746d65,0x58585858, -0x58580000,0x63746d64,0x58585858,0x58580000,0x63746d71,0x58585858,0x58580000,0x63746d71, -0x73585858,0x58585800,0x63746d65,0x6c665858,0x58585800,0x63746d6b,0x58585858,0x58580000, -0x63746d63,0x6d645858,0x58585858,0x0,0x63746d66,0x696c7458,0x58585858,0x58000000, -0x25732000,0x25732000,0x3c202573,0x20000000,0x3e202573,0x20000000,0xa000000,0x70697065, -0x20666169,0x6c656420,0x666f7220,0x2d73686f,0x776d0000,0x6e6f206d,0x6f726520,0x70726f63, -0x65737365,0x730a0000,0x25730a00,0x63616e27,0x74206f70,0x656e2069,0x6e707574,0x2066696c, -0x653a2025,0x730a0000,0x25730a00,0x63616e27,0x74206372,0x65617465,0x206f7574,0x70757420, -0x66696c65,0x3a202573,0xa000000,0x25730a00,0x63616e27,0x74206372,0x65617465,0x20657272, -0x6f722066,0x696c653a,0x2025730a,0x0,0x25730a00,0x25732069,0x73206e6f,0x7420696e, -0x7374616c,0x6c656420,0x28636f75,0x6c64206e,0x6f742066,0x696e6420,0x2573292e,0xa000000, -0x2573206d,0x6179206e,0x6f742062,0x6520696e,0x7374616c,0x6c656420,0x28636f75,0x6c64206e, -0x6f742066,0x696e6420,0x2573292e,0xa000000,0x63616e27,0x74206669,0x6e64206f,0x72206578, -0x65633a20,0x25730a00,0x25730a00,0x50494f43,0x4d41505f,0x53474900,0x50494f43,0x53455849, -0x54000000,0x53544f50,0x50454420,0x7369676e,0x616c2072,0x65636569,0x76656420,0x66726f6d, -0x3a202573,0x20000000,0x20285369,0x676e616c,0x20256429,0x20000000,0x2050726f,0x63657373, -0x20202564,0x20616261,0x6e646f6e,0x65640a00,0x46617461,0x6c206572,0x726f7220,0x696e3a20, -0x25732000,0x20636869,0x6c642064,0x69656420,0x64756520,0x746f2073,0x69676e61,0x6c202564, -0x2e0a0000,0x50726f62,0x61626c79,0x20636175,0x73656420,0x62792072,0x756e6e69,0x6e67206f, -0x7574206f,0x66207377,0x61702073,0x70616365,0x202d2d20,0x63686563,0x6b202f75,0x73722f61, -0x646d2f53,0x59534c4f,0x472e0a00,0x46617461,0x6c206572,0x726f7220,0x696e3a20,0x25732000, -0x20536967,0x6e616c20,0x25642000,0x2d20636f,0x72652064,0x756d7065,0x640a0000,0xa000000, -0x666f726b,0x20746f20,0x65646974,0x20666169,0x6c65640a,0x0,0x25730a00,0x2d6c0000, -0x2d660000,0x6572722d,0x77696e64,0x6f770000,0x2b310000,0x78746572,0x6d000000,0x78746572, -0x6d000000,0x2d646973,0x706c6179,0x0,0x2d6c7300,0x2d650000,0x2b310000,0x6661696c, -0x65642074,0x6f206578,0x65633a20,0x25730a00,0x25730a00,0x46617461,0x6c206572,0x726f7220, -0x696e3a20,0x25732000,0x20536967,0x6e616c20,0x25642000,0x2d20636f,0x72652064,0x756d7065, -0x640a0000,0xa000000,0x3a204572,0x726f723a,0x20000000,0x2c206c69,0x6e652000,0x4572726f, -0x72206f6e,0x206c696e,0x65200000,0x4552524f,0x52200000,0x204c494e,0x45200000,0x25730a00, -0x25732020,0x28257329,0xa000000,0x70630000,0x25732020,0x28257329,0xa000000,0x61730000, -0x25732020,0x28257329,0xa000000,0x66373700,0x25732020,0x28257329,0xa000000,0x706c3100, -0x25732020,0x28257329,0xa000000,0x636f626f,0x6c000000,0x25732020,0x28257329,0xa000000, -0x63630000,0x94d6970,0x7320436f,0x6d707574,0x65722053,0x79737465,0x6d732025,0x642e2564, -0xa000000,0x252e3266,0x7520252e,0x32667320,0x25753a25,0x30342e31,0x6620252e,0x30662525, -0xa000000,0x2f444343,0x0,0x2f000000,0x7573722f,0x6c69622f,0x61626900,0x2f000000, -0x7573722f,0x6c69622f,0x6e6f6e73,0x68617265,0x64000000,0x2f000000,0x7573722f,0x6c696200, -0x2e000000,0x2e000000,0x2f000000,0x2f000000,0x2e000000,0x6163636f,0x6d000000,0x2f757372, -0x2f6c6962,0x2f616363,0x6f6d0000,0x414e5349,0x20430000,0x63636f6d,0x0,0x2f757372, -0x2f6c6962,0x2f63636f,0x6d000000,0x414e5349,0x20430000,0x61637070,0x0,0x2f757372, -0x2f6c6962,0x2f616370,0x70000000,0x414e5349,0x20430000,0x63707000,0x2f757372,0x2f6c6962, -0x2f637070,0x0,0x44657665,0x6c6f706d,0x656e7420,0x6f707469,0x6f6e0000,0x66636f6d, -0x0,0x2f757372,0x2f6c6962,0x2f66636f,0x6d000000,0x466f7274,0x72616e00,0x666f7074, -0x0,0x2f757372,0x2f6c6962,0x2f666f70,0x74000000,0x466f7274,0x72616e00,0x70666100, -0x2f757372,0x2f6c6962,0x2f706661,0x0,0x506f7765,0x7220466f,0x72747261,0x6e000000, -0x6163636f,0x6d5f6d70,0x0,0x2f757372,0x2f6c6962,0x2f616363,0x6f6d5f6d,0x70000000, -0x506f7765,0x72204300,0x63636f6d,0x5f6d7000,0x2f757372,0x2f6c6962,0x2f63636f,0x6d5f6d70, -0x0,0x506f7765,0x72204300,0x70636100,0x2f757372,0x2f6c6962,0x2f706361,0x0, -0x506f7765,0x72204300,0x636f7074,0x0,0x2f757372,0x2f6c6962,0x2f636f70,0x74000000, -0x414e5349,0x20430000,0x75706173,0x0,0x2f757372,0x2f6c6962,0x2f757061,0x73000000, -0x50617363,0x616c0000,0x706c3166,0x65000000,0x2f757372,0x2f6c6962,0x2f706c31,0x66650000, -0x504c2f31,0x0,0x706c3165,0x72726f72,0x0,0x2f757372,0x2f6c6962,0x2f706c31, -0x6572726f,0x72000000,0x504c2f31,0x0,0x61733000,0x2f757372,0x2f6c6962,0x2f617330, -0x0,0x44657665,0x6c6f706d,0x656e7420,0x6f707469,0x6f6e0000,0x61733100,0x2f757372, -0x2f6c6962,0x2f617331,0x0,0x44657665,0x6c6f706d,0x656e7420,0x6f707469,0x6f6e0000, -0x6c640000,0x2f757372,0x2f6c6962,0x2f6c6400,0x44657665,0x6c6f706d,0x656e7420,0x6f707469, -0x6f6e0000,0x636f6266,0x65000000,0x2f757372,0x2f6c6962,0x2f636f62,0x66650000,0x434f424f, -0x4c000000,0x65646763,0x70666500,0x2f757372,0x2f6c6962,0x2f444343,0x2f656467,0x63706665, -0x0,0x44656c74,0x6120432b,0x2b000000,0x65646763,0x7066652e,0x616c7400,0x2f757372, -0x2f6c6962,0x2f444343,0x2f656467,0x63706665,0x2e616c74,0x0,0x44656c74,0x6120432b, -0x2b000000,0x2d637878,0x0,0x25733a20,0x0,0x66756c6c,0x5f706174,0x68000000, -0x2f000000,0x2e256400,0x0,0x63767374,0x61746963,0x2e66696c,0x65736574,0x0, -0x63767374,0x61746963,0x2e66696c,0x65736574,0x0,0x53746174,0x69632066,0x696c6573, -0x65743a20,0x25732025,0x73000000,0x20257300,0xa000000,0x772b0000,0x7265636f,0x72645f73, -0x74617469,0x635f6669,0x6c657365,0x74000000,0x636f756c,0x64206e6f,0x74206f70,0x656e2063, -0x76737461,0x74696320,0x66696c65,0x73657420,0x74656d70,0x2066696c,0x65202573,0xa000000, -0x7265636f,0x72645f73,0x74617469,0x635f6669,0x6c657365,0x74000000,0x636f756c,0x64206e6f, -0x74206f70,0x656e206f,0x72206372,0x65617465,0x20637673,0x74617469,0x63206669,0x6c657365, -0x74206669,0x6c652025,0x730a0000,0x7265636f,0x72645f73,0x74617469,0x635f6669,0x6c657365, -0x74000000,0x6572726f,0x7220696e,0x206c6f63,0x6b696e67,0x20637673,0x74617469,0x63206669, -0x6c657365,0x74206669,0x6c652025,0x730a0000,0x7265636f,0x72645f73,0x74617469,0x635f6669, -0x6c657365,0x74000000,0x636f756c,0x64206e6f,0x74206673,0x74617420,0x63767374,0x61746963, -0x2066696c,0x65736574,0x2066696c,0x65202573,0xa000000,0x2d637673,0x74617469,0x630a0000, -0x722b0000,0x7265636f,0x72645f73,0x74617469,0x635f6669,0x6c657365,0x74000000,0x636f756c, -0x64206e6f,0x74206664,0x6f70656e,0x20637673,0x74617469,0x63206669,0x6c657365,0x74206669, -0x6c652025,0x730a0000,0x25732025,0x73000000,0x20257300,0xa000000,0x7265636f,0x72645f73, -0x74617469,0x635f6669,0x6c657365,0x74000000,0x6572726f,0x7220696e,0x20777269,0x74696e67, -0x20637673,0x74617469,0x63206669,0x6c657365,0x74206669,0x6c652025,0x730a0000,0x25733a20, -0x746f7563,0x68202573,0xa000000,0x25733a20,0x746f7563,0x68202573,0x0,0x2d420000, -0x2d6f0000,0x2d6f0000,0x20202000,0x69690000,0x2e696900,0x2f69695f,0x66696c65,0x732f0000, -0x2e4e4557,0x0,0x72000000,0x25733a20,0x75706461,0x74655f69,0x6e737461,0x6e746961, -0x74696f6e,0x5f696e66,0x6f5f6669,0x6c652025,0x730a0000,0x77000000,0x75706461,0x74655f69, -0x6e737461,0x6e746961,0x74696f6e,0x5f696e66,0x6f5f6669,0x6c650000,0x6572726f,0x7220696e, -0x20637265,0x6174696e,0x67206669,0x6c652025,0x730a0000,0x434d444c,0x494e453d,0x25732025, -0x73257325,0x730a0000,0x2d632000,0x0,0x0,0x5057443d,0x25730a00,0x2d2d2d2d, -0xa000000,0x75706461,0x74655f69,0x6e737461,0x6e746961,0x74696f6e,0x5f696e66,0x6f5f6669, -0x6c650000,0x6572726f,0x7220696e,0x2072656e,0x616d696e,0x67202573,0x20746f20,0x25730a00, -0x2f70726f,0x632f252d,0x64000000,0x4f70656e,0x696e6720,0x2f70726f,0x63000000,0x50494f43, -0x53454e54,0x52590000,0x50494f43,0x5753544f,0x50000000,0x70726f67,0x72616d20,0x68616c74, -0x65642070,0x72656d61,0x74757265,0x6c790000,0x70726f67,0x72616d20,0x68616c74,0x65642069, -0x6e207772,0x6f6e6720,0x73797374,0x656d2063,0x616c6c00,0x756e6b6e,0x6f776e20,0x70726f62, -0x6c656d0a,0x0,0x72656164,0x206f6e20,0x70697065,0x20666169,0x6c656400,0x77726974, -0x65206f6e,0x20706970,0x65206661,0x696c6564,0x0,0x2d73686f,0x776d3a20,0x556e6964, -0x656e7469,0x66696564,0x3a207365,0x676d656e,0x74202564,0xa000000,0x70725f76,0x61646472, -0x5b25645d,0x3d20256c,0x780a0000,0x70725f73,0x697a655b,0x25645d3d,0x20256c78,0xa000000, -0x70725f6f,0x66665b25,0x645d3d20,0x256c780a,0x0,0x70725f6d,0x666c6167,0x735b2564, -0x5d3d2025,0x6c780a00,0x70725f76,0x73697a65,0x5b25645d,0x3d20256c,0x780a0000,0x70725f70, -0x73697a65,0x5b25645d,0x3d20256c,0x780a0000,0x70725f77,0x73697a65,0x5b25645d,0x3d20256c, -0x780a0000,0x70725f72,0x73697a65,0x5b25645d,0x3d20256c,0x780a0000,0x70725f6d,0x73697a65, -0x5b25645d,0x3d20256c,0x780a0000,0x70725f64,0x65765b25,0x645d3d20,0x256c780a,0x0, -0x70725f69,0x6e6f5b25,0x645d3d20,0x256c780a,0x0,0xa000000,0x25732070,0x68617365, -0x206d656d,0x3a20256c,0x64542025,0x6c644420,0x256c6442,0x20256c64,0x5320256c,0x64742025, -0x6c646420,0x256c6462,0x20256c64,0x6d3d2025,0x6c644b0a,0x0,0x74657874,0x5f73697a, -0x653d2025,0x6c64204b,0x62797465,0x730a0000,0x64617461,0x5f73697a,0x653d2025,0x6c64204b, -0x62797465,0x730a0000,0x62726b5f,0x73697a65,0x3d20256c,0x64204b62,0x79746573,0xa000000, -0x73746163,0x6b5f7369,0x7a653d20,0x256c6420,0x4b627974,0x65730a00,0x736f5f74,0x6578745f, -0x73697a65,0x3d20256c,0x64204b62,0x79746573,0xa000000,0x736f5f64,0x6174615f,0x73697a65, -0x3d20256c,0x64204b62,0x79746573,0xa000000,0x736f5f62,0x726b5f73,0x697a653d,0x20256c64, -0x204b6279,0x7465730a,0x0,0x6d6d6170,0x5f73697a,0x653d2025,0x6c64204b,0x62797465, -0x730a0000,0x544f5441,0x4c5f5349,0x5a453d20,0x256c6420,0x4b627974,0x65730a00,0xf03f9c68, -0xf03f9c74,0xf03f9c80,0xf03f9c8c,0xf03f9c98,0xf03fa83c,0xf03fac30,0xf03fac30,0xf03fa984, -0xf03fac30,0xf03fac30,0xf03fa7e4,0xf03fac30,0xf03fac30,0xf03fac30,0xf03fac30,0xf03fac30, -0xf03fac30,0xf03fa8e4,0xf03fac30,0xf03fac30,0xf03fa78c,0xf0405024,0xf03fb21c,0xf04079c4, -0xf03fb21c,0xf03fb21c,0xf0408fac,0xf03fb21c,0xf03fb21c,0xf03fb21c,0xf03fb21c,0xf03fb21c, -0xf0406d34,0xf03fb21c,0xf04080d4,0xf03fb21c,0xf04079c4,0xf03fb21c,0xf04069c0,0xf03fb21c, -0xf03fb040,0xf04079c4,0xf03fb21c,0xf03fb21c,0xf03fb21c,0xf03fb21c,0xf03fb21c,0xf03fb21c, -0xf03fb21c,0xf03fb21c,0xf03fb21c,0xf03fb21c,0xf03fb21c,0xf03fb21c,0xf03faefc,0xf03fb21c, -0xf0402de0,0xf03fafe0,0xf03fb21c,0xf03fb21c,0xf03faf54,0xf03fb21c,0xf03fb21c,0xf03fb21c, -0xf03fb21c,0xf03fb21c,0xf03fb21c,0xf03faf90,0xf03fb21c,0xf0402de0,0xf0402de0,0xf03fb21c, -0xf0406680,0xf03fe05c,0xf0401370,0xf0403134,0xf03faf90,0xf0401b78,0xf04026fc,0xf03fbb80, -0xf03fbe98,0xf03fbdac,0xf03fbdac,0xf03fbe98,0xf03fbe98,0xf03fbe98,0xf03fbe98,0xf03fbe98, -0xf03fbe98,0xf03fbe98,0xf03fbe98,0xf03fbe98,0xf03fbd54,0xf03fbe98,0xf03fbdac,0xf03fbde8, -0xf03fd064,0xf03fd218,0xf03fd110,0xf03fd110,0xf03fd218,0xf03fd218,0xf03fd218,0xf03fd218, -0xf03fd218,0xf03fd218,0xf03fd218,0xf03fd218,0xf03fd218,0xf03fd0b8,0xf03fd218,0xf03fd110, -0xf03fd14c,0xf03fe05c,0xf03fded8,0xf0403134,0xf0403134,0xf03fded8,0xf03fded8,0xf03fded8, -0xf03fded8,0xf03fded8,0xf03fded8,0xf03fded8,0xf03fded8,0xf03fded8,0xf0401370,0xf03fded8, -0xf0403134,0xf0408b04,0xf03fe05c,0xf03fe05c,0xf0403134,0xf0403134,0xf03fe05c,0xf03fe05c, -0xf03fe05c,0xf03fe05c,0xf03fe05c,0xf03fe05c,0xf03fe05c,0xf03fe05c,0xf03fe05c,0xf0401370, -0xf03fe05c,0xf0403134,0xf0408b04,0xf040ca80,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50, -0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041920c,0xf041ad50,0xf041ad50, -0xf041ad50,0xf040cab4,0xf041ad50,0xf040cb20,0xf041ad50,0xf040cb90,0xf040cce4,0xf041ad50, -0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50, -0xf041ad50,0xf040ce14,0xf040d008,0xf040d188,0xf040d2d8,0xf040d57c,0xf040d770,0xf040d850, -0xf040db84,0xf040dce8,0xf040def4,0xf040df20,0xf040e888,0xf040e99c,0xf040ecb4,0xf040ed64, -0xf040f2c0,0xf040f348,0xf040f3cc,0xf040f430,0xf040f4d4,0xf040f660,0xf040f738,0xf040f860, -0xf041058c,0xf041ad50,0xf0418c58,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50, -0xf041ad50,0xf04109dc,0xf04113cc,0xf041151c,0xf0412254,0xf041275c,0xf0413148,0xf04137d0, -0xf04138ec,0xf0413c90,0xf0414324,0xf041441c,0xf0414660,0xf04147e0,0xf0415510,0xf0416118, -0xf04165cc,0xf0416fc4,0xf041705c,0xf0417430,0xf04189d4,0xf0419330,0xf0419798,0xf0419a98, -0xf041a34c,0xf041a300,0xf041a48c,0xf040fa74,0xf0410498,0xf040fca0,0xf0410498,0xf0410498, -0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf0410498, -0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf0410498, -0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf040f9b0,0xf0410498, -0xf040fdec,0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf0410498, -0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf0410498, -0xf0410498,0xf0410498,0xf0410498,0xf0410498,0xf040fd38,0xf040fd5c,0xf040fd14,0xf040fc7c, -0xf0410498,0xf040fa74,0xf0410498,0xf0410498,0xf0410498,0xf040fbc8,0xf040fba4,0xf040fd80, -0xf040fc34,0xf0410498,0xf040fcc4,0xf040f98c,0xf040fc58,0xf0410498,0xf040fc10,0xf0410498, -0xf040fbec,0xf0410498,0xf040fb80,0xf040fe10,0xf040fda4,0xf040fdc8,0xf04103fc,0xf04104f4, -0xf04104f4,0xf0410114,0xf04104f4,0xf04104f4,0xf040fe54,0xf04104f4,0xf04104f4,0xf04104f4, -0xf041036c,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4, -0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4, -0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04102f4, -0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4, -0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4,0xf04104f4, -0xf04104f4,0xf04104f4,0xf04104f4,0xf0410094,0xf0418ca0,0xf04191ac,0xf0418ce8,0xf04191ac, -0xf04191ac,0xf0418d30,0xf0418f28,0xf04191ac,0xf04191ac,0xf04191ac,0xf04191ac,0xf04191ac, -0xf04191ac,0xf0418d78,0xf04191ac,0xf0418dc0,0xf04191ac,0xf0418ee0,0xf04191ac,0xf04191ac, -0xf0418e08,0xf04191ac,0xf04191ac,0xf04191ac,0xf04191ac,0xf04191ac,0xf04191ac,0xf04191ac, -0xf04191ac,0xf04191ac,0xf04191ac,0xf04191ac,0xf04191ac,0xf04191ac,0xf04191ac,0xf04191ac, -0xf04191ac,0xf0418e50,0xf0418f58,0xf04191ac,0xf0418e98,0xf04191ac,0xf04191ac,0xf04191ac, -0xf04191ac,0xf04191ac,0xf04191ac,0xf04191ac,0xf0418f48,0xf0419094,0xf04191ac,0xf04191ac, -0xf04191ac,0xf04190c8,0xf04191ac,0xf04191ac,0xf04191ac,0xf0419164,0xf041a714,0xf041ad50, -0xf041ad50,0xf041ae04,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50, -0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50, -0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ae04,0xf041ad50, -0xf041ad50,0xf041a680,0xf041a690,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50, -0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041ad50,0xf041a57c,0xf041ad50,0xf041ad50, -0xf041ad50,0xf041ad50,0xf041ad50,0xf041a670,0xf041a660,0xf041ddbc,0xf041f608,0xf041f608, -0xf041f608,0xf041f608,0xf041f608,0xf041f608,0xf041f608,0xf041f608,0xf041f608,0xf041f608, -0xf041f608,0xf041f608,0xf041f608,0xf041f608,0xf041f608,0xf041f608,0xf041f608,0xf041f658, -0xf041f608,0xf041ded0,0xf041edcc,0xf041f608,0xf041f608,0xf041ef60,0xf041f608,0xf041f3ec, -0xf041f608,0xf041e904,0xf041f608,0xf041e6b8,0xf041dc38,0xf041f608,0xf041f608,0xf041f0e4, -0xf041f608,0xf041f268,0xf041f608,0xf041e168,0xf041e534,0xf041f57c,0xf041f608,0xf041f608, -0xf041f608,0xf041f608,0xf041f608,0xf041f608,0xf041f608,0xf041cc70,0xf041cd28,0xf041cb20, -0xf041c7a8,0xf041c354,0xf041bc28,0xf041f608,0xf041b87c,0xf041f608,0xf041c4c4,0xf041c40c, -0xf041cf30,0xf041c860,0xf041e7cc,0xf041c9d0,0xf041bb08,0xf041c6f0,0xf041d4d8,0xf041c638, -0xf041d218,0xf041c57c,0xf041c918,0xf041ce78,0xf041f608,0xf041d368,0xf041d420,0xf041f868, -0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78, -0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78, -0xf041fa78,0xf041f898,0xf041fa78,0xf041f838,0xf041f928,0xf041fa78,0xf041fa78,0xf041f958, -0xf041fa78,0xf041fa78,0xf041fa78,0xf041f8f8,0xf041fa78,0xf041f8c8,0xf041f808,0xf041fa78, -0xf041fa78,0xf041f9b8,0xf041fa78,0xf041f988,0xf041fa78,0xf041f9e8,0xf041fa18,0xf041fa78, -0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78, -0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78, -0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa78,0xf041fa48,0xf041fb74,0xf041fd54,0xf041fd54, -0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54, -0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54,0xf041fba4, -0xf041fd54,0xf041fb44,0xf041fc34,0xf041fd54,0xf041fd54,0xf041fc64,0xf041fd54,0xf041fd54, -0xf041fd54,0xf041fc04,0xf041fd54,0xf041fbd4,0xf041fb14,0xf041fd54,0xf041fd54,0xf041fcc4, -0xf041fd54,0xf041fc94,0xf041fd54,0xf041fd54,0xf041fd24,0xf041fd54,0xf041fd54,0xf041fd54, -0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54, -0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54,0xf041fd54, -0xf041fd54,0xf041fd54,0xf041fcf4,0xf042311c,0xf042311c,0xf04232dc,0xf0423590,0xf0423400, -0xf0423400,0x0,0x0,0x0,0x40282329,0x24486561,0x6465723a,0x20495249, -0x5820352e,0x333a3130,0x32313537,0x32303333,0x20627569,0x6c742031,0x312f3033,0x2f393420, -0x61742070,0x69676865,0x6172743a,0x2f6a6f69,0x73742f35,0x2e334d52,0x2f726f6f,0x74202400, -}; -static const uint32_t data[] = { -0x0,0x3,0x0,0x10000560,0x1,0x10000564,0x1,0x10000568, -0x2,0x1000056c,0x3,0x10000570,0x4,0x10000574,0x5,0x10000578, -0x6,0x1000057c,0x6,0x10000580,0x6,0x10000584,0x6,0x10000588, -0x6,0x1000058c,0x6,0x10000590,0x6,0x10000594,0x7,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x1,0x0,0x0,0x10000598,0x100005a0,0x100005a8,0x100005b0,0x100005b8, -0x100005c0,0x100005c8,0x100005d0,0x0,0x0,0x0,0x100005d8,0x100005e0, -0x100005ec,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0, -0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0, -0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0, -0x0,0x0,0x0,0x100005f4,0x10003,0x100005fc,0x10007,0x0, -0x0,0x10000604,0x10003,0x1000060c,0x10007,0x0,0x0,0x0, -0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x1, -0x10000614,0x0,0x0,0xffffffff,0x0,0xffffffff,0x0,0x0, -0x0,0x0,0x10000618,0x1000061c,0x10008310,0x1900,0x0,0x0, -0x0,0x0,0x10005234,0x10005240,0x10005248,0x10005250,0x10005258,0x1000525c, -0x10006754,0x1000675c,0x1000676c,0x10006774,0x1000677c,0x1000678c,0x10006794,0x1000679c, -0x100067ac,0x100067b4,0x100067b8,0x100067c8,0x100067dc,0x100067e4,0x100067f4,0x100067fc, -0x10006804,0x10006814,0x1000681c,0x10006820,0x10006830,0x10006840,0x1000684c,0x10006860, -0x10006868,0x10006870,0x10006884,0x1000688c,0x10006890,0x100068a0,0x100068a8,0x100068b0, -0x100068c0,0x100068c8,0x100068d0,0x100068e0,0x100068e8,0x100068f0,0x10006900,0x10006908, -0x10006914,0x10006928,0x10006930,0x10006934,0x10006944,0x10006958,0x1000695c,0x1000696c, -0x10006980,0x10006984,0x10006990,0x100069a4,0x100069ac,0x100069bc,0x100069c4,0x100069cc, -0x100069e4,0x100069f0,0x100069fc,0x10006a18,0x0,0x0,0x0,0x0, -}; -static uint32_t f_main(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1); -static void f_process_config(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1); -static void f_add_info(uint8_t *mem, uint32_t sp, uint32_t a0); -static void f_parse_command(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1); -static void f_get_host_chiptype(uint8_t *mem, uint32_t sp); -static void f_error(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3); -static void f_relocate_passes(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2); -static void f_newrunlib(uint8_t *mem, uint32_t sp); -static void f_compose_G0_libs(uint8_t *mem, uint32_t sp, uint32_t a0); -static uint32_t f_mkstr(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3); -static void f_mklist(uint8_t *mem, uint32_t sp, uint32_t a0); -static void f_addstr(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1); -static void f_addspacedstr(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1); -static uint32_t f_newstr(uint8_t *mem, uint32_t sp, uint32_t a0); -static uint32_t f_save_place(uint8_t *mem, uint32_t sp, uint32_t a0); -static void f_set_place(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2); -static void f_addlist(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1); -static void f_adduldlist(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2); -static uint32_t f_nodup(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1); -static uint32_t f_getsuf(uint8_t *mem, uint32_t sp, uint32_t a0); -static uint32_t f_mksuf(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1); -static uint32_t f_savestr(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1); -static void f_mktempstr(uint8_t *mem, uint32_t sp); -static uint32_t f_run(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3); -static uint32_t f_edit_src(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2); -static void f_get_lino(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2); -static void f_show_err(uint8_t *mem, uint32_t sp, uint32_t a0); -static void f_handler(uint8_t *mem, uint32_t sp); -static void f_cleanup(uint8_t *mem, uint32_t sp); -static void f_whats(uint8_t *mem, uint32_t sp); -static void f_settimes(uint8_t *mem, uint32_t sp); -static void f_dotime(uint8_t *mem, uint32_t sp); -static uint32_t func_4339c8(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1); -static uint32_t f_isdir(uint8_t *mem, uint32_t sp, uint32_t a0); -static uint32_t f_regular_not_writeable(uint8_t *mem, uint32_t sp, uint32_t a0); -static uint32_t f_regular_file(uint8_t *mem, uint32_t sp, uint32_t a0); -static uint32_t f_basename(uint8_t *mem, uint32_t sp, uint32_t a0); -static uint32_t f_dirname(uint8_t *mem, uint32_t sp, uint32_t a0); -static uint32_t func_434094(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1); -static void f_add_cxx_symbol_options(uint8_t *mem, uint32_t sp); -static void f_init_curr_dir(uint8_t *mem, uint32_t sp); -static uint32_t f_full_path(uint8_t *mem, uint32_t sp, uint32_t a0); -static void f_add_static_opt(uint8_t *mem, uint32_t sp, uint32_t a0); -static void f_record_static_fileset(uint8_t *mem, uint32_t sp, uint32_t a0); -static uint32_t f_touch(uint8_t *mem, uint32_t sp, uint32_t a0); -static void f_add_prelinker_objects(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1); -static uint32_t f_quoted_length(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1); -static uint32_t f_quote_shell_arg(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1); -static void f_save_off_command_line(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1); -static void f_skip_old_ii_controls(uint8_t *mem, uint32_t sp, uint32_t a0); -static uint32_t f_make_ii_file_name(uint8_t *mem, uint32_t sp, uint32_t a0); -static void f_update_instantiation_info_file(uint8_t *mem, uint32_t sp, uint32_t a0); -static uint32_t func_4362cc(uint8_t *mem, uint32_t sp, uint32_t a0); -static void func_4365b8(uint8_t *mem, uint32_t sp); -static void func_436680(uint8_t *mem, uint32_t sp); -static void func_43673c(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1); -static uint32_t f_gethostsex(uint8_t *mem, uint32_t sp); -uint64_t trampoline(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3, uint32_t fp_dest) { -switch (fp_dest) { -case 0x433218: f_handler(mem, sp); return 0; -default: abort();} -} -int run(uint8_t *mem, int argc, char *argv[]) { -mmap_initial_data_range(mem, 0xff00000, 0x1000b000); -memcpy(mem + 0x10000560, rodata, 0x75e0); -memcpy(mem + 0x10000000, data, 0x560); -MEM_S32(0x1000a600) = argc; -MEM_S32(0xffffff0) = argc; -uint32_t al = argc * 4; for (int i = 0; i < argc; i++) al += strlen(argv[i]) + 1; -uint32_t arg_addr = wrapper_malloc(mem, al); -MEM_U32(0x1000a604) = arg_addr; -MEM_U32(0xffffff4) = arg_addr; -uint32_t arg_strpos = arg_addr + argc * 4; -for (int i = 0; i < argc; i++) {MEM_U32(arg_addr + i * 4) = arg_strpos; uint32_t p = 0; do { MEM_S8(arg_strpos) = argv[i][p]; ++arg_strpos; } while (argv[i][p++] != '\0');} -setup_libc_data(mem); -int ret = f_main(mem, 0xffffff0, argc, arg_addr); -return ret; -} - -static uint32_t f_main(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L405b30: -//main: -//nop; -//nop; -//nop; -sp = sp + 0xfffffea0; -MEM_U32(sp + 356) = a1; -t6 = MEM_U32(sp + 356); -// fdead 40008063 MEM_U32(sp + 68) = ra; -// fdead 40008063 MEM_U32(sp + 64) = gp; -MEM_U32(sp + 352) = a0; -// fdead 40008063 MEM_U32(sp + 60) = s5; -// fdead 40008063 MEM_U32(sp + 56) = s4; -// fdead 40008063 MEM_U32(sp + 52) = s3; -// fdead 40008063 MEM_U32(sp + 48) = s2; -// fdead 40008063 MEM_U32(sp + 44) = s1; -// fdead 40008063 MEM_U32(sp + 40) = s0; -MEM_U32(sp + 332) = zero; -MEM_U32(sp + 328) = zero; -MEM_U32(sp + 324) = zero; -at = 0x1000a31c; -t8 = 0x10000004; -t7 = MEM_U32(t6 + 0); -t8 = MEM_U32(t8 + 0); -MEM_U32(at + 0) = t7; -at = 0x1; -if (t8 == at) {at = 0x2; -goto L405ba0;} -at = 0x2; -if (t8 != at) {//nop; -goto L405bb4;} -//nop; -L405ba0: -t9 = 0x10000620; -at = 0x1000a254; -t9 = t9; -MEM_U32(at + 0) = t9; -goto L405bc4; -MEM_U32(at + 0) = t9; -L405bb4: -t0 = 0x10000628; -at = 0x1000a254; -t0 = t0; -MEM_U32(at + 0) = t0; -L405bc4: -t1 = 0x10000630; -at = 0x1000a258; -t1 = t1; -t2 = 0x10000638; -MEM_U32(at + 0) = t1; -at = 0x1000a194; -t2 = t2; -t3 = 0x10000644; -MEM_U32(at + 0) = t2; -at = 0x1000a190; -//nop; -a0 = 0x1000a260; -t3 = t3; -MEM_U32(at + 0) = t3; -f_mklist(mem, sp, a0); -goto L405c00; -MEM_U32(at + 0) = t3; -L405c00: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a270; -//nop; -f_mklist(mem, sp, a0); -goto L405c18; -//nop; -L405c18: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a310; -//nop; -f_mklist(mem, sp, a0); -goto L405c30; -//nop; -L405c30: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a2c0; -//nop; -f_mklist(mem, sp, a0); -goto L405c48; -//nop; -L405c48: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a320; -//nop; -f_mklist(mem, sp, a0); -goto L405c60; -//nop; -L405c60: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a330; -//nop; -f_mklist(mem, sp, a0); -goto L405c78; -//nop; -L405c78: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a408; -//nop; -f_mklist(mem, sp, a0); -goto L405c90; -//nop; -L405c90: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a418; -//nop; -f_mklist(mem, sp, a0); -goto L405ca8; -//nop; -L405ca8: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a428; -//nop; -f_mklist(mem, sp, a0); -goto L405cc0; -//nop; -L405cc0: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a360; -//nop; -f_mklist(mem, sp, a0); -goto L405cd8; -//nop; -L405cd8: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a370; -//nop; -f_mklist(mem, sp, a0); -goto L405cf0; -//nop; -L405cf0: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a438; -//nop; -f_mklist(mem, sp, a0); -goto L405d08; -//nop; -L405d08: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a448; -//nop; -f_mklist(mem, sp, a0); -goto L405d20; -//nop; -L405d20: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a280; -//nop; -f_mklist(mem, sp, a0); -goto L405d38; -//nop; -L405d38: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a5a8; -//nop; -f_mklist(mem, sp, a0); -goto L405d50; -//nop; -L405d50: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a290; -//nop; -f_mklist(mem, sp, a0); -goto L405d68; -//nop; -L405d68: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a2d0; -//nop; -f_mklist(mem, sp, a0); -goto L405d80; -//nop; -L405d80: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a2a0; -//nop; -f_mklist(mem, sp, a0); -goto L405d98; -//nop; -L405d98: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a2b0; -//nop; -f_mklist(mem, sp, a0); -goto L405db0; -//nop; -L405db0: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a2e0; -//nop; -f_mklist(mem, sp, a0); -goto L405dc8; -//nop; -L405dc8: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a2f0; -//nop; -f_mklist(mem, sp, a0); -goto L405de0; -//nop; -L405de0: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a300; -//nop; -f_mklist(mem, sp, a0); -goto L405df8; -//nop; -L405df8: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a5b8; -//nop; -f_mklist(mem, sp, a0); -goto L405e10; -//nop; -L405e10: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a5d0; -//nop; -f_mklist(mem, sp, a0); -goto L405e28; -//nop; -L405e28: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a5e0; -//nop; -f_mklist(mem, sp, a0); -goto L405e40; -//nop; -L405e40: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a460; -//nop; -f_mklist(mem, sp, a0); -goto L405e58; -//nop; -L405e58: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a470; -//nop; -f_mklist(mem, sp, a0); -goto L405e70; -//nop; -L405e70: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a480; -//nop; -f_mklist(mem, sp, a0); -goto L405e88; -//nop; -L405e88: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a490; -//nop; -f_mklist(mem, sp, a0); -goto L405ea0; -//nop; -L405ea0: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a4a0; -//nop; -f_mklist(mem, sp, a0); -goto L405eb8; -//nop; -L405eb8: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a4b0; -//nop; -f_mklist(mem, sp, a0); -goto L405ed0; -//nop; -L405ed0: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a4c0; -//nop; -f_mklist(mem, sp, a0); -goto L405ee8; -//nop; -L405ee8: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a4d0; -//nop; -f_mklist(mem, sp, a0); -goto L405f00; -//nop; -L405f00: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a4f0; -//nop; -f_mklist(mem, sp, a0); -goto L405f18; -//nop; -L405f18: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a4e0; -//nop; -f_mklist(mem, sp, a0); -goto L405f30; -//nop; -L405f30: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a500; -//nop; -f_mklist(mem, sp, a0); -goto L405f48; -//nop; -L405f48: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a510; -//nop; -f_mklist(mem, sp, a0); -goto L405f60; -//nop; -L405f60: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a520; -//nop; -f_mklist(mem, sp, a0); -goto L405f78; -//nop; -L405f78: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a530; -//nop; -f_mklist(mem, sp, a0); -goto L405f90; -//nop; -L405f90: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a540; -//nop; -f_mklist(mem, sp, a0); -goto L405fa8; -//nop; -L405fa8: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a560; -//nop; -f_mklist(mem, sp, a0); -goto L405fc0; -//nop; -L405fc0: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a550; -//nop; -f_mklist(mem, sp, a0); -goto L405fd8; -//nop; -L405fd8: -// bdead 40040103 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x10000654; -a1 = 0x10000658; -//nop; -a0 = a0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L405ff8; -a1 = a1; -L405ff8: -// bdead 4004010b gp = MEM_U32(sp + 64); -a2 = zero; -t4 = 0x1000a340; -a0 = 0x1000065c; -MEM_U32(t4 + 4) = v0; -//nop; -a1 = 0x10000660; -a0 = a0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L406020; -a1 = a1; -L406020: -// bdead 4004010b gp = MEM_U32(sp + 64); -a2 = zero; -t5 = 0x1000a340; -a0 = 0x10000664; -MEM_U32(t5 + 8) = v0; -//nop; -a1 = 0x10000668; -a0 = a0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L406048; -a1 = a1; -L406048: -// bdead 4004010b gp = MEM_U32(sp + 64); -a2 = zero; -t6 = 0x1000a340; -a0 = 0x1000066c; -MEM_U32(t6 + 12) = v0; -//nop; -a1 = 0x10000670; -a0 = a0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L406070; -a1 = a1; -L406070: -// bdead 4004010b gp = MEM_U32(sp + 64); -a2 = zero; -t7 = 0x1000a340; -a0 = 0x10000674; -MEM_U32(t7 + 16) = v0; -//nop; -a1 = 0x10000678; -a0 = a0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L406098; -a1 = a1; -L406098: -// bdead 4004010b gp = MEM_U32(sp + 64); -a2 = zero; -t8 = 0x1000a340; -a0 = 0x1000067c; -MEM_U32(t8 + 20) = v0; -//nop; -a1 = 0x10000684; -a0 = a0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4060c0; -a1 = a1; -L4060c0: -// bdead 4004000b gp = MEM_U32(sp + 64); -//nop; -t9 = 0x1000a340; -t0 = 0x10000384; -MEM_U32(t9 + 24) = v0; -at = 0x10000348; -//nop; -a0 = 0x10000688; -t0 = MEM_U32(t0 + 0); -a0 = a0; -MEM_U32(at + 0) = t0; -v0 = wrapper_getenv(mem, a0); -goto L4060f0; -MEM_U32(at + 0) = t0; -L4060f0: -MEM_U32(sp + 320) = v0; -t1 = MEM_U32(sp + 320); -// bdead 40040403 gp = MEM_U32(sp + 64); -if (t1 == 0) {at = 0x10000420; -goto L40610c;} -at = 0x10000420; -t2 = 0x1; -MEM_U32(at + 0) = t2; -L40610c: -a0 = 0x10000694; -//nop; -a0 = a0; -//nop; -v0 = wrapper_getenv(mem, a0); -goto L406120; -//nop; -L406120: -MEM_U32(sp + 316) = v0; -t3 = MEM_U32(sp + 316); -// bdead 40041003 gp = MEM_U32(sp + 64); -if (t3 == 0) {//nop; -goto L4063fc;} -//nop; -t4 = MEM_U8(t3 + 0); -t5 = 0xfb504f0; -//nop; -t6 = t4 + t5; -t7 = MEM_U8(t6 + 1); -//nop; -t8 = t7 & 0x8; -if (t8 == 0) {//nop; -goto L406190;} -//nop; -L406158: -t9 = MEM_U32(sp + 316); -t3 = 0xfb504f0; -t0 = t9 + 0x1; -MEM_U32(sp + 316) = t0; -t1 = MEM_U32(sp + 316); -//nop; -t2 = MEM_U8(t1 + 0); -//nop; -t4 = t2 + t3; -t5 = MEM_U8(t4 + 1); -//nop; -t6 = t5 & 0x8; -if (t6 != 0) {//nop; -goto L406158;} -//nop; -L406190: -//nop; -a0 = MEM_U32(sp + 316); -//nop; -v0 = wrapper_strlen(mem, a0); -goto L4061a0; -//nop; -L4061a0: -MEM_U32(sp + 308) = v0; -t7 = MEM_U32(sp + 308); -// bdead 40050003 gp = MEM_U32(sp + 64); -if ((int)t7 > 0) {//nop; -goto L4061e8;} -//nop; -t8 = 0x1000069c; -//nop; -t8 = t8; -MEM_U32(sp + 20) = t8; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4061dc; -MEM_U32(sp + 16) = zero; -L4061dc: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -goto L4063fc; -//nop; -L4061e8: -t9 = MEM_U32(sp + 308); -t0 = MEM_U32(sp + 316); -t4 = 0xfb504f0; -t1 = t9 + t0; -t2 = t1 + 0xffffffff; -MEM_U32(sp + 312) = t2; -t3 = MEM_U8(t1 + -1); -//nop; -t5 = t3 + t4; -t6 = MEM_U8(t5 + 1); -//nop; -t7 = t6 & 0x8; -if (t7 == 0) {//nop; -goto L406258;} -//nop; -L406220: -t8 = MEM_U32(sp + 312); -t1 = 0xfb504f0; -t9 = t8 + 0xffffffff; -MEM_U32(sp + 312) = t9; -t0 = MEM_U32(sp + 312); -//nop; -t2 = MEM_U8(t0 + 0); -//nop; -t3 = t2 + t1; -t4 = MEM_U8(t3 + 1); -//nop; -t5 = t4 & 0x8; -if (t5 != 0) {//nop; -goto L406220;} -//nop; -L406258: -t6 = MEM_U32(sp + 312); -a1 = 0x100006cc; -t7 = t6 + 0x1; -MEM_U32(sp + 312) = t7; -MEM_U8(t7 + 0) = (uint8_t)zero; -//nop; -a0 = MEM_U32(sp + 316); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L40627c; -a1 = a1; -L40627c: -// bdead 4004000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000004; -goto L4062bc;} -at = 0x10000004; -a0 = 0x100006d4; -MEM_U32(at + 0) = zero; -at = 0x100003e8; -//nop; -t8 = 0x2; -a1 = zero; -a2 = zero; -a0 = a0; -MEM_U32(at + 0) = t8; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L4062b0; -MEM_U32(at + 0) = t8; -L4062b0: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -goto L4063fc; -//nop; -L4062bc: -a1 = 0x100006d8; -//nop; -a0 = MEM_U32(sp + 316); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4062d0; -a1 = a1; -L4062d0: -// bdead 4004000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000004; -goto L406314;} -at = 0x10000004; -t9 = 0x1; -MEM_U32(at + 0) = t9; -at = 0x100003e8; -//nop; -a0 = 0x100006e0; -t0 = 0x3; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t0; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L406308; -a0 = a0; -L406308: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -goto L4063fc; -//nop; -L406314: -a1 = 0x100006e4; -//nop; -a0 = MEM_U32(sp + 316); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L406328; -a1 = a1; -L406328: -// bdead 4004000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000004; -goto L40636c;} -at = 0x10000004; -t2 = 0x3; -MEM_U32(at + 0) = t2; -at = 0x100003e8; -a0 = 0x100006ec; -//nop; -t1 = 0x3; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t1; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L406360; -a0 = a0; -L406360: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -goto L4063fc; -//nop; -L40636c: -a1 = 0x100006f0; -//nop; -a0 = MEM_U32(sp + 316); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L406380; -a1 = a1; -L406380: -// bdead 4004000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000004; -goto L4063c4;} -at = 0x10000004; -t3 = 0x2; -MEM_U32(at + 0) = t3; -at = 0x100003e8; -a0 = 0x100006fc; -//nop; -t4 = 0x3; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t4; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L4063b8; -a0 = a0; -L4063b8: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -goto L4063fc; -//nop; -L4063c4: -t5 = 0x10000700; -t6 = MEM_U32(sp + 316); -//nop; -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t6; -f_error(mem, sp, a0, a1, a2, a3); -goto L4063f4; -MEM_U32(sp + 24) = t6; -L4063f4: -// bdead 40040003 gp = MEM_U32(sp + 64); -MEM_U32(sp + 316) = zero; -L4063fc: -a0 = 0x1000a31c; -at = 0x1000a36c; -//nop; -t7 = 0x1; -a0 = MEM_U32(a0 + 0); -a1 = 0x2f; -MEM_U32(at + 0) = t7; -v0 = wrapper_strrchr(mem, a0, a1); -goto L40641c; -MEM_U32(at + 0) = t7; -L40641c: -// bdead 4004010b gp = MEM_U32(sp + 64); -s2 = v0; -if (s2 != 0) {//nop; -goto L406b44;} -//nop; -a0 = 0x1000a31c; -a1 = 0x10000774; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L406448; -a1 = a1; -L406448: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -t8 = 0x1000a340; -a0 = 0x1000077c; -MEM_U32(t8 + 0) = v0; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L40646c; -//nop; -L40646c: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a0 = 0x1000a31c; -a1 = 0x10000778; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = s4; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L406490; -a1 = a1; -L406490: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L4064d8;} -at = 0x1000a36c; -t9 = 0x1; -MEM_U32(at + 0) = t9; -//nop; -a0 = 0x10000780; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L4064b4; -a0 = a0; -L4064b4: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -t0 = 0x1000a31c; -at = 0x1000a1b4; -t0 = MEM_U32(t0 + 0); -//nop; -t2 = v0 + t0; -MEM_U32(at + 0) = t2; -goto L407154; -MEM_U32(at + 0) = t2; -L4064d8: -a0 = 0x10000788; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L4064ec; -//nop; -L4064ec: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a0 = 0x1000a31c; -a1 = 0x10000784; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = s4; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L406510; -a1 = a1; -L406510: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L406558;} -at = 0x1000a36c; -a0 = 0x1000078c; -//nop; -t1 = 0x2; -MEM_U32(at + 0) = t1; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L406534; -a0 = a0; -L406534: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -t3 = 0x1000a31c; -at = 0x1000a1b4; -t3 = MEM_U32(t3 + 0); -//nop; -t4 = v0 + t3; -MEM_U32(at + 0) = t4; -goto L407154; -MEM_U32(at + 0) = t4; -L406558: -a0 = 0x10000794; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L40656c; -//nop; -L40656c: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a0 = 0x1000a31c; -a1 = 0x10000790; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = s4; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L406590; -a1 = a1; -L406590: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L4065d8;} -at = 0x1000a36c; -a0 = 0x10000798; -//nop; -t5 = 0x3; -MEM_U32(at + 0) = t5; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L4065b4; -a0 = a0; -L4065b4: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -t6 = 0x1000a31c; -at = 0x1000a1b4; -t6 = MEM_U32(t6 + 0); -//nop; -t7 = v0 + t6; -MEM_U32(at + 0) = t7; -goto L407154; -MEM_U32(at + 0) = t7; -L4065d8: -a0 = 0x100007a0; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L4065ec; -//nop; -L4065ec: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a0 = 0x1000a31c; -a1 = 0x1000079c; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = s4; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L406610; -a1 = a1; -L406610: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L406674;} -at = 0x1000a36c; -a0 = 0x100007a4; -//nop; -t8 = 0x4; -MEM_U32(at + 0) = t8; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L406634; -a0 = a0; -L406634: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -t9 = 0x1000a31c; -at = 0x1000a1b4; -t9 = MEM_U32(t9 + 0); -t2 = 0x1000a340; -t0 = v0 + t9; -MEM_U32(at + 0) = t0; -//nop; -a1 = MEM_U32(t2 + 4); -a0 = MEM_U32(t2 + 0); -//nop; -v0 = wrapper_strcpy(mem, a0, a1); -goto L406668; -//nop; -L406668: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -goto L407154; -//nop; -L406674: -a0 = 0x100007ac; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L406688; -//nop; -L406688: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a0 = 0x1000a31c; -a1 = 0x100007a8; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = s4; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L4066ac; -a1 = a1; -L4066ac: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L4066f4;} -at = 0x1000a36c; -a0 = 0x100007b0; -//nop; -t1 = 0x5; -MEM_U32(at + 0) = t1; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L4066d0; -a0 = a0; -L4066d0: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -t3 = 0x1000a31c; -at = 0x1000a1b4; -t3 = MEM_U32(t3 + 0); -//nop; -t4 = v0 + t3; -MEM_U32(at + 0) = t4; -goto L407154; -MEM_U32(at + 0) = t4; -L4066f4: -a0 = 0x100007bc; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L406708; -//nop; -L406708: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a0 = 0x1000a31c; -a1 = 0x100007b4; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = s4; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L40672c; -a1 = a1; -L40672c: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L406774;} -at = 0x1000a36c; -a0 = 0x100007c4; -//nop; -t5 = 0x6; -MEM_U32(at + 0) = t5; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L406750; -a0 = a0; -L406750: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -t6 = 0x1000a31c; -at = 0x1000a1b4; -t6 = MEM_U32(t6 + 0); -//nop; -t7 = v0 + t6; -MEM_U32(at + 0) = t7; -goto L407154; -MEM_U32(at + 0) = t7; -L406774: -a0 = 0x100007d4; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L406788; -//nop; -L406788: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a0 = 0x1000a31c; -a1 = 0x100007cc; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = s4; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L4067ac; -a1 = a1; -L4067ac: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L406818;} -at = 0x1000a36c; -t8 = 0x1; -MEM_U32(at + 0) = t8; -at = 0x10000008; -t9 = 0x1; -MEM_U32(at + 0) = t9; -at = 0x100003f8; -t0 = 0x1; -MEM_U32(at + 0) = t0; -at = 0x10000000; -//nop; -a0 = 0x100007dc; -t2 = 0x1; -MEM_U32(at + 0) = t2; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L4067f4; -a0 = a0; -L4067f4: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -t1 = 0x1000a31c; -at = 0x1000a1b4; -t1 = MEM_U32(t1 + 0); -//nop; -t3 = v0 + t1; -MEM_U32(at + 0) = t3; -goto L407154; -MEM_U32(at + 0) = t3; -L406818: -a0 = 0x100007e8; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L40682c; -//nop; -L40682c: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a0 = 0x1000a31c; -a1 = 0x100007e0; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = s4; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L406850; -a1 = a1; -L406850: -// bdead 400c01cb gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L4068d8;} -at = 0x1000a36c; -t4 = 0x1; -MEM_U32(at + 0) = t4; -at = 0x10000008; -t5 = 0x2; -MEM_U32(at + 0) = t5; -at = 0x100003f8; -t6 = 0x1; -MEM_U32(at + 0) = t6; -at = 0x10000000; -a0 = 0x100007f0; -//nop; -t7 = 0x1; -MEM_U32(at + 0) = t7; -a0 = a0; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_printf(mem, a0, sp); -goto L406898; -a0 = a0; -L406898: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x100007fc; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L4068b4; -//nop; -L4068b4: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -t8 = 0x1000a31c; -at = 0x1000a1b4; -t8 = MEM_U32(t8 + 0); -//nop; -t9 = v0 + t8; -MEM_U32(at + 0) = t9; -goto L407154; -MEM_U32(at + 0) = t9; -L4068d8: -a0 = 0x1000080c; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L4068ec; -//nop; -L4068ec: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a0 = 0x1000a31c; -a1 = 0x10000804; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = s4; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L406910; -a1 = a1; -L406910: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L40697c;} -at = 0x1000a36c; -t0 = 0x1; -MEM_U32(at + 0) = t0; -at = 0x10000008; -t2 = 0x3; -MEM_U32(at + 0) = t2; -at = 0x100003f8; -t1 = 0x1; -MEM_U32(at + 0) = t1; -at = 0x10000000; -a0 = 0x10000814; -//nop; -t3 = 0x1; -MEM_U32(at + 0) = t3; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L406958; -a0 = a0; -L406958: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -t4 = 0x1000a31c; -at = 0x1000a1b4; -t4 = MEM_U32(t4 + 0); -//nop; -t5 = v0 + t4; -MEM_U32(at + 0) = t5; -goto L407154; -MEM_U32(at + 0) = t5; -L40697c: -a0 = 0x10000820; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L406990; -//nop; -L406990: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a0 = 0x1000a31c; -a1 = 0x1000081c; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = s4; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L4069b4; -a1 = a1; -L4069b4: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L406a14;} -at = 0x1000a36c; -t6 = 0x1; -MEM_U32(at + 0) = t6; -at = 0x10000008; -t7 = 0x1; -MEM_U32(at + 0) = t7; -at = 0x100003f8; -a0 = 0x10000824; -//nop; -t8 = 0x1; -MEM_U32(at + 0) = t8; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L4069f0; -a0 = a0; -L4069f0: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -t9 = 0x1000a31c; -at = 0x1000a1b4; -t9 = MEM_U32(t9 + 0); -//nop; -t0 = v0 + t9; -MEM_U32(at + 0) = t0; -goto L407154; -MEM_U32(at + 0) = t0; -L406a14: -a0 = 0x1000082c; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L406a28; -//nop; -L406a28: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a0 = 0x1000a31c; -a1 = 0x10000828; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = s4; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L406a4c; -a1 = a1; -L406a4c: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L406aac;} -at = 0x1000a36c; -t2 = 0x1; -MEM_U32(at + 0) = t2; -at = 0x10000008; -t1 = 0x2; -MEM_U32(at + 0) = t1; -at = 0x100003f8; -a0 = 0x10000830; -//nop; -t3 = 0x1; -MEM_U32(at + 0) = t3; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L406a88; -a0 = a0; -L406a88: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -t4 = 0x1000a31c; -at = 0x1000a1b4; -t4 = MEM_U32(t4 + 0); -//nop; -t5 = v0 + t4; -MEM_U32(at + 0) = t5; -goto L407154; -MEM_U32(at + 0) = t5; -L406aac: -a0 = 0x10000838; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L406ac0; -//nop; -L406ac0: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a0 = 0x1000a31c; -a1 = 0x10000834; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = s4; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L406ae4; -a1 = a1; -L406ae4: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L407154;} -at = 0x1000a36c; -t6 = 0x1; -MEM_U32(at + 0) = t6; -at = 0x10000008; -t7 = 0x3; -MEM_U32(at + 0) = t7; -at = 0x100003f8; -a0 = 0x1000083c; -//nop; -t8 = 0x1; -MEM_U32(at + 0) = t8; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L406b20; -a0 = a0; -L406b20: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -t9 = 0x1000a31c; -at = 0x1000a1b4; -t9 = MEM_U32(t9 + 0); -//nop; -t0 = v0 + t9; -MEM_U32(at + 0) = t0; -goto L407154; -MEM_U32(at + 0) = t0; -L406b44: -a1 = 0x10000840; -//nop; -s2 = s2 + 0x1; -a0 = s2; -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L406b60; -a1 = a1; -L406b60: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -t2 = 0x1000a340; -a0 = 0x10000848; -MEM_U32(t2 + 0) = v0; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L406b84; -//nop; -L406b84: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a1 = 0x10000844; -//nop; -a2 = s4; -a0 = s2; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L406ba4; -a1 = a1; -L406ba4: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L406bdc;} -at = 0x1000a36c; -a0 = 0x1000084c; -//nop; -t1 = 0x1; -MEM_U32(at + 0) = t1; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L406bc8; -a0 = a0; -L406bc8: -// bdead 400c000b gp = MEM_U32(sp + 64); -t3 = v0 + s2; -at = 0x1000a1b4; -MEM_U32(at + 0) = t3; -goto L407154; -MEM_U32(at + 0) = t3; -L406bdc: -a0 = 0x10000854; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L406bf0; -//nop; -L406bf0: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a1 = 0x10000850; -//nop; -a2 = s4; -a0 = s2; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L406c10; -a1 = a1; -L406c10: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L406c48;} -at = 0x1000a36c; -a0 = 0x10000858; -//nop; -t4 = 0x2; -MEM_U32(at + 0) = t4; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L406c34; -a0 = a0; -L406c34: -// bdead 400c000b gp = MEM_U32(sp + 64); -t5 = v0 + s2; -at = 0x1000a1b4; -MEM_U32(at + 0) = t5; -goto L407154; -MEM_U32(at + 0) = t5; -L406c48: -a0 = 0x10000860; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L406c5c; -//nop; -L406c5c: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a1 = 0x1000085c; -//nop; -a2 = s4; -a0 = s2; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L406c7c; -a1 = a1; -L406c7c: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L406cb4;} -at = 0x1000a36c; -a0 = 0x10000864; -//nop; -t6 = 0x3; -MEM_U32(at + 0) = t6; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L406ca0; -a0 = a0; -L406ca0: -// bdead 400c000b gp = MEM_U32(sp + 64); -t7 = v0 + s2; -at = 0x1000a1b4; -MEM_U32(at + 0) = t7; -goto L407154; -MEM_U32(at + 0) = t7; -L406cb4: -a0 = 0x1000086c; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L406cc8; -//nop; -L406cc8: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a1 = 0x10000868; -//nop; -a2 = s4; -a0 = s2; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L406ce8; -a1 = a1; -L406ce8: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L406d40;} -at = 0x1000a36c; -a0 = 0x10000870; -//nop; -t8 = 0x4; -MEM_U32(at + 0) = t8; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L406d0c; -a0 = a0; -L406d0c: -// bdead 400c000b gp = MEM_U32(sp + 64); -t9 = v0 + s2; -at = 0x1000a1b4; -t0 = 0x1000a340; -MEM_U32(at + 0) = t9; -//nop; -a1 = MEM_U32(t0 + 4); -a0 = MEM_U32(t0 + 0); -//nop; -v0 = wrapper_strcpy(mem, a0, a1); -goto L406d34; -//nop; -L406d34: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -goto L407154; -//nop; -L406d40: -a0 = 0x10000878; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L406d54; -//nop; -L406d54: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a1 = 0x10000874; -//nop; -a2 = s4; -a0 = s2; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L406d74; -a1 = a1; -L406d74: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L406dac;} -at = 0x1000a36c; -a0 = 0x1000087c; -//nop; -t2 = 0x5; -MEM_U32(at + 0) = t2; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L406d98; -a0 = a0; -L406d98: -// bdead 400c000b gp = MEM_U32(sp + 64); -t1 = v0 + s2; -at = 0x1000a1b4; -MEM_U32(at + 0) = t1; -goto L407154; -MEM_U32(at + 0) = t1; -L406dac: -a0 = 0x10000888; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L406dc0; -//nop; -L406dc0: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a1 = 0x10000880; -//nop; -a2 = s4; -a0 = s2; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L406de0; -a1 = a1; -L406de0: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L406e18;} -at = 0x1000a36c; -a0 = 0x10000890; -//nop; -t3 = 0x6; -MEM_U32(at + 0) = t3; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L406e04; -a0 = a0; -L406e04: -// bdead 400c000b gp = MEM_U32(sp + 64); -t4 = v0 + s2; -at = 0x1000a1b4; -MEM_U32(at + 0) = t4; -goto L407154; -MEM_U32(at + 0) = t4; -L406e18: -a0 = 0x100008a0; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L406e2c; -//nop; -L406e2c: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a1 = 0x10000898; -//nop; -a2 = s4; -a0 = s2; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L406e4c; -a1 = a1; -L406e4c: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L406ea8;} -at = 0x1000a36c; -t5 = 0x1; -MEM_U32(at + 0) = t5; -at = 0x10000008; -t6 = 0x1; -MEM_U32(at + 0) = t6; -at = 0x100003f8; -t7 = 0x1; -MEM_U32(at + 0) = t7; -at = 0x10000000; -a0 = 0x100008a8; -//nop; -t8 = 0x1; -MEM_U32(at + 0) = t8; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L406e94; -a0 = a0; -L406e94: -// bdead 400c000b gp = MEM_U32(sp + 64); -t9 = v0 + s2; -at = 0x1000a1b4; -MEM_U32(at + 0) = t9; -goto L407154; -MEM_U32(at + 0) = t9; -L406ea8: -a0 = 0x100008b4; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L406ebc; -//nop; -L406ebc: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a1 = 0x100008ac; -//nop; -a2 = s4; -a0 = s2; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L406edc; -a1 = a1; -L406edc: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L406f38;} -at = 0x1000a36c; -t0 = 0x1; -MEM_U32(at + 0) = t0; -at = 0x10000008; -t2 = 0x2; -MEM_U32(at + 0) = t2; -at = 0x100003f8; -t1 = 0x1; -MEM_U32(at + 0) = t1; -at = 0x10000000; -a0 = 0x100008bc; -//nop; -t3 = 0x1; -MEM_U32(at + 0) = t3; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L406f24; -a0 = a0; -L406f24: -// bdead 400c000b gp = MEM_U32(sp + 64); -t4 = v0 + s2; -at = 0x1000a1b4; -MEM_U32(at + 0) = t4; -goto L407154; -MEM_U32(at + 0) = t4; -L406f38: -a0 = 0x100008cc; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L406f4c; -//nop; -L406f4c: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a1 = 0x100008c4; -//nop; -a2 = s4; -a0 = s2; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L406f6c; -a1 = a1; -L406f6c: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L406fc8;} -at = 0x1000a36c; -t5 = 0x1; -MEM_U32(at + 0) = t5; -at = 0x10000008; -t6 = 0x3; -MEM_U32(at + 0) = t6; -at = 0x100003f8; -t7 = 0x1; -MEM_U32(at + 0) = t7; -at = 0x10000000; -a0 = 0x100008d4; -//nop; -t8 = 0x1; -MEM_U32(at + 0) = t8; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L406fb4; -a0 = a0; -L406fb4: -// bdead 400c000b gp = MEM_U32(sp + 64); -t9 = v0 + s2; -at = 0x1000a1b4; -MEM_U32(at + 0) = t9; -goto L407154; -MEM_U32(at + 0) = t9; -L406fc8: -a0 = 0x100008e0; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L406fdc; -//nop; -L406fdc: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a1 = 0x100008dc; -//nop; -a2 = s4; -a0 = s2; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L406ffc; -a1 = a1; -L406ffc: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L40704c;} -at = 0x1000a36c; -t0 = 0x1; -MEM_U32(at + 0) = t0; -at = 0x10000008; -t2 = 0x1; -MEM_U32(at + 0) = t2; -at = 0x100003f8; -a0 = 0x100008e4; -//nop; -t1 = 0x1; -MEM_U32(at + 0) = t1; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L407038; -a0 = a0; -L407038: -// bdead 400c000b gp = MEM_U32(sp + 64); -t3 = v0 + s2; -at = 0x1000a1b4; -MEM_U32(at + 0) = t3; -goto L407154; -MEM_U32(at + 0) = t3; -L40704c: -a0 = 0x100008ec; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L407060; -//nop; -L407060: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a1 = 0x100008e8; -//nop; -a2 = s4; -a0 = s2; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L407080; -a1 = a1; -L407080: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L4070d0;} -at = 0x1000a36c; -t4 = 0x1; -MEM_U32(at + 0) = t4; -at = 0x10000008; -t5 = 0x2; -MEM_U32(at + 0) = t5; -at = 0x100003f8; -a0 = 0x100008f0; -//nop; -t6 = 0x1; -MEM_U32(at + 0) = t6; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L4070bc; -a0 = a0; -L4070bc: -// bdead 400c000b gp = MEM_U32(sp + 64); -t7 = v0 + s2; -at = 0x1000a1b4; -MEM_U32(at + 0) = t7; -goto L407154; -MEM_U32(at + 0) = t7; -L4070d0: -a0 = 0x100008f8; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L4070e4; -//nop; -L4070e4: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -a1 = 0x100008f4; -//nop; -a2 = s4; -a0 = s2; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L407104; -a1 = a1; -L407104: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a36c; -goto L407154;} -at = 0x1000a36c; -t8 = 0x1; -MEM_U32(at + 0) = t8; -at = 0x10000008; -t9 = 0x3; -MEM_U32(at + 0) = t9; -at = 0x100003f8; -//nop; -a0 = 0x100008fc; -t0 = 0x1; -MEM_U32(at + 0) = t0; -a0 = a0; -v0 = wrapper_strlen(mem, a0); -goto L407140; -a0 = a0; -L407140: -// bdead 400c000b gp = MEM_U32(sp + 64); -t2 = v0 + s2; -at = 0x1000a1b4; -//nop; -MEM_U32(at + 0) = t2; -L407154: -at = 0x1000a1b4; -a0 = 0x10000900; -//nop; -MEM_U32(at + 0) = zero; -a0 = a0; -v0 = wrapper_getenv(mem, a0); -goto L40716c; -a0 = a0; -L40716c: -MEM_U32(sp + 304) = v0; -t1 = MEM_U32(sp + 304); -// bdead 400c0403 gp = MEM_U32(sp + 64); -s4 = t1 < 0x1; -if (s4 != 0) {//nop; -goto L4071b0;} -//nop; -s4 = MEM_U8(t1 + 0); -//nop; -t3 = s4 < 0x1; -s4 = t3; -if (s4 != 0) {//nop; -goto L4071b0;} -//nop; -s4 = MEM_U8(t1 + 0); -//nop; -t4 = s4 ^ 0x30; -t4 = t4 < 0x1; -s4 = t4; -L4071b0: -at = 0x10000210; -t5 = 0x1000a36c; -MEM_U32(at + 0) = s4; -t5 = MEM_U32(t5 + 0); -at = 0x1; -if (t5 != at) {//nop; -goto L4071e8;} -//nop; -//nop; -a0 = MEM_U32(sp + 352); -a1 = MEM_U32(sp + 356); -//nop; -f_save_off_command_line(mem, sp, a0, a1); -goto L4071e0; -//nop; -L4071e0: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L4071e8: -a0 = 0x10000910; -//nop; -a0 = a0; -//nop; -v0 = wrapper_getenv(mem, a0); -goto L4071fc; -//nop; -L4071fc: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a25c; -t6 = 0x1000a25c; -MEM_U32(at + 0) = v0; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L407234;} -//nop; -t7 = 0x10000924; -at = 0x1000a25c; -t7 = t7; -MEM_U32(at + 0) = t7; -goto L4072a0; -MEM_U32(at + 0) = t7; -L407234: -a0 = 0x1000a25c; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_strlen(mem, a0); -goto L407248; -//nop; -L407248: -// bdead 400c010b gp = MEM_U32(sp + 64); -at = 0x2f; -t8 = 0x1000a25c; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -t9 = v0 + t8; -t0 = MEM_U8(t9 + -1); -//nop; -if (t0 == at) {//nop; -goto L4072a0;} -//nop; -a1 = 0x10000928; -//nop; -a0 = t8; -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40728c; -a1 = a1; -L40728c: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a25c; -//nop; -MEM_U32(at + 0) = v0; -L4072a0: -a0 = 0x1000092c; -//nop; -a0 = a0; -//nop; -v0 = wrapper_getenv(mem, a0); -goto L4072b4; -//nop; -L4072b4: -// bdead 400c010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a26c; -t2 = 0x1000a26c; -MEM_U32(at + 0) = v0; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L4072ec;} -//nop; -t3 = 0x10000938; -at = 0x1000a26c; -t3 = t3; -MEM_U32(at + 0) = t3; -goto L407358; -MEM_U32(at + 0) = t3; -L4072ec: -a0 = 0x1000a26c; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_strlen(mem, a0); -goto L407300; -//nop; -L407300: -// bdead 400c010b gp = MEM_U32(sp + 64); -at = 0x2f; -t1 = 0x1000a26c; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -t4 = v0 + t1; -t5 = MEM_U8(t4 + -1); -//nop; -if (t5 == at) {//nop; -goto L407358;} -//nop; -a1 = 0x1000093c; -//nop; -a0 = t1; -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L407344; -a1 = a1; -L407344: -// bdead 400c010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a26c; -//nop; -MEM_U32(at + 0) = v0; -L407358: -a0 = 0x1000a26c; -a1 = 0x10000940; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L407374; -a1 = a1; -L407374: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a19c; -a0 = 0x1000094c; -//nop; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = wrapper_getenv(mem, a0); -goto L407394; -a0 = a0; -L407394: -// bdead 400c010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a2fc; -t6 = 0x1000a2fc; -MEM_U32(at + 0) = v0; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L4073cc;} -//nop; -t7 = 0x10000954; -at = 0x1000a2fc; -t7 = t7; -MEM_U32(at + 0) = t7; -goto L407438; -MEM_U32(at + 0) = t7; -L4073cc: -a0 = 0x1000a2fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_strlen(mem, a0); -goto L4073e0; -//nop; -L4073e0: -// bdead 400c010b gp = MEM_U32(sp + 64); -at = 0x2f; -t9 = 0x1000a2fc; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -t0 = v0 + t9; -t8 = MEM_U8(t0 + -1); -//nop; -if (t8 == at) {//nop; -goto L407438;} -//nop; -a0 = t9; -//nop; -a1 = 0x1000095c; -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L407424; -a1 = a1; -L407424: -// bdead 400c010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a2fc; -//nop; -MEM_U32(at + 0) = v0; -L407438: -a0 = 0x1000a2fc; -a1 = 0x10000960; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L407454; -a1 = a1; -L407454: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = s4; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L40746c; -//nop; -L40746c: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -a0 = 0x1000a1f4; -a1 = 0x10000970; -//nop; -MEM_U32(at + 0) = v0; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_fopen(mem, a0, a1); -goto L407494; -a1 = a1; -L407494: -// bdead 400c010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a238; -t2 = 0x1000a238; -MEM_U32(at + 0) = v0; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L407510;} -//nop; -a2 = 0x1000a2fc; -a1 = 0x10000974; -//nop; -a0 = 0x10009c28; -a2 = MEM_U32(a2 + 0); -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_sprintf(mem, a0, a1, sp); -goto L4074d4; -a1 = a1; -L4074d4: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x10009c28; -//nop; -wrapper_perror(mem, a0); -goto L4074ec; -//nop; -L4074ec: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L407504; -//nop; -L407504: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -goto L407548; -//nop; -L407510: -a0 = 0x1000a238; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_fclose(mem, a0); -goto L407524; -//nop; -L407524: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L407540; -//nop; -L407540: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L407548: -a0 = 0x10000994; -//nop; -a0 = a0; -//nop; -v0 = wrapper_getenv(mem, a0); -goto L40755c; -//nop; -L40755c: -// bdead 400c000b gp = MEM_U32(sp + 64); -t3 = MEM_U32(sp + 352); -at = 0x1000a30c; -s0 = 0x1; -MEM_U32(at + 0) = v0; -at = (int)s0 < (int)t3; -if (at == 0) {//nop; -goto L407798;} -//nop; -L40757c: -t4 = MEM_U32(sp + 356); -t5 = s0 << 2; -a1 = 0x100009a4; -//nop; -t1 = t4 + t5; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L40759c; -a1 = a1; -L40759c: -// bdead 400e000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4075dc;} -//nop; -t7 = 0x10000230; -at = 0x10000324; -t7 = MEM_U32(t7 + 0); -t6 = 0x1; -MEM_U32(at + 0) = t6; -at = (int)t7 < (int)0x3; -if (at == 0) {//nop; -goto L407798;} -//nop; -t0 = 0x100009b0; -at = 0x10000400; -t0 = t0; -MEM_U32(at + 0) = t0; -goto L407798; -MEM_U32(at + 0) = t0; -L4075dc: -t8 = MEM_U32(sp + 356); -t9 = s0 << 2; -t2 = t8 + t9; -//nop; -a1 = 0x100009b4; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4075fc; -a1 = a1; -L4075fc: -// bdead 400e000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000424; -goto L407624;} -at = 0x10000424; -t3 = 0x1; -t4 = 0x100009bc; -MEM_U32(at + 0) = t3; -at = 0x10000400; -t4 = t4; -MEM_U32(at + 0) = t4; -goto L407798; -MEM_U32(at + 0) = t4; -L407624: -t5 = MEM_U32(sp + 356); -t1 = s0 << 2; -a1 = 0x100009c0; -//nop; -t6 = t5 + t1; -a0 = MEM_U32(t6 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L407644; -a1 = a1; -L407644: -// bdead 400e000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x100002dc; -goto L407674;} -at = 0x100002dc; -t7 = 0x1; -MEM_U32(at + 0) = t7; -at = 0x10000340; -t0 = 0x100009c8; -MEM_U32(at + 0) = zero; -at = 0x10000400; -t0 = t0; -MEM_U32(at + 0) = t0; -goto L407798; -MEM_U32(at + 0) = t0; -L407674: -t8 = MEM_U32(sp + 356); -t9 = s0 << 2; -t2 = t8 + t9; -//nop; -a1 = 0x100009cc; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L407694; -a1 = a1; -L407694: -// bdead 400e000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x100002f4; -goto L4076c4;} -at = 0x100002f4; -t3 = 0x1; -t4 = 0x100009d4; -MEM_U32(at + 0) = t3; -at = 0x10000400; -t4 = t4; -MEM_U32(at + 0) = t4; -at = 0x10000340; -MEM_U32(at + 0) = zero; -goto L407798; -MEM_U32(at + 0) = zero; -L4076c4: -t5 = MEM_U32(sp + 356); -t1 = s0 << 2; -a1 = 0x100009d8; -//nop; -t6 = t5 + t1; -a0 = MEM_U32(t6 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4076e4; -a1 = a1; -L4076e4: -// bdead 400e000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000034c; -goto L407714;} -at = 0x1000034c; -t7 = 0x1; -MEM_U32(at + 0) = t7; -at = 0x10000340; -t0 = 0x100009e0; -MEM_U32(at + 0) = zero; -at = 0x10000400; -t0 = t0; -MEM_U32(at + 0) = t0; -goto L407798; -MEM_U32(at + 0) = t0; -L407714: -t8 = MEM_U32(sp + 356); -t9 = s0 << 2; -t2 = t8 + t9; -//nop; -a1 = 0x100009e4; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L407734; -a1 = a1; -L407734: -// bdead 400e000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000037c; -goto L40774c;} -at = 0x1000037c; -t3 = 0x1; -MEM_U32(at + 0) = t3; -goto L407798; -MEM_U32(at + 0) = t3; -L40774c: -t4 = MEM_U32(sp + 356); -t5 = s0 << 2; -a1 = 0x100009ec; -//nop; -t1 = t4 + t5; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L40776c; -a1 = a1; -L40776c: -// bdead 400e000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000230; -goto L407784;} -at = 0x10000230; -t6 = 0x3; -MEM_U32(at + 0) = t6; -goto L407798; -MEM_U32(at + 0) = t6; -L407784: -t7 = MEM_U32(sp + 352); -s0 = s0 + 0x1; -at = (int)s0 < (int)t7; -if (at != 0) {//nop; -goto L40757c;} -//nop; -L407798: -t0 = 0x1000a36c; -at = 0x1; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == at) {at = 0x2; -goto L4077c4;} -at = 0x2; -if (t0 == at) {at = 0x3; -goto L4077c4;} -at = 0x3; -if (t0 == at) {at = 0x4; -goto L4077c4;} -at = 0x4; -if (t0 != at) {at = 0x1000a1a0; -goto L4077dc;} -L4077c4: -at = 0x1000a1a0; -t8 = 0x1; -MEM_U32(at + 0) = t8; -at = 0x1000a1a4; -MEM_U32(at + 0) = zero; -goto L4077f4; -MEM_U32(at + 0) = zero; -L4077dc: -at = 0x1000a1a0; -t9 = 0x1; -MEM_U32(at + 0) = zero; -at = 0x1000a1a4; -//nop; -MEM_U32(at + 0) = t9; -L4077f4: -t2 = 0x1000a340; -at = 0x1000a32c; -//nop; -t3 = MEM_U32(t2 + 0); -a0 = 0x1000a588; -MEM_U32(at + 0) = t3; -f_mklist(mem, sp, a0); -goto L407810; -MEM_U32(at + 0) = t3; -L407810: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a598; -//nop; -f_mklist(mem, sp, a0); -goto L407828; -//nop; -L407828: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a578; -//nop; -f_mklist(mem, sp, a0); -goto L407840; -//nop; -L407840: -t4 = MEM_U32(sp + 352); -s0 = 0x1; -// bdead 400e2103 gp = MEM_U32(sp + 64); -at = (int)s0 < (int)t4; -if (at == 0) {//nop; -goto L407c1c;} -//nop; -L407858: -t5 = MEM_U32(sp + 356); -t1 = s0 << 2; -t6 = t5 + t1; -t7 = MEM_U32(t6 + 0); -at = 0x2d; -t0 = MEM_U8(t7 + 0); -//nop; -if (t0 != at) {//nop; -goto L407c08;} -//nop; -t8 = s0 << 2; -t9 = t5 + t8; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x100009f0; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L407898; -a1 = a1; -L407898: -// bdead 400e018b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4078b0;} -//nop; -t2 = 0x1; -MEM_U32(sp + 332) = t2; -goto L407c08; -MEM_U32(sp + 332) = t2; -L4078b0: -t3 = MEM_U32(sp + 356); -t4 = s0 << 2; -t1 = t3 + t4; -t6 = MEM_U32(t1 + 0); -at = 0x45; -s4 = MEM_U8(t6 + 1); -//nop; -if (s4 == at) {at = 0x4c; -goto L4078e4;} -at = 0x4c; -if (s4 == at) {//nop; -goto L407a90;} -//nop; -//nop; -goto L407c08; -//nop; -L4078e4: -t7 = MEM_U32(sp + 356); -t0 = s0 << 2; -t5 = t7 + t0; -t8 = MEM_U32(t5 + 0); -//nop; -t9 = MEM_U8(t8 + 3); -//nop; -if (t9 != 0) {//nop; -goto L407c08;} -//nop; -t2 = s0 << 2; -t3 = t7 + t2; -t4 = MEM_U32(t3 + 0); -at = 0x42; -t1 = MEM_U8(t4 + 2); -//nop; -if (t1 == at) {//nop; -goto L407948;} -//nop; -t6 = s0 << 2; -t0 = t7 + t6; -t5 = MEM_U32(t0 + 0); -at = 0x4c; -t8 = MEM_U8(t5 + 2); -//nop; -if (t8 != at) {//nop; -goto L407c08;} -//nop; -L407948: -t9 = MEM_U32(sp + 356); -t2 = s0 << 2; -t3 = t9 + t2; -t4 = MEM_U32(t3 + 0); -at = 0x42; -t1 = MEM_U8(t4 + 2); -//nop; -if (t1 != at) {//nop; -goto L4079f0;} -//nop; -t7 = 0x1000027c; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L4079e4;} -//nop; -t6 = 0x1000041c; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L4079e4;} -//nop; -t0 = 0x100009fc; -//nop; -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4079c4; -MEM_U32(sp + 16) = zero; -L4079c4: -// bdead 400e0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4079dc; -//nop; -L4079dc: -// bdead 400e0003 gp = MEM_U32(sp + 64); -//nop; -L4079e4: -at = 0x1000041c; -MEM_U32(at + 0) = zero; -goto L407a74; -MEM_U32(at + 0) = zero; -L4079f0: -t5 = 0x1000027c; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L407a68;} -//nop; -t8 = 0x1000041c; -at = 0x1; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == at) {//nop; -goto L407a68;} -//nop; -t9 = 0x10000a24; -a0 = 0x1; -t9 = t9; -MEM_U32(sp + 20) = t9; -//nop; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L407a48; -MEM_U32(sp + 16) = zero; -L407a48: -// bdead 400e0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L407a60; -//nop; -L407a60: -// bdead 400e0003 gp = MEM_U32(sp + 64); -//nop; -L407a68: -at = 0x1000041c; -t2 = 0x1; -MEM_U32(at + 0) = t2; -L407a74: -//nop; -//nop; -//nop; -f_newrunlib(mem, sp); -goto L407a84; -//nop; -L407a84: -// bdead 400e0103 gp = MEM_U32(sp + 64); -//nop; -goto L407c08; -//nop; -L407a90: -t3 = MEM_U32(sp + 356); -t4 = s0 << 2; -t1 = t3 + t4; -t7 = MEM_U32(t1 + 0); -//nop; -t6 = MEM_U8(t7 + 2); -//nop; -if (t6 != 0) {//nop; -goto L407b44;} -//nop; -t0 = MEM_U32(sp + 352); -t5 = s0 + 0x1; -at = (int)t5 < (int)t0; -if (at == 0) {//nop; -goto L407b0c;} -//nop; -t8 = s0 << 2; -t9 = t3 + t8; -t2 = MEM_U32(t9 + 4); -at = 0x2d; -t4 = MEM_U8(t2 + 0); -//nop; -if (t4 == at) {//nop; -goto L407b0c;} -//nop; -t1 = s0 << 2; -//nop; -t7 = t3 + t1; -a0 = MEM_U32(t7 + 4); -//nop; -v0 = f_isdir(mem, sp, a0); -goto L407b00; -//nop; -L407b00: -// bdead 400e018b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L407b18;} -//nop; -L407b0c: -t6 = 0x1; -MEM_U32(sp + 332) = t6; -goto L407c08; -MEM_U32(sp + 332) = t6; -L407b18: -t0 = MEM_U32(sp + 356); -s0 = s0 + 0x1; -t5 = s0 << 2; -//nop; -t8 = t0 + t5; -a0 = MEM_U32(t8 + 0); -a1 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L407b38; -a1 = zero; -L407b38: -// bdead 400e000b gp = MEM_U32(sp + 64); -MEM_U32(sp + 300) = v0; -goto L407b6c; -MEM_U32(sp + 300) = v0; -L407b44: -t9 = MEM_U32(sp + 356); -t2 = s0 << 2; -t4 = t9 + t2; -a0 = MEM_U32(t4 + 0); -//nop; -a1 = zero; -a0 = a0 + 0x2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L407b64; -a0 = a0 + 0x2; -L407b64: -// bdead 400e000b gp = MEM_U32(sp + 64); -MEM_U32(sp + 300) = v0; -L407b6c: -//nop; -a0 = MEM_U32(sp + 300); -//nop; -v0 = wrapper_strlen(mem, a0); -goto L407b7c; -//nop; -L407b7c: -t3 = MEM_U32(sp + 300); -// bdead 400e100b gp = MEM_U32(sp + 64); -t1 = v0 + t3; -t7 = MEM_U8(t1 + -1); -at = 0x2f; -if (t7 != at) {//nop; -goto L407bbc;} -//nop; -//nop; -a0 = t3; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L407ba8; -//nop; -L407ba8: -t6 = MEM_U32(sp + 300); -s4 = v0; -// bdead 402e8003 gp = MEM_U32(sp + 64); -t0 = t6 + s4; -MEM_U8(t0 + -1) = (uint8_t)zero; -L407bbc: -//nop; -a0 = 0x1000a578; -a1 = MEM_U32(sp + 300); -//nop; -f_addstr(mem, sp, a0, a1); -goto L407bd0; -//nop; -L407bd0: -// bdead 400e0003 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 300); -//nop; -a0 = 0x1000a588; -//nop; -f_addstr(mem, sp, a0, a1); -goto L407be8; -//nop; -L407be8: -// bdead 400e0003 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 300); -//nop; -a0 = 0x1000a598; -//nop; -f_addstr(mem, sp, a0, a1); -goto L407c00; -//nop; -L407c00: -// bdead 400e0103 gp = MEM_U32(sp + 64); -//nop; -L407c08: -t5 = MEM_U32(sp + 352); -s0 = s0 + 0x1; -at = (int)s0 < (int)t5; -if (at != 0) {//nop; -goto L407858;} -//nop; -L407c1c: -t8 = MEM_U32(sp + 332); -//nop; -if (t8 != 0) {//nop; -goto L407d98;} -//nop; -t9 = 0x10000324; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L407c8c;} -//nop; -t2 = 0x100002dc; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L407c8c;} -//nop; -t4 = 0x100002f4; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L407c8c;} -//nop; -t1 = 0x1000034c; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L407ccc;} -//nop; -L407c8c: -a0 = 0x1000a25c; -a1 = 0x10000a4c; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L407ca8; -a1 = a1; -L407ca8: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a588; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L407cc0; -a1 = s4; -L407cc0: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -goto L407d98; -//nop; -L407ccc: -t7 = 0x1000037c; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L407d24;} -//nop; -a0 = 0x1000a25c; -a1 = 0x10000a60; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L407d00; -a1 = a1; -L407d00: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a598; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L407d18; -a1 = s4; -L407d18: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -goto L407d98; -//nop; -L407d24: -a0 = 0x1000a25c; -a1 = 0x10000a6c; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L407d40; -a1 = a1; -L407d40: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a578; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L407d58; -a1 = s4; -L407d58: -// bdead 400c0103 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x1000a25c; -a1 = 0x10000a74; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L407d78; -a1 = a1; -L407d78: -// bdead 400c000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a578; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L407d90; -a1 = s4; -L407d90: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L407d98: -a0 = 0x1000a1ac; -a2 = 0x1000a1b4; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -a1 = zero; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L407db4; -a1 = zero; -L407db4: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a1 = zero; -a2 = 0x1000a1b4; -a0 = 0x10000a78; -//nop; -a2 = MEM_U32(a2 + 0); -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L407dd4; -a0 = a0; -L407dd4: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a25c; -a0 = 0x10000a7c; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -v0 = wrapper_strcmp(mem, a0, a1); -goto L407df4; -a0 = a0; -L407df4: -// bdead 400c010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L407e58;} -//nop; -a0 = 0x1000a25c; -a1 = 0x10000a80; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L407e1c; -a1 = a1; -L407e1c: -// bdead 400c010b gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x1000a25c; -at = 0x1000008c; -a1 = 0x10000a90; -//nop; -a0 = MEM_U32(a0 + 0); -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L407e44; -a1 = a1; -L407e44: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -at = 0x10000084; -//nop; -MEM_U32(at + 0) = v0; -L407e58: -t3 = 0x1000a36c; -at = 0x1; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {at = 0x100002b0; -goto L407e78;} -at = 0x100002b0; -MEM_U32(at + 0) = zero; -goto L407e88; -MEM_U32(at + 0) = zero; -L407e78: -t6 = 0x10000a9c; -at = 0x100001e0; -t6 = t6; -MEM_U32(at + 0) = t6; -L407e88: -t0 = 0x10000aa4; -at = 0x1000a27c; -t0 = t0; -MEM_U32(at + 0) = t0; -at = 0x10000370; -//nop; -t5 = 0x1; -a0 = MEM_U32(sp + 352); -a1 = MEM_U32(sp + 356); -MEM_U32(at + 0) = t5; -f_process_config(mem, sp, a0, a1); -goto L407eb4; -MEM_U32(at + 0) = t5; -L407eb4: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a0 = MEM_U32(sp + 352); -a1 = MEM_U32(sp + 356); -//nop; -a0 = a0 + 0xffffffff; -a1 = a1 + 0x4; -f_parse_command(mem, sp, a0, a1); -goto L407ed0; -a1 = a1 + 0x4; -L407ed0: -// bdead 400c0103 gp = MEM_U32(sp + 64); -//nop; -t8 = 0x100001fc; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L40803c;} -//nop; -t9 = 0x10000204; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L407f18;} -//nop; -t2 = 0x10000aac; -at = 0x10000204; -t2 = t2; -MEM_U32(at + 0) = t2; -L407f18: -t4 = 0x10000200; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L407f3c;} -//nop; -s4 = 0x10000ab0; -s4 = s4; -goto L407f48; -s4 = s4; -L407f3c: -s4 = 0x10000ab8; -//nop; -s4 = s4; -L407f48: -a1 = 0x10000204; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = s4; -a2 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L407f60; -a2 = zero; -L407f60: -// bdead 400c000b gp = MEM_U32(sp + 64); -at = 0x1; -t1 = 0x1000a36c; -MEM_U32(sp + 328) = v0; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L407fa0;} -//nop; -//nop; -a0 = 0x1000a2f0; -a1 = MEM_U32(sp + 328); -//nop; -f_addstr(mem, sp, a0, a1); -goto L407f94; -//nop; -L407f94: -// bdead 400c0103 gp = MEM_U32(sp + 64); -//nop; -goto L40803c; -//nop; -L407fa0: -t7 = 0x10000200; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L407fcc;} -//nop; -t3 = 0x10000ac0; -//nop; -t3 = t3; -MEM_U32(sp + 324) = t3; -goto L407fdc; -MEM_U32(sp + 324) = t3; -L407fcc: -t6 = 0x10000acc; -//nop; -t6 = t6; -MEM_U32(sp + 324) = t6; -L407fdc: -t0 = 0x10000204; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -t5 = MEM_U8(t0 + 0); -//nop; -if (t5 == 0) {//nop; -goto L408020;} -//nop; -a1 = 0x10000ad4; -//nop; -a0 = MEM_U32(sp + 324); -a2 = t0; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L408018; -a1 = a1; -L408018: -// bdead 400c000b gp = MEM_U32(sp + 64); -MEM_U32(sp + 324) = v0; -L408020: -//nop; -a0 = 0x1000a330; -a1 = MEM_U32(sp + 324); -//nop; -f_addstr(mem, sp, a0, a1); -goto L408034; -//nop; -L408034: -// bdead 400c0103 gp = MEM_U32(sp + 64); -//nop; -L40803c: -t8 = 0x1000035c; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L408144;} -//nop; -t9 = 0x10000280; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L40809c;} -//nop; -a0 = 0x1000a25c; -a1 = 0x10000ad8; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L408088; -a1 = a1; -L408088: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -at = 0x10000084; -MEM_U32(at + 0) = v0; -goto L4080f4; -MEM_U32(at + 0) = v0; -L40809c: -a0 = 0x1000a25c; -a1 = 0x10000ae8; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4080b8; -a1 = a1; -L4080b8: -// bdead 400c010b gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x1000a25c; -at = 0x1000008c; -a1 = 0x10000af8; -//nop; -a0 = MEM_U32(a0 + 0); -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4080e0; -a1 = a1; -L4080e0: -// bdead 400c000b gp = MEM_U32(sp + 64); -//nop; -at = 0x10000084; -//nop; -MEM_U32(at + 0) = v0; -L4080f4: -t2 = 0x1000a1b4; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L40812c;} -//nop; -a0 = 0x10000b04; -//nop; -a1 = zero; -a2 = t2; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L408124; -a0 = a0; -L408124: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L40812c: -//nop; -//nop; -//nop; -f_newrunlib(mem, sp); -goto L40813c; -//nop; -L40813c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L408144: -t4 = 0x100002f0; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L40818c;} -//nop; -t1 = 0x100002f4; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L40818c;} -//nop; -t7 = 0x1000030c; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L40827c;} -//nop; -L40818c: -t3 = 0x10000340; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L40827c;} -//nop; -t6 = 0x10000324; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L4081ec;} -//nop; -t5 = 0x10000348; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L4081ec;} -//nop; -t0 = 0x10000384; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L40827c;} -//nop; -L4081ec: -t8 = 0x10000324; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {at = 0x10000324; -goto L408218;} -at = 0x10000324; -t9 = 0x1; -MEM_U32(at + 0) = t9; -at = 0x10000318; -t2 = 0x1; -MEM_U32(at + 0) = t2; -L408218: -at = 0x10000384; -t4 = 0x1000031c; -MEM_U32(at + 0) = zero; -at = 0x10000348; -t4 = MEM_U32(t4 + 0); -MEM_U32(at + 0) = zero; -if (t4 != 0) {//nop; -goto L40827c;} -//nop; -a1 = 0x10000b08; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40824c; -a1 = a1; -L40824c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000b14; -//nop; -a0 = 0x1000a2c0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408268; -a1 = a1; -L408268: -// bdead 400c0003 gp = MEM_U32(sp + 64); -t1 = 0x1; -at = 0x1000031c; -//nop; -MEM_U32(at + 0) = t1; -L40827c: -t7 = 0x10000324; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L4082f0;} -//nop; -t3 = 0x1000031c; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L4082f0;} -//nop; -a1 = 0x10000b20; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4082c0; -a1 = a1; -L4082c0: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000b2c; -//nop; -a0 = 0x1000a2c0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4082dc; -a1 = a1; -L4082dc: -// bdead 400c0003 gp = MEM_U32(sp + 64); -t6 = 0x1; -at = 0x1000031c; -MEM_U32(at + 0) = t6; -goto L408340; -MEM_U32(at + 0) = t6; -L4082f0: -t5 = 0x10000348; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L408340;} -//nop; -a1 = 0x10000b38; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40831c; -a1 = a1; -L40831c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000b48; -//nop; -a0 = 0x1000a2c0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408338; -a1 = a1; -L408338: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L408340: -t0 = 0x1000023c; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L4083e8;} -//nop; -t8 = 0x1000a520; -//nop; -t8 = MEM_U32(t8 + 4); -//nop; -if (t8 != 0) {//nop; -goto L4083e8;} -//nop; -t9 = 0x1000a540; -//nop; -t9 = MEM_U32(t9 + 4); -//nop; -if (t9 != 0) {//nop; -goto L4083e8;} -//nop; -t2 = 0x1000a530; -//nop; -t2 = MEM_U32(t2 + 4); -//nop; -if (t2 != 0) {//nop; -goto L4083e8;} -//nop; -t4 = 0x10000b58; -//nop; -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4083c8; -MEM_U32(sp + 16) = zero; -L4083c8: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4083e0; -//nop; -L4083e0: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L4083e8: -t1 = 0x10000398; -at = 0x1; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L408420;} -//nop; -a1 = 0x10000b84; -//nop; -a0 = 0x1000a330; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408414; -a1 = a1; -L408414: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -goto L408454; -//nop; -L408420: -t7 = 0x10000398; -at = 0x2; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L408454;} -//nop; -a1 = 0x10000b88; -//nop; -a0 = 0x1000a330; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40844c; -a1 = a1; -L40844c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L408454: -t3 = 0x10000394; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L4084cc;} -//nop; -t6 = 0x10000228; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L40849c;} -//nop; -t5 = 0x1000022c; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L4084cc;} -//nop; -L40849c: -t0 = 0x10000b8c; -//nop; -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4084c4; -MEM_U32(sp + 16) = zero; -L4084c4: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L4084cc: -t8 = 0x1000a150; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L408510;} -//nop; -t9 = 0x1000021c; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L408510;} -//nop; -t2 = t8 & 0x1; -if (t2 == 0) {at = 0x1000a150; -goto L408510;} -at = 0x1000a150; -t4 = t8 | 0x4; -MEM_U32(at + 0) = t4; -L408510: -t1 = 0x1000a188; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L408554;} -//nop; -t7 = 0x1000021c; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L408554;} -//nop; -t3 = t1 & 0x1; -if (t3 == 0) {at = 0x1000a188; -goto L408554;} -at = 0x1000a188; -t6 = t1 | 0x4; -MEM_U32(at + 0) = t6; -L408554: -t5 = 0x10000004; -at = 0x1; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == at) {at = 0x2; -goto L408574;} -at = 0x2; -if (t5 != at) {//nop; -goto L408590;} -//nop; -L408574: -t0 = 0x10000b9c; -at = 0x1000a254; -t0 = t0; -MEM_U32(at + 0) = t0; -at = 0x100001e8; -t9 = 0x1; -MEM_U32(at + 0) = t9; -L408590: -a0 = 0x10000ba4; -//nop; -a1 = zero; -a2 = zero; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L4085a8; -a0 = a0; -L4085a8: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -t2 = 0x1000a570; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L408630;} -//nop; -t8 = 0x1000a36c; -at = 0x1; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L408630;} -//nop; -t4 = 0x10000004; -at = 0x1; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == at) {at = 0x2; -goto L408600;} -at = 0x2; -if (t4 != at) {//nop; -goto L408630;} -//nop; -L408600: -t7 = 0x10000ba8; -//nop; -t7 = t7; -MEM_U32(sp + 20) = t7; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L408628; -MEM_U32(sp + 16) = zero; -L408628: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L408630: -t3 = 0x10000230; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -at = (int)t3 < (int)0x3; -if (at != 0) {//nop; -goto L40864c;} -//nop; -L40864c: -t1 = 0x10000340; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L4086e4;} -//nop; -a0 = 0x10000400; -a1 = 0x10000c00; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L40867c; -a1 = a1; -L40867c: -// bdead 400c000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4086e4;} -//nop; -t6 = 0x10000230; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -at = (int)t6 < (int)0x3; -if (at == 0) {//nop; -goto L4086e4;} -//nop; -t5 = 0x10000c04; -//nop; -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4086cc; -MEM_U32(sp + 16) = zero; -L4086cc: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -t0 = 0x10000c4c; -at = 0x10000400; -t0 = t0; -MEM_U32(at + 0) = t0; -L4086e4: -t9 = 0x1000037c; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L408768;} -//nop; -t2 = 0x10000324; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L408768;} -//nop; -t8 = 0x10000c50; -//nop; -t8 = t8; -MEM_U32(sp + 20) = t8; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L40873c; -MEM_U32(sp + 16) = zero; -L40873c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -t4 = 0x1; -at = 0x10000324; -t7 = 0x10000c8c; -MEM_U32(at + 0) = zero; -at = 0x10000340; -t7 = t7; -MEM_U32(at + 0) = t4; -at = 0x10000400; -//nop; -MEM_U32(at + 0) = t7; -L408768: -//nop; -//nop; -//nop; -f_get_host_chiptype(mem, sp); -goto L408778; -//nop; -L408778: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -t3 = 0x1000041c; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L4089e4;} -//nop; -a1 = 0x10000c90; -//nop; -a0 = 0x1000a270; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4087ac; -a1 = a1; -L4087ac: -// bdead 400c0003 gp = MEM_U32(sp + 64); -at = 0x1; -t1 = 0x1000a36c; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L4087ec;} -//nop; -t6 = 0x10000004; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {at = 0x3; -goto L4087ec;} -at = 0x3; -if (t6 != at) {//nop; -goto L408808;} -//nop; -L4087ec: -a1 = 0x10000c9c; -//nop; -a0 = 0x1000a270; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408800; -a1 = a1; -L408800: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L408808: -t5 = 0x1000a36c; -at = 0x1; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L40887c;} -//nop; -t0 = 0x10000004; -at = 0x1; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == at) {at = 0x2; -goto L408860;} -at = 0x2; -if (t0 == at) {at = 0x3; -goto L408860;} -at = 0x3; -if (t0 != at) {//nop; -goto L40887c;} -//nop; -t9 = 0x10000424; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L40887c;} -//nop; -L408860: -a1 = 0x10000ca8; -//nop; -a0 = 0x1000a270; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408874; -a1 = a1; -L408874: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L40887c: -t2 = 0x1000a36c; -at = 0x1; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L4088c8;} -//nop; -t8 = 0x10000004; -at = 0x2; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L4088c8;} -//nop; -a1 = 0x10000cb8; -//nop; -a0 = 0x1000a270; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4088c0; -a1 = a1; -L4088c0: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L4088c8: -a1 = 0x10000ccc; -//nop; -a0 = 0x1000a310; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4088dc; -a1 = a1; -L4088dc: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000cd0; -//nop; -a0 = 0x1000a320; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4088f8; -a1 = a1; -L4088f8: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000cd4; -//nop; -a0 = 0x1000a330; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408914; -a1 = a1; -L408914: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000cd8; -//nop; -a0 = 0x1000a408; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408930; -a1 = a1; -L408930: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000cdc; -//nop; -a0 = 0x1000a428; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40894c; -a1 = a1; -L40894c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000ce0; -//nop; -a0 = 0x1000a418; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408968; -a1 = a1; -L408968: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000ce4; -//nop; -a0 = 0x1000a470; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408984; -a1 = a1; -L408984: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000ce8; -//nop; -a0 = 0x1000a4b0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4089a0; -a1 = a1; -L4089a0: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000cec; -//nop; -a0 = 0x1000a4c0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4089bc; -a1 = a1; -L4089bc: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000cf0; -//nop; -a0 = 0x1000a4d0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4089d8; -a1 = a1; -L4089d8: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -goto L408c64; -//nop; -L4089e4: -a1 = 0x10000cf4; -//nop; -a0 = 0x1000a270; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4089f8; -a1 = a1; -L4089f8: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d00; -//nop; -a0 = 0x1000a270; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408a14; -a1 = a1; -L408a14: -// bdead 400c0003 gp = MEM_U32(sp + 64); -at = 0x1; -t4 = 0x1000a36c; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L408a54;} -//nop; -t7 = 0x10000004; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {at = 0x3; -goto L408a54;} -at = 0x3; -if (t7 != at) {//nop; -goto L408a70;} -//nop; -L408a54: -a1 = 0x10000d0c; -//nop; -a0 = 0x1000a270; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408a68; -a1 = a1; -L408a68: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L408a70: -t3 = 0x1000a36c; -at = 0x1; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L408ae4;} -//nop; -t1 = 0x10000004; -at = 0x1; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == at) {at = 0x2; -goto L408ac8;} -at = 0x2; -if (t1 == at) {at = 0x3; -goto L408ac8;} -at = 0x3; -if (t1 != at) {//nop; -goto L408ae4;} -//nop; -t6 = 0x10000424; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L408ae4;} -//nop; -L408ac8: -a1 = 0x10000d18; -//nop; -a0 = 0x1000a270; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408adc; -a1 = a1; -L408adc: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L408ae4: -t5 = 0x1000a36c; -at = 0x1; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L408b30;} -//nop; -t0 = 0x10000004; -at = 0x2; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L408b30;} -//nop; -a1 = 0x10000d28; -//nop; -a0 = 0x1000a270; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408b28; -a1 = a1; -L408b28: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L408b30: -a1 = 0x10000d3c; -//nop; -a0 = 0x1000a310; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408b44; -a1 = a1; -L408b44: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d40; -//nop; -a0 = 0x1000a320; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408b60; -a1 = a1; -L408b60: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d44; -//nop; -a0 = 0x1000a330; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408b7c; -a1 = a1; -L408b7c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d48; -//nop; -a0 = 0x1000a408; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408b98; -a1 = a1; -L408b98: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d4c; -//nop; -a0 = 0x1000a428; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408bb4; -a1 = a1; -L408bb4: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d50; -//nop; -a0 = 0x1000a418; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408bd0; -a1 = a1; -L408bd0: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d54; -//nop; -a0 = 0x1000a4c0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408bec; -a1 = a1; -L408bec: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d58; -//nop; -a0 = 0x1000a470; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408c08; -a1 = a1; -L408c08: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d5c; -//nop; -a0 = 0x1000a4b0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408c24; -a1 = a1; -L408c24: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d60; -//nop; -a0 = 0x1000a4d0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408c40; -a1 = a1; -L408c40: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d64; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408c5c; -a1 = a1; -L408c5c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L408c64: -s4 = 0x1000021c; -//nop; -s4 = MEM_U32(s4 + 0); -//nop; -if (s4 == 0) {at = 0x1; -goto L408c9c;} -at = 0x1; -if (s4 == at) {at = 0x2; -goto L408e24;} -at = 0x2; -if (s4 == at) {at = 0x3; -goto L408e7c;} -at = 0x3; -if (s4 == at) {//nop; -goto L408ed4;} -//nop; -//nop; -goto L408f3c; -//nop; -L408c9c: -a1 = 0x10000d68; -//nop; -a0 = 0x1000a310; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408cb0; -a1 = a1; -L408cb0: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d70; -//nop; -a0 = 0x1000a320; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408ccc; -a1 = a1; -L408ccc: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d74; -//nop; -a0 = 0x1000a330; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408ce8; -a1 = a1; -L408ce8: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d78; -//nop; -a0 = 0x1000a428; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408d04; -a1 = a1; -L408d04: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d7c; -//nop; -a0 = 0x1000a490; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408d20; -a1 = a1; -L408d20: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d80; -//nop; -a0 = 0x1000a4a0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408d3c; -a1 = a1; -L408d3c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d84; -//nop; -a0 = 0x1000a4b0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408d58; -a1 = a1; -L408d58: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d88; -//nop; -a0 = 0x1000a470; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408d74; -a1 = a1; -L408d74: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d8c; -//nop; -a0 = 0x1000a480; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408d90; -a1 = a1; -L408d90: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d90; -//nop; -a0 = 0x1000a4c0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408dac; -a1 = a1; -L408dac: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d94; -//nop; -a0 = 0x1000a4d0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408dc8; -a1 = a1; -L408dc8: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000d98; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408de4; -a1 = a1; -L408de4: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -t9 = 0x10000124; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L408f3c;} -//nop; -a1 = 0x10000d9c; -//nop; -a0 = 0x1000a2f0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408e18; -a1 = a1; -L408e18: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -goto L408f3c; -//nop; -L408e24: -a1 = 0x10000da4; -//nop; -a0 = 0x1000a2f0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408e38; -a1 = a1; -L408e38: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000dac; -//nop; -a0 = 0x1000a310; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408e54; -a1 = a1; -L408e54: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x10000db4; -//nop; -a0 = a0; -//nop; -f_add_info(mem, sp, a0); -goto L408e70; -//nop; -L408e70: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -goto L408f3c; -//nop; -L408e7c: -a1 = 0x10000db8; -//nop; -a0 = 0x1000a2f0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408e90; -a1 = a1; -L408e90: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000dc0; -//nop; -a0 = 0x1000a310; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408eac; -a1 = a1; -L408eac: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x10000dc8; -//nop; -a0 = a0; -//nop; -f_add_info(mem, sp, a0); -goto L408ec8; -//nop; -L408ec8: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -goto L408f3c; -//nop; -L408ed4: -t2 = 0x1000021c; -at = 0x1000021c; -t2 = MEM_U32(t2 + 0); -a1 = 0x10000dcc; -//nop; -a0 = 0x1000a2f0; -t8 = t2 + 0x1; -MEM_U32(at + 0) = t8; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408efc; -a1 = a1; -L408efc: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000dd4; -//nop; -a0 = 0x1000a310; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L408f18; -a1 = a1; -L408f18: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x10000ddc; -//nop; -a0 = a0; -//nop; -f_add_info(mem, sp, a0); -goto L408f34; -//nop; -L408f34: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L408f3c: -t4 = 0x1000a150; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L408fb4;} -//nop; -t7 = 0x100002c0; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L408fb4;} -//nop; -t3 = 0x10000de0; -//nop; -t3 = t3; -MEM_U32(sp + 20) = t3; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L408f94; -MEM_U32(sp + 16) = zero; -L408f94: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L408fac; -//nop; -L408fac: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L408fb4: -t1 = 0x100002f4; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L40902c;} -//nop; -t6 = 0x10000310; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L40902c;} -//nop; -t5 = 0x10000e00; -//nop; -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L40900c; -MEM_U32(sp + 16) = zero; -L40900c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L409024; -//nop; -L409024: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L40902c: -t0 = 0x10000424; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L4090bc;} -//nop; -t9 = 0x1000a36c; -at = 0x1; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L4090bc;} -//nop; -t2 = 0x10000008; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L4090bc;} -//nop; -t8 = 0x10000e30; -//nop; -t8 = t8; -MEM_U32(sp + 20) = t8; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L40909c; -MEM_U32(sp + 16) = zero; -L40909c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4090b4; -//nop; -L4090b4: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L4090bc: -t4 = 0x10000424; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L40914c;} -//nop; -t7 = 0x1000a36c; -at = 0x3; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L40914c;} -//nop; -t3 = 0x100001fc; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L40914c;} -//nop; -t1 = 0x10000e54; -//nop; -t1 = t1; -MEM_U32(sp + 20) = t1; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L40912c; -MEM_U32(sp + 16) = zero; -L40912c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L409144; -//nop; -L409144: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L40914c: -t6 = 0x10000228; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L4091c4;} -//nop; -t5 = 0x1000022c; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L4091c4;} -//nop; -t0 = 0x10000124; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L4091c4;} -//nop; -t9 = 0x10000214; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L4091c4;} -//nop; -t2 = 0x10000218; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L409224;} -//nop; -L4091c4: -t8 = 0x10000254; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L409224;} -//nop; -t4 = 0x10000e7c; -//nop; -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L409204; -MEM_U32(sp + 16) = zero; -L409204: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L40921c; -//nop; -L40921c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L409224: -t7 = 0x10000228; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L40928c;} -//nop; -t3 = 0x10000124; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L40928c;} -//nop; -t1 = 0x1000a520; -at = 0x1; -t1 = MEM_U32(t1 + 4); -//nop; -if (t1 != at) {//nop; -goto L40928c;} -//nop; -t6 = 0x1000a540; -at = 0x1; -t6 = MEM_U32(t6 + 4); -//nop; -if (t6 != at) {at = 0x1000a184; -goto L40928c;} -at = 0x1000a184; -t5 = 0x1; -MEM_U32(at + 0) = t5; -L40928c: -t0 = 0x1000a36c; -at = 0x1; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L409330;} -//nop; -t9 = 0x10000008; -at = 0x2; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == at) {at = 0x3; -goto L4092c4;} -at = 0x3; -if (t9 != at) {//nop; -goto L409330;} -//nop; -L4092c4: -t2 = 0x1000026c; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L409330;} -//nop; -t8 = 0x10000108; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L409330;} -//nop; -t4 = 0x10000ebc; -//nop; -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L40931c; -MEM_U32(sp + 16) = zero; -L40931c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -at = 0x10000108; -//nop; -MEM_U32(at + 0) = zero; -L409330: -t7 = 0x1000a184; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L409368;} -//nop; -t3 = 0x10000118; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {at = 0x10000110; -goto L409368;} -at = 0x10000110; -t1 = 0x1; -MEM_U32(at + 0) = t1; -L409368: -t6 = 0x1000a36c; -at = 0x1; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L40944c;} -//nop; -t5 = 0x10000008; -at = 0x3; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L40944c;} -//nop; -a0 = 0x10000ef8; -//nop; -a0 = a0; -//nop; -v0 = wrapper_getenv(mem, a0); -goto L4093ac; -//nop; -L4093ac: -// bdead 400c000b gp = MEM_U32(sp + 64); -t0 = 0x1; -t9 = 0x10000230; -MEM_U32(sp + 296) = v0; -t9 = MEM_U32(t9 + 0); -MEM_U32(sp + 292) = t0; -at = (int)t9 < (int)0x3; -if (at != 0) {at = 0x10000230; -goto L4093e4;} -at = 0x10000230; -t2 = 0x2; -MEM_U32(at + 0) = t2; -at = 0x10000408; -//nop; -MEM_U32(at + 0) = zero; -L4093e4: -t8 = MEM_U32(sp + 296); -//nop; -if (t8 == 0) {//nop; -goto L409428;} -//nop; -t4 = MEM_U8(t8 + 0); -//nop; -at = (int)t4 < (int)0x30; -if (at != 0) {at = (int)t4 < (int)0x34; -goto L409428;} -at = (int)t4 < (int)0x34; -if (at == 0) {//nop; -goto L409428;} -//nop; -t7 = MEM_U8(t8 + 1); -//nop; -if (t7 != 0) {//nop; -goto L409428;} -//nop; -t3 = t4 + 0xffffffd0; -MEM_U32(sp + 292) = t3; -L409428: -t1 = 0x10000230; -t6 = MEM_U32(sp + 292); -t1 = MEM_U32(t1 + 0); -//nop; -at = (int)t6 < (int)t1; -if (at == 0) {at = 0x10000230; -goto L40944c;} -at = 0x10000230; -//nop; -MEM_U32(at + 0) = t6; -L40944c: -a1 = 0x10000f08; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L409460; -a1 = a1; -L409460: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -t5 = 0x10000354; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L409568;} -//nop; -t0 = 0x100002f0; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L409514;} -//nop; -t9 = 0x10000304; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L4094f8;} -//nop; -t2 = 0x10000f10; -//nop; -t2 = t2; -MEM_U32(sp + 20) = t2; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4094d8; -MEM_U32(sp + 16) = zero; -L4094d8: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4094f0; -//nop; -L4094f0: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L4094f8: -a1 = 0x10000f34; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40950c; -a1 = a1; -L40950c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L409514: -t8 = 0x100002f4; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L40954c;} -//nop; -a1 = 0x10000f40; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L409540; -a1 = a1; -L409540: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -goto L409568; -//nop; -L40954c: -a1 = 0x10000f4c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L409560; -a1 = a1; -L409560: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L409568: -a1 = 0x10000f58; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40957c; -a1 = a1; -L40957c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -t7 = 0x1000030c; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L409690;} -//nop; -a1 = 0x10000f64; -//nop; -a0 = 0x1000a310; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4095b0; -a1 = a1; -L4095b0: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x10000f6c; -//nop; -a0 = a0; -//nop; -f_add_info(mem, sp, a0); -goto L4095cc; -//nop; -L4095cc: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000f74; -//nop; -a0 = 0x1000a310; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4095e8; -a1 = a1; -L4095e8: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x10000f80; -//nop; -a0 = a0; -//nop; -f_add_info(mem, sp, a0); -goto L409604; -//nop; -L409604: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -t4 = 0x100002f4; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {at = 0x10000414; -goto L409760;} -at = 0x10000414; -t3 = 0x2; -MEM_U32(at + 0) = t3; -at = 0x100002f4; -a1 = 0x10000f8c; -//nop; -t1 = 0x1; -a0 = 0x1000a310; -MEM_U32(at + 0) = t1; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40964c; -a1 = a1; -L40964c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x10000f94; -//nop; -a0 = a0; -//nop; -f_add_info(mem, sp, a0); -goto L409668; -//nop; -L409668: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a1 = zero; -a0 = 0x10000f9c; -//nop; -a2 = zero; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L409684; -a0 = a0; -L409684: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -goto L409760; -//nop; -L409690: -t6 = 0x10000304; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L409760;} -//nop; -a1 = 0x10000fa0; -//nop; -a0 = 0x1000a310; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4096bc; -a1 = a1; -L4096bc: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x10000fac; -//nop; -a0 = a0; -//nop; -f_add_info(mem, sp, a0); -goto L4096d8; -//nop; -L4096d8: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -t5 = 0x100002f4; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {at = 0x10000414; -goto L409760;} -at = 0x10000414; -t0 = 0x2; -MEM_U32(at + 0) = t0; -at = 0x100002f4; -t9 = 0x1; -MEM_U32(at + 0) = t9; -//nop; -a1 = 0x10000fb8; -a0 = 0x1000a310; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L409720; -a1 = a1; -L409720: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x10000fc0; -//nop; -a0 = a0; -//nop; -f_add_info(mem, sp, a0); -goto L40973c; -//nop; -L40973c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a1 = zero; -a0 = 0x10000fc8; -//nop; -a2 = zero; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L409758; -a0 = a0; -L409758: -// bdead 400c0003 gp = MEM_U32(sp + 64); -//nop; -L409760: -t2 = 0x10000230; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -at = t2 < 0x5; -if (at == 0) {//nop; -goto L4097d4;} -//nop; -//nop; -//nop; -//nop; -//nop; -//nop; -;static void *const Lswitch1000705c[] = { -&&L409798, -&&L4097a4, -&&L4097b0, -&&L4097bc, -&&L4097c8, -}; -dest = Lswitch1000705c[t2]; -//nop; -goto *dest; -//nop; -L409798: -s2 = 0x10000fcc; -s2 = s2; -goto L4097d4; -s2 = s2; -L4097a4: -s2 = 0x10000fd0; -s2 = s2; -goto L4097d4; -s2 = s2; -L4097b0: -s2 = 0x10000fd4; -s2 = s2; -goto L4097d4; -s2 = s2; -L4097bc: -s2 = 0x10000fd8; -s2 = s2; -goto L4097d4; -s2 = s2; -L4097c8: -s2 = 0x10000fdc; -//nop; -s2 = s2; -L4097d4: -//nop; -a0 = 0x1000a310; -a1 = s2; -f_addstr(mem, sp, a0, a1); -goto L4097e4; -a1 = s2; -L4097e4: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a1 = s2; -//nop; -a0 = 0x1000a320; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4097fc; -//nop; -L4097fc: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a1 = s2; -//nop; -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L409814; -//nop; -L409814: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a1 = s2; -//nop; -a0 = 0x1000a408; -//nop; -f_addstr(mem, sp, a0, a1); -goto L40982c; -//nop; -L40982c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a1 = s2; -//nop; -a0 = 0x1000a428; -//nop; -f_addstr(mem, sp, a0, a1); -goto L409844; -//nop; -L409844: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a1 = s2; -//nop; -a0 = 0x1000a418; -//nop; -f_addstr(mem, sp, a0, a1); -goto L40985c; -//nop; -L40985c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a1 = s2; -//nop; -a0 = 0x1000a490; -//nop; -f_addstr(mem, sp, a0, a1); -goto L409874; -//nop; -L409874: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a1 = s2; -//nop; -a0 = 0x1000a4a0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L40988c; -//nop; -L40988c: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a1 = s2; -//nop; -a0 = 0x1000a4b0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4098a4; -//nop; -L4098a4: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a1 = s2; -//nop; -a0 = 0x1000a470; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4098bc; -//nop; -L4098bc: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a1 = s2; -//nop; -a0 = 0x1000a480; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4098d4; -//nop; -L4098d4: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a1 = s2; -//nop; -a0 = 0x1000a4c0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4098ec; -//nop; -L4098ec: -// bdead 400c0003 gp = MEM_U32(sp + 64); -a1 = s2; -//nop; -a0 = 0x1000a4d0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L409904; -//nop; -L409904: -// bdead 40040103 gp = MEM_U32(sp + 64); -at = 0x3; -t8 = 0x1000a36c; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L409994;} -//nop; -t7 = 0x10000284; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L40995c;} -//nop; -a1 = 0x10000fe0; -//nop; -a0 = 0x1000a330; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L409950; -a1 = a1; -L409950: -// bdead 40040103 gp = MEM_U32(sp + 64); -//nop; -goto L409994; -//nop; -L40995c: -a1 = 0x10000fec; -//nop; -a0 = 0x1000a330; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L409970; -a1 = a1; -L409970: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000ff4; -//nop; -a0 = 0x1000a4b0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40998c; -a1 = a1; -L40998c: -// bdead 40040103 gp = MEM_U32(sp + 64); -//nop; -L409994: -t4 = 0x1000023c; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L4099c4;} -//nop; -//nop; -//nop; -//nop; -f_whats(mem, sp); -goto L4099bc; -//nop; -L4099bc: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -L4099c4: -t3 = 0x10000404; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L4099f4;} -//nop; -//nop; -a0 = 0x1; -//nop; -wrapper_exit(mem, a0); -goto L4099ec; -//nop; -L4099ec: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -L4099f4: -//nop; -a0 = 0x2; -a1 = 0x1; -v0 = wrapper_sigset(mem, a0, trampoline, a1, sp); -goto L409a04; -a1 = 0x1; -L409a04: -// bdead 4004000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 == at) {//nop; -goto L409a2c;} -//nop; -//nop; -a1 = 0x433218; // function pointer -a0 = 0x2; -v0 = wrapper_sigset(mem, a0, trampoline, a1, sp); -goto L409a24; -a0 = 0x2; -L409a24: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -L409a2c: -//nop; -a0 = 0xf; -a1 = 0x1; -v0 = wrapper_sigset(mem, a0, trampoline, a1, sp); -goto L409a3c; -a1 = 0x1; -L409a3c: -// bdead 4004000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 == at) {//nop; -goto L409a64;} -//nop; -//nop; -a1 = 0x433218; // function pointer -a0 = 0xf; -v0 = wrapper_sigset(mem, a0, trampoline, a1, sp); -goto L409a5c; -a0 = 0xf; -L409a5c: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -L409a64: -//nop; -a0 = 0xd; -a1 = 0x1; -v0 = wrapper_sigset(mem, a0, trampoline, a1, sp); -goto L409a74; -a1 = 0x1; -L409a74: -// bdead 4004010b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 == at) {//nop; -goto L409a9c;} -//nop; -//nop; -a1 = 0x433218; // function pointer -a0 = 0xd; -v0 = wrapper_sigset(mem, a0, trampoline, a1, sp); -goto L409a94; -a0 = 0xd; -L409a94: -// bdead 40040103 gp = MEM_U32(sp + 64); -//nop; -L409a9c: -t1 = 0x1000a36c; -at = 0x6; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L409b2c;} -//nop; -t6 = 0x10000298; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L409b2c;} -//nop; -t5 = 0x10000294; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L409b2c;} -//nop; -t0 = 0x10000ffc; -//nop; -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L409b0c; -MEM_U32(sp + 16) = zero; -L409b0c: -// bdead 40040003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L409b24; -//nop; -L409b24: -// bdead 40040103 gp = MEM_U32(sp + 64); -//nop; -L409b2c: -t9 = 0x1000a520; -//nop; -t9 = MEM_U32(t9 + 4); -//nop; -at = (int)t9 < (int)0x2; -if (at != 0) {//nop; -goto L409be4;} -//nop; -t2 = 0x1000a36c; -at = 0x4; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L409be4;} -//nop; -t8 = 0x10000214; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L409be4;} -//nop; -t7 = 0x10000218; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L409be4;} -//nop; -t4 = 0x10001040; -t3 = 0x10001070; -//nop; -t4 = t4; -t3 = t3; -MEM_U32(sp + 24) = t3; -MEM_U32(sp + 20) = t4; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L409bc4; -MEM_U32(sp + 16) = zero; -L409bc4: -// bdead 40040003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L409bdc; -//nop; -L409bdc: -// bdead 40040103 gp = MEM_U32(sp + 64); -//nop; -L409be4: -//nop; -//nop; -//nop; -f_mktempstr(mem, sp); -goto L409bf4; -//nop; -L409bf4: -// bdead 40040103 gp = MEM_U32(sp + 64); -at = 0x1; -t1 = 0x1000a36c; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L409dd0;} -//nop; -t6 = 0x1000021c; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -at = (int)t6 < (int)0x2; -if (at != 0) {//nop; -goto L409dd0;} -//nop; -t5 = 0x1000a380; -a1 = 0x10001074; -//nop; -a0 = MEM_U32(t5 + 132); -a1 = a1; -v0 = wrapper_fopen(mem, a0, a1); -goto L409c48; -a1 = a1; -L409c48: -MEM_U32(sp + 288) = v0; -t0 = MEM_U32(sp + 288); -// bdead 40040203 gp = MEM_U32(sp + 64); -if (t0 == 0) {//nop; -goto L409d94;} -//nop; -t9 = 0x1000a520; -at = 0x1; -t9 = MEM_U32(t9 + 4); -//nop; -if (t9 != at) {//nop; -goto L409c98;} -//nop; -t2 = 0x10000228; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L409c98;} -//nop; -s5 = 0x10001084; -s5 = s5; -goto L409ca4; -s5 = s5; -L409c98: -s5 = 0x10001088; -//nop; -s5 = s5; -L409ca4: -t8 = 0x1000a520; -at = 0x1; -t8 = MEM_U32(t8 + 4); -//nop; -if (t8 != at) {//nop; -goto L409cd4;} -//nop; -t7 = 0x10000228; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L409cec;} -//nop; -L409cd4: -t4 = 0x1000a49c; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L409cf8;} -//nop; -L409cec: -s4 = 0x1000108c; -s4 = s4; -goto L409d08; -s4 = s4; -L409cf8: -s4 = 0x1000a49c; -//nop; -s4 = MEM_U32(s4 + 0); -//nop; -L409d08: -t3 = 0x1000a48c; -a2 = 0x1000a31c; -a1 = 0x10001078; -//nop; -t3 = MEM_U32(t3 + 0); -a0 = MEM_U32(sp + 288); -a2 = MEM_U32(a2 + 0); -a3 = s5; -MEM_U32(sp + 16) = s4; -a1 = a1; -MEM_U32(sp + 20) = t3; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L409d38; -MEM_U32(sp + 20) = t3; -L409d38: -// bdead 40040003 gp = MEM_U32(sp + 64); -//nop; -//nop; -//nop; -//nop; -f_init_curr_dir(mem, sp); -goto L409d50; -//nop; -L409d50: -// bdead 40040103 gp = MEM_U32(sp + 64); -a0 = MEM_U32(sp + 288); -a2 = 0x10000438; -a1 = 0x10001090; -//nop; -a2 = MEM_U32(a2 + 0); -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L409d70; -a1 = a1; -L409d70: -// bdead 40040003 gp = MEM_U32(sp + 64); -a0 = MEM_U32(sp + 288); -//nop; -//nop; -//nop; -v0 = wrapper_fclose(mem, a0); -goto L409d88; -//nop; -L409d88: -// bdead 40040103 gp = MEM_U32(sp + 64); -//nop; -goto L409dd0; -//nop; -L409d94: -t1 = 0x10001094; -t6 = 0x1000a380; -t1 = t1; -MEM_U32(sp + 20) = t1; -MEM_U32(sp + 16) = zero; -//nop; -t5 = MEM_U32(t6 + 132); -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t5; -f_error(mem, sp, a0, a1, a2, a3); -goto L409dc8; -MEM_U32(sp + 24) = t5; -L409dc8: -// bdead 40040103 gp = MEM_U32(sp + 64); -//nop; -L409dd0: -t0 = 0x1000a520; -s0 = zero; -t0 = MEM_U32(t0 + 4); -//nop; -at = (int)s0 < (int)t0; -if (at != 0) {//nop; -goto L409e00;} -//nop; -t9 = 0x10000408; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {at = 0x10000128; -goto L4197b0;} -L409e00: -at = 0x10000128; -t2 = 0x100001fc; -t8 = 0x1000a520; -MEM_U32(at + 0) = zero; -at = 0x10000320; -t2 = MEM_U32(t2 + 0); -t8 = MEM_U32(t8 + 4); -MEM_U32(sp + 280) = zero; -MEM_U32(at + 0) = zero; -if (s0 != t8) {MEM_U32(sp + 284) = t2; -goto L409fc8;} -MEM_U32(sp + 284) = t2; -t7 = 0x10000404; -at = 0x10000408; -t7 = MEM_U32(t7 + 0); -MEM_U32(at + 0) = zero; -if (t7 != 0) {//nop; -goto L41977c;} -//nop; -t4 = 0x1000a214; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L409e7c;} -//nop; -a1 = 0x100010b4; -//nop; -a0 = 0x1000a520; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L409e70; -a1 = a1; -L409e70: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L409f10; -//nop; -L409e7c: -a0 = 0x1000a214; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_getsuf(mem, sp, a0); -goto L409e90; -//nop; -L409e90: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L409ed4;} -//nop; -a0 = 0x1000a214; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = 0x3f; -v0 = f_mksuf(mem, sp, a0, a1); -goto L409eb0; -a1 = 0x3f; -L409eb0: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a520; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L409ec8; -a1 = s4; -L409ec8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L409f10; -//nop; -L409ed4: -a0 = 0x1000a214; -a1 = 0x100010bc; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L409ef0; -a1 = a1; -L409ef0: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a520; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L409f08; -a1 = s4; -L409f08: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L409f10: -at = 0x1000a24c; -t1 = 0x1000a1e6; -t3 = 0x3f; -t1 = MEM_U8(t1 + 0); -MEM_U8(at + 0) = (uint8_t)t3; -at = 0x73; -if (t1 == at) {at = 0x6d; -goto L409f60;} -at = 0x6d; -if (t1 == at) {at = 0x6f; -goto L409f60;} -at = 0x6f; -if (t1 == at) {at = 0x63; -goto L409f60;} -at = 0x63; -if (t1 == at) {//nop; -goto L409f60;} -//nop; -t6 = 0x10000240; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L409fa8;} -//nop; -L409f60: -t5 = 0x1000a520; -t0 = s0 << 2; -t5 = MEM_U32(t5 + 8); -a1 = 0x54; -t9 = t5 + t0; -a0 = MEM_U32(t9 + 0); -//nop; -//nop; -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L409f88; -//nop; -L409f88: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1fc; -//nop; -MEM_U32(at + 0) = v0; -at = 0x1000a250; -MEM_U32(at + 0) = zero; -goto L414ec0; -MEM_U32(at + 0) = zero; -L409fa8: -t2 = 0x1000a380; -at = 0x1000a1fc; -t8 = MEM_U32(t2 + 0); -t7 = 0x1; -MEM_U32(at + 0) = t8; -at = 0x1000a250; -MEM_U32(at + 0) = t7; -goto L414ec0; -MEM_U32(at + 0) = t7; -L409fc8: -t4 = 0x1000a520; -//nop; -t4 = MEM_U32(t4 + 4); -//nop; -at = (int)t4 < (int)0x2; -if (at != 0) {//nop; -goto L40a018;} -//nop; -t3 = 0x1000a520; -t1 = s0 << 2; -t3 = MEM_U32(t3 + 8); -a0 = 0xfb528e4; -a1 = 0x100010c0; -//nop; -t6 = t3 + t1; -a2 = MEM_U32(t6 + 0); -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L40a010; -a1 = a1; -L40a010: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40a018: -t5 = 0x1000a520; -t0 = s0 << 2; -t5 = MEM_U32(t5 + 8); -at = 0x1000a1f0; -t9 = t5 + t0; -t2 = MEM_U32(t9 + 0); -t8 = 0x1000a36c; -MEM_U32(at + 0) = t2; -t8 = MEM_U32(t8 + 0); -at = 0x4; -if (t8 == at) {//nop; -goto L40a090;} -//nop; -t7 = s0 << 2; -//nop; -t4 = t5 + t7; -a0 = MEM_U32(t4 + 0); -//nop; -v0 = f_getsuf(mem, sp, a0); -goto L40a060; -//nop; -L40a060: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a24c; -t3 = 0x1000a24c; -MEM_U8(at + 0) = (uint8_t)v0; -t3 = MEM_U8(t3 + 0); -at = 0x6d; -if (t3 != at) {at = 0x1000a24c; -goto L40a09c;} -at = 0x1000a24c; -t1 = 0x66; -MEM_U8(at + 0) = (uint8_t)t1; -goto L40a09c; -MEM_U8(at + 0) = (uint8_t)t1; -L40a090: -at = 0x1000a24c; -t6 = 0x73; -MEM_U8(at + 0) = (uint8_t)t6; -L40a09c: -t0 = 0x1000a1e6; -at = 0x66; -t0 = MEM_U8(t0 + 0); -//nop; -if (t0 == at) {at = 0x73; -goto L40a150;} -at = 0x73; -if (t0 == at) {at = 0x6d; -goto L40a150;} -at = 0x6d; -if (t0 == at) {at = 0x6f; -goto L40a150;} -at = 0x6f; -if (t0 == at) {at = 0x6b; -goto L40a150;} -at = 0x6b; -if (t0 == at) {at = 0x63; -goto L40a150;} -at = 0x63; -if (t0 == at) {//nop; -goto L40a150;} -//nop; -t9 = 0x10000240; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L40a150;} -//nop; -t2 = 0x1000a24c; -at = 0x42; -t2 = MEM_U8(t2 + 0); -//nop; -if (t2 == at) {at = 0x55; -goto L40a150;} -at = 0x55; -if (t2 == at) {at = 0x4f; -goto L40a150;} -at = 0x4f; -if (t2 == at) {at = 0x47; -goto L40a150;} -at = 0x47; -if (t2 == at) {at = 0x53; -goto L40a150;} -at = 0x53; -if (t2 == at) {at = 0x4d; -goto L40a150;} -at = 0x4d; -if (t2 == at) {at = 0x6; -goto L40a150;} -at = 0x6; -if (s1 == at) {at = 0x56; -goto L40a150;} -at = 0x56; -if (t2 == at) {at = 0x44; -goto L40a150;} -at = 0x44; -if (t2 == at) {at = 0x51; -goto L40a150;} -at = 0x51; -if (t2 != at) {at = 0x1000a250; -goto L40a20c;} -L40a150: -at = 0x1000a250; -t8 = 0x1000a36c; -MEM_U32(at + 0) = zero; -t8 = MEM_U32(t8 + 0); -at = 0x4; -if (t8 != at) {//nop; -goto L40a1d4;} -//nop; -t5 = 0x1000a520; -t7 = s0 << 2; -t5 = MEM_U32(t5 + 8); -//nop; -t4 = t5 + t7; -a0 = MEM_U32(t4 + 0); -//nop; -v0 = f_getsuf(mem, sp, a0); -goto L40a18c; -//nop; -L40a18c: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L40a1d4;} -//nop; -t3 = 0x1000a520; -t1 = s0 << 2; -t3 = MEM_U32(t3 + 8); -a1 = 0x100010c8; -//nop; -t6 = t3 + t1; -a0 = MEM_U32(t6 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40a1c0; -a1 = a1; -L40a1c0: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1fc; -MEM_U32(at + 0) = v0; -goto L40a22c; -MEM_U32(at + 0) = v0; -L40a1d4: -t0 = 0x1000a520; -t9 = s0 << 2; -t0 = MEM_U32(t0 + 8); -a1 = 0x54; -t2 = t0 + t9; -//nop; -a0 = MEM_U32(t2 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40a1f8; -//nop; -L40a1f8: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1fc; -MEM_U32(at + 0) = v0; -goto L40a22c; -MEM_U32(at + 0) = v0; -L40a20c: -at = 0x1000a250; -t8 = 0x1; -t5 = 0x1000a380; -MEM_U32(at + 0) = t8; -at = 0x1000a1fc; -t7 = MEM_U32(t5 + 0); -//nop; -MEM_U32(at + 0) = t7; -L40a22c: -s4 = 0x1000a24c; -//nop; -s4 = MEM_U8(s4 + 0); -//nop; -at = (int)s4 < (int)0x4; -if (at != 0) {at = (int)s4 < (int)0x47; -goto L40a298;} -at = (int)s4 < (int)0x47; -if (at != 0) {//nop; -goto L40a27c;} -//nop; -t4 = s4 + 0xffffff9d; -at = t4 < 0x11; -if (at == 0) {//nop; -goto L40a760;} -//nop; -//nop; -//nop; -//nop; -//nop; -//nop; -;static void *const Lswitch10007070[] = { -&&L40a36c, -&&L40a760, -&&L40a760, -&&L40a4b4, -&&L40a760, -&&L40a760, -&&L40a314, -&&L40a760, -&&L40a760, -&&L40a760, -&&L40a760, -&&L40a760, -&&L40a760, -&&L40a414, -&&L40a760, -&&L40a760, -&&L40a2bc, -}; -dest = Lswitch10007070[t4]; -//nop; -goto *dest; -//nop; -L40a27c: -at = 0x6; -if (s4 == at) {at = 0x46; -goto L40a36c;} -at = 0x46; -if (s4 == at) {//nop; -goto L40a4b4;} -//nop; -//nop; -goto L40a760; -//nop; -L40a298: -at = 0x1; -if (s4 == at) {at = 0x2; -goto L40a554;} -at = 0x2; -if (s4 == at) {at = 0x3; -goto L40a5f4;} -at = 0x3; -if (s4 == at) {//nop; -goto L40a694;} -//nop; -//nop; -goto L40a760; -//nop; -L40a2bc: -t3 = 0x1000a36c; -at = 0x1; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L40a314;} -//nop; -t1 = 0x1000a340; -t0 = 0x1000a32c; -t6 = MEM_U32(t1 + 0); -t0 = MEM_U32(t0 + 0); -//nop; -if (t6 == t0) {at = 0x1000a32c; -goto L40a314;} -at = 0x1000a32c; -a0 = 0x100010cc; -//nop; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t6; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40a30c; -a0 = a0; -L40a30c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40a314: -t9 = 0x1000a36c; -at = 0x1; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L40a36c;} -//nop; -t2 = 0x1000a340; -t5 = 0x1000a32c; -t8 = MEM_U32(t2 + 0); -t5 = MEM_U32(t5 + 0); -//nop; -if (t8 == t5) {at = 0x1000a32c; -goto L40a36c;} -at = 0x1000a32c; -a0 = 0x100010dc; -//nop; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t8; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40a364; -a0 = a0; -L40a364: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40a36c: -t7 = 0x1000a36c; -at = 0x1; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == at) {//nop; -goto L40a3c8;} -//nop; -t4 = 0x1000a340; -t1 = 0x1000a32c; -t3 = MEM_U32(t4 + 4); -t1 = MEM_U32(t1 + 0); -//nop; -if (t3 == t1) {at = 0x1000a32c; -goto L40a408;} -at = 0x1000a32c; -a0 = 0x100010ec; -//nop; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t3; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40a3bc; -a0 = a0; -L40a3bc: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40a408; -//nop; -L40a3c8: -t0 = 0x1000a340; -t9 = 0x1000a32c; -t6 = MEM_U32(t0 + 0); -t9 = MEM_U32(t9 + 0); -//nop; -if (t6 == t9) {at = 0x1000a32c; -goto L40a408;} -at = 0x1000a32c; -a0 = 0x100010fc; -//nop; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t6; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40a400; -a0 = a0; -L40a400: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40a408: -at = 0x100003e4; -MEM_U32(at + 0) = zero; -goto L40a760; -MEM_U32(at + 0) = zero; -L40a414: -t2 = 0x1000a36c; -at = 0x2; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == at) {//nop; -goto L40a470;} -//nop; -t5 = 0x1000a340; -t7 = 0x1000a32c; -t8 = MEM_U32(t5 + 8); -t7 = MEM_U32(t7 + 0); -//nop; -if (t8 == t7) {at = 0x1000a32c; -goto L40a760;} -at = 0x1000a32c; -a0 = 0x1000110c; -//nop; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t8; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40a464; -a0 = a0; -L40a464: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40a760; -//nop; -L40a470: -t4 = 0x1000a340; -t3 = 0x1000a32c; -t1 = MEM_U32(t4 + 0); -t3 = MEM_U32(t3 + 0); -//nop; -if (t1 == t3) {at = 0x1000a32c; -goto L40a760;} -at = 0x1000a32c; -a0 = 0x1000111c; -//nop; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t1; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40a4a8; -a0 = a0; -L40a4a8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40a760; -//nop; -L40a4b4: -t0 = 0x1000a36c; -at = 0x3; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == at) {//nop; -goto L40a510;} -//nop; -t9 = 0x1000a340; -t2 = 0x1000a32c; -t6 = MEM_U32(t9 + 12); -t2 = MEM_U32(t2 + 0); -//nop; -if (t6 == t2) {at = 0x1000a32c; -goto L40a760;} -at = 0x1000a32c; -a0 = 0x1000112c; -//nop; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t6; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40a504; -a0 = a0; -L40a504: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40a760; -//nop; -L40a510: -t5 = 0x1000a340; -t8 = 0x1000a32c; -t7 = MEM_U32(t5 + 0); -t8 = MEM_U32(t8 + 0); -//nop; -if (t7 == t8) {at = 0x1000a32c; -goto L40a760;} -at = 0x1000a32c; -a0 = 0x1000113c; -//nop; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t7; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40a548; -a0 = a0; -L40a548: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40a760; -//nop; -L40a554: -t4 = 0x1000a36c; -at = 0x5; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == at) {//nop; -goto L40a5b0;} -//nop; -t3 = 0x1000a340; -t0 = 0x1000a32c; -t1 = MEM_U32(t3 + 20); -t0 = MEM_U32(t0 + 0); -//nop; -if (t1 == t0) {at = 0x1000a32c; -goto L40a760;} -at = 0x1000a32c; -a0 = 0x1000114c; -//nop; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t1; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40a5a4; -a0 = a0; -L40a5a4: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40a760; -//nop; -L40a5b0: -t9 = 0x1000a340; -t6 = 0x1000a32c; -t2 = MEM_U32(t9 + 0); -t6 = MEM_U32(t6 + 0); -//nop; -if (t2 == t6) {at = 0x1000a32c; -goto L40a760;} -at = 0x1000a32c; -a0 = 0x1000115c; -//nop; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t2; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40a5e8; -a0 = a0; -L40a5e8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40a760; -//nop; -L40a5f4: -t5 = 0x1000a36c; -at = 0x6; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == at) {//nop; -goto L40a650;} -//nop; -t8 = 0x1000a340; -t4 = 0x1000a32c; -t7 = MEM_U32(t8 + 24); -t4 = MEM_U32(t4 + 0); -//nop; -if (t7 == t4) {at = 0x1000a32c; -goto L40a760;} -at = 0x1000a32c; -a0 = 0x1000116c; -//nop; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t7; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40a644; -a0 = a0; -L40a644: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40a760; -//nop; -L40a650: -t3 = 0x1000a340; -t1 = 0x1000a32c; -t0 = MEM_U32(t3 + 0); -t1 = MEM_U32(t1 + 0); -//nop; -if (t0 == t1) {at = 0x1000a32c; -goto L40a760;} -at = 0x1000a32c; -a0 = 0x1000117c; -//nop; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t0; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40a688; -a0 = a0; -L40a688: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40a760; -//nop; -L40a694: -t9 = 0x1000a36c; -at = 0x1; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == at) {at = 0x5; -goto L40a720;} -at = 0x5; -if (t9 == at) {at = 0x6; -goto L40a720;} -at = 0x6; -if (t9 == at) {//nop; -goto L40a720;} -//nop; -t6 = 0x1000a340; -t5 = 0x1000a32c; -t2 = MEM_U32(t6 + 4); -t5 = MEM_U32(t5 + 0); -//nop; -if (t2 == t5) {//nop; -goto L40a760;} -//nop; -t8 = MEM_U32(t6 + 20); -//nop; -if (t8 == t5) {//nop; -goto L40a760;} -//nop; -t4 = MEM_U32(t6 + 24); -//nop; -if (t4 == t5) {at = 0x1000a32c; -goto L40a760;} -at = 0x1000a32c; -a0 = 0x1000118c; -//nop; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t2; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40a714; -a0 = a0; -L40a714: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40a760; -//nop; -L40a720: -t7 = 0x1000a340; -t1 = 0x1000a32c; -t3 = MEM_U32(t7 + 0); -t1 = MEM_U32(t1 + 0); -//nop; -if (t3 == t1) {at = 0x1000a32c; -goto L40a760;} -at = 0x1000a32c; -a0 = 0x1000119c; -//nop; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t3; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40a758; -a0 = a0; -L40a758: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40a760: -t0 = 0x1000a36c; -at = 0x3; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L40a7d4;} -//nop; -t9 = 0x100001fc; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L40a7d4;} -//nop; -t8 = 0x1000a24c; -at = 0x66; -t8 = MEM_U8(t8 + 0); -//nop; -if (t8 == at) {at = 0x46; -goto L40a7d4;} -at = 0x46; -if (t8 == at) {at = 0x100001fc; -goto L40a7d4;} -at = 0x100001fc; -a0 = 0x100011ac; -//nop; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = zero; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40a7cc; -a0 = a0; -L40a7cc: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40a7d4: -t6 = 0x100001fc; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L40a84c;} -//nop; -t4 = 0x1000a36c; -at = 0x3; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == at) {at = 0x1; -goto L40a824;} -at = 0x1; -if (t4 != at) {//nop; -goto L40a84c;} -//nop; -t5 = 0x10000008; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40a84c;} -//nop; -L40a824: -t2 = 0x1000a520; -t7 = s0 << 2; -t2 = MEM_U32(t2 + 8); -//nop; -t1 = t2 + t7; -a0 = MEM_U32(t1 + 0); -//nop; -f_record_static_fileset(mem, sp, a0); -goto L40a844; -//nop; -L40a844: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40a84c: -t3 = 0x1000a36c; -at = 0x1; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L40a8e0;} -//nop; -t0 = 0x10000008; -at = 0x1; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L40a8e0;} -//nop; -s4 = 0x10000004; -//nop; -s4 = MEM_U32(s4 + 0); -//nop; -if (s4 == 0) {at = 0x1; -goto L40a8d4;} -at = 0x1; -if (s4 == at) {at = 0x2; -goto L40a8b4;} -at = 0x2; -if (s4 == at) {at = 0x3; -goto L40a8b4;} -at = 0x3; -if (s4 == at) {//nop; -goto L40a8c4;} -//nop; -//nop; -goto L40a8d4; -//nop; -L40a8b4: -at = 0x100003fc; -t9 = 0x2; -MEM_U32(at + 0) = t9; -goto L40a8e0; -MEM_U32(at + 0) = t9; -L40a8c4: -at = 0x100003fc; -t8 = 0x1; -MEM_U32(at + 0) = t8; -goto L40a8e0; -MEM_U32(at + 0) = t8; -L40a8d4: -at = 0x100003fc; -t6 = 0x3; -MEM_U32(at + 0) = t6; -L40a8e0: -t4 = 0x100003e4; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L40a974;} -//nop; -t5 = 0x10000424; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40a944;} -//nop; -t2 = 0x10000004; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {at = 0x100003e4; -goto L40a934;} -at = 0x100003e4; -t7 = 0x1; -MEM_U32(at + 0) = t7; -goto L40a974; -MEM_U32(at + 0) = t7; -L40a934: -at = 0x100003e4; -t1 = 0x2; -MEM_U32(at + 0) = t1; -goto L40a974; -MEM_U32(at + 0) = t1; -L40a944: -t3 = 0x10000004; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {at = 0x100003e4; -goto L40a968;} -at = 0x100003e4; -t0 = 0x3; -MEM_U32(at + 0) = t0; -goto L40a974; -MEM_U32(at + 0) = t0; -L40a968: -at = 0x100003e4; -t9 = 0x3; -MEM_U32(at + 0) = t9; -L40a974: -t8 = 0x10000214; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L40a9a4;} -//nop; -t6 = 0x1000a24c; -at = 0x61; -t6 = MEM_U8(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L40ad4c;} -//nop; -L40a9a4: -s4 = 0x1000a24c; -//nop; -s4 = MEM_U8(s4 + 0); -//nop; -at = (int)s4 < (int)0x4; -if (at != 0) {at = (int)s4 < (int)0x7; -goto L40aa08;} -at = (int)s4 < (int)0x7; -if (at != 0) {//nop; -goto L40a9f4;} -//nop; -t4 = s4 + 0xffffffbe; -at = t4 < 0x34; -if (at == 0) {//nop; -goto L40ad4c;} -//nop; -//nop; -//nop; -//nop; -//nop; -//nop; -;static void *const Lswitch100070b4[] = { -&&L414b54, -&&L40ad4c, -&&L4174f4, -&&L40ad4c, -&&L40ad4c, -&&L418adc, -&&L40ad4c, -&&L40ad4c, -&&L40ad4c, -&&L40ad4c, -&&L40ad4c, -&&L416864, -&&L40ad4c, -&&L417c04, -&&L40ad4c, -&&L4174f4, -&&L40ad4c, -&&L4164f0, -&&L40ad4c, -&&L40ab70, -&&L4174f4, -&&L40ad4c, -&&L40ad4c, -&&L40ad4c, -&&L40ad4c, -&&L40ad4c, -&&L40ad4c, -&&L40ad4c, -&&L40ad4c, -&&L40ad4c, -&&L40ad4c, -&&L40ad4c, -&&L40ad4c, -&&L40aa2c, -&&L40ad4c, -&&L412910, -&&L40ab10, -&&L40ad4c, -&&L40ad4c, -&&L40aa84, -&&L40ad4c, -&&L40ad4c, -&&L40ad4c, -&&L40ad4c, -&&L40ad4c, -&&L40ad4c, -&&L40aac0, -&&L40ad4c, -&&L412910, -&&L412910, -&&L40ad4c, -&&L4161b0, -}; -dest = Lswitch100070b4[t4]; -//nop; -goto *dest; -//nop; -L40a9f4: -at = 0x6; -if (s4 == at) {//nop; -goto L40aa2c;} -//nop; -//nop; -goto L40ad4c; -//nop; -L40aa08: -at = 0x1; -if (s4 == at) {at = 0x2; -goto L40ab30;} -at = 0x2; -if (s4 == at) {at = 0x3; -goto L40ab50;} -at = 0x3; -if (s4 == at) {//nop; -goto L411c50;} -//nop; -//nop; -goto L40ad4c; -//nop; -L40aa2c: -t5 = 0x100002ac; -at = 0x1; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == at) {at = 0x100002b0; -goto L40aa4c;} -at = 0x100002b0; -//nop; -MEM_U32(at + 0) = zero; -L40aa4c: -t2 = 0x1000a1a0; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L40ad4c;} -//nop; -t7 = 0x1000a1a4; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L40db8c;} -//nop; -//nop; -goto L40ad4c; -//nop; -L40aa84: -t1 = 0x1000a36c; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -t3 = t1 + 0xffffffff; -at = t3 < 0x6; -if (at == 0) {//nop; -goto L40aac0;} -//nop; -//nop; -//nop; -//nop; -//nop; -//nop; -;static void *const Lswitch10007184[] = { -&&L40db8c, -&&L410ea0, -&&L412c64, -&&L40aac0, -&&L4116a8, -&&L41222c, -}; -dest = Lswitch10007184[t3]; -//nop; -goto *dest; -//nop; -L40aac0: -t0 = 0x10000270; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L410ea0;} -//nop; -t9 = 0x1000a1a0; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L40ad4c;} -//nop; -t8 = 0x1000a1a4; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L40ad4c;} -//nop; -//nop; -goto L410ea0; -//nop; -L40ab10: -t6 = 0x1000a1a0; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L412c64;} -//nop; -//nop; -goto L40ad4c; -//nop; -L40ab30: -t4 = 0x1000a1a0; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L4116a8;} -//nop; -//nop; -goto L40ad4c; -//nop; -L40ab50: -t5 = 0x1000a1a0; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L41222c;} -//nop; -//nop; -goto L40ad4c; -//nop; -L40ab70: -at = 0x1000a560; -a1 = 0x100011b0; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ab8c; -a1 = a1; -L40ab8c: -// bdead 40060003 gp = MEM_U32(sp + 64); -t7 = s0 << 2; -t2 = 0x1000a520; -//nop; -t2 = MEM_U32(t2 + 8); -a0 = 0x1000a560; -t1 = t2 + t7; -a1 = MEM_U32(t1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L40abb4; -//nop; -L40abb4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t3 = 0x10000240; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L40ac0c;} -//nop; -t0 = 0x1000a520; -t9 = s0 << 2; -t0 = MEM_U32(t0 + 8); -a1 = 0x42; -t8 = t0 + t9; -//nop; -a0 = MEM_U32(t8 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40abf8; -//nop; -L40abf8: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L40ac20; -MEM_U32(at + 0) = v0; -L40ac0c: -t6 = 0x1000a380; -at = 0x1000a1f4; -t4 = MEM_U32(t6 + 4); -//nop; -MEM_U32(at + 0) = t4; -L40ac20: -t5 = 0x1000a1f4; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40acac;} -//nop; -//nop; -a0 = t5; -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L40ac48; -//nop; -L40ac48: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L40acac;} -//nop; -t7 = 0x1000a1f4; -t2 = 0x100011b8; -//nop; -t7 = MEM_U32(t7 + 0); -t2 = t2; -MEM_U32(sp + 20) = t2; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t7; -f_error(mem, sp, a0, a1, a2, a3); -goto L40ac8c; -MEM_U32(sp + 24) = t7; -L40ac8c: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L40aca4; -//nop; -L40aca4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40acac: -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L40acc4; -//nop; -L40acc4: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000f8; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L40acec; -MEM_U32(sp + 16) = zero; -L40acec: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L40ad38;} -//nop; -t1 = 0x10000404; -t0 = 0x10000240; -t1 = MEM_U32(t1 + 0); -at = 0x10000404; -t0 = MEM_U32(t0 + 0); -t3 = t1 + 0x1; -if (t0 != 0) {MEM_U32(at + 0) = t3; -goto L41977c;} -MEM_U32(at + 0) = t3; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40ad2c; -//nop; -L40ad2c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L40ad38: -t9 = 0x1000a1f4; -at = 0x1000a1f0; -t9 = MEM_U32(t9 + 0); -MEM_U32(at + 0) = t9; -goto L414b54; -MEM_U32(at + 0) = t9; -L40ad4c: -at = 0x10000354; -t8 = 0x100003e8; -MEM_U32(at + 0) = zero; -at = 0x1000a560; -t6 = 0x10000214; -MEM_U32(at + 4) = zero; -at = 0x1000a560; -t8 = MEM_U32(t8 + 0); -t6 = MEM_U32(t6 + 0); -MEM_U32(at + 4) = zero; -if (t6 == 0) {MEM_U32(sp + 276) = t8; -goto L40ada0;} -MEM_U32(sp + 276) = t8; -t4 = 0x10000424; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {at = 0x100003e4; -goto L40ada0;} -at = 0x100003e4; -t5 = 0x3; -MEM_U32(at + 0) = t5; -goto L40adc0; -MEM_U32(at + 0) = t5; -L40ada0: -t2 = 0x1000a24c; -at = 0x73; -t2 = MEM_U8(t2 + 0); -//nop; -if (t2 != at) {at = 0x100003e4; -goto L40adc0;} -at = 0x100003e4; -t7 = 0x4; -MEM_U32(at + 0) = t7; -L40adc0: -t1 = 0x1000a24c; -at = 0x63; -t1 = MEM_U8(t1 + 0); -//nop; -if (t1 == at) {at = 0x6; -goto L40ae30;} -at = 0x6; -if (t1 == at) {//nop; -goto L40ae30;} -//nop; -t3 = 0x1000a36c; -at = 0x1; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L40aea4;} -//nop; -t0 = 0x10000124; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L40aea4;} -//nop; -t9 = 0x100001fc; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {at = 0x68; -goto L40aea4;} -at = 0x68; -if (t1 != at) {//nop; -goto L40aea4;} -//nop; -L40ae30: -t8 = 0x100003e8; -at = 0x2; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L40ae74;} -//nop; -t6 = 0x100002b4; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L40afe4;} -//nop; -t4 = 0x10000004; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {at = 0x100003e8; -goto L40afe4;} -L40ae74: -at = 0x100003e8; -a0 = 0x100011e4; -//nop; -t5 = 0x1; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t5; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40ae98; -a0 = a0; -L40ae98: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40afe4; -//nop; -L40aea4: -t2 = 0x1000a24c; -at = 0x68; -t2 = MEM_U8(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L40af18;} -//nop; -t7 = 0x1000a36c; -at = 0x1; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L40af18;} -//nop; -t3 = 0x100003e8; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {at = 0x100003e8; -goto L40afe4;} -at = 0x100003e8; -a0 = 0x100011e8; -//nop; -t0 = 0x1; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t0; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40af0c; -a0 = a0; -L40af0c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40afe4; -//nop; -L40af18: -t9 = 0x1000a36c; -at = 0x1; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L40afa4;} -//nop; -t1 = 0x10000214; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L40afe4;} -//nop; -t8 = 0x10000218; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L40afe4;} -//nop; -t6 = 0x100003e8; -at = 0x3; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {at = 0x100003e8; -goto L40afe4;} -at = 0x100003e8; -a0 = 0x100011ec; -//nop; -t4 = 0x2; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t4; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40af98; -a0 = a0; -L40af98: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40afe4; -//nop; -L40afa4: -t5 = 0x100003e8; -at = 0x3; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {at = 0x100003e8; -goto L40afe4;} -at = 0x100003e8; -a0 = 0x100011f0; -//nop; -t2 = 0x2; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t2; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40afdc; -a0 = a0; -L40afdc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40afe4: -t7 = 0x100003e4; -at = 0x3; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == at) {at = 0x4; -goto L40b004;} -at = 0x4; -if (t7 != at) {//nop; -goto L40b068;} -//nop; -L40b004: -t3 = 0x1000043c; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L40b068;} -//nop; -t0 = 0x1000a188; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -t9 = t0 & 0x1; -if (t9 != 0) {//nop; -goto L40b068;} -//nop; -t1 = t0 & 0x8; -if (t1 != 0) {//nop; -goto L40b068;} -//nop; -a1 = 0x100000a0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L40b05c; -//nop; -L40b05c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40b130; -//nop; -L40b068: -t8 = 0x1000030c; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L40b0c8;} -//nop; -t6 = 0x100011f4; -//nop; -t6 = t6; -MEM_U32(sp + 20) = t6; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L40b0a8; -MEM_U32(sp + 16) = zero; -L40b0a8: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L40b0c0; -//nop; -L40b0c0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40b0c8: -t4 = 0x10000008; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L40b130;} -//nop; -t5 = 0x100003e8; -at = 0x1; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == at) {at = 0x3; -goto L40b10c;} -at = 0x3; -if (t5 == at) {//nop; -goto L40b10c;} -//nop; -s4 = 0x1000122c; -s4 = s4; -goto L40b118; -s4 = s4; -L40b10c: -s4 = 0x10001230; -//nop; -s4 = s4; -L40b118: -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40b128; -a1 = s4; -L40b128: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40b130: -t2 = 0x100003e0; -at = 0x1; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L40b280;} -//nop; -a1 = 0x10001238; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b15c; -a1 = a1; -L40b15c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t7 = 0x100002ec; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L40b19c;} -//nop; -a1 = 0x1000124c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b190; -a1 = a1; -L40b190: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40b1f0; -//nop; -L40b19c: -t3 = 0x100002f0; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L40b1d4;} -//nop; -a1 = 0x1000125c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b1c8; -a1 = a1; -L40b1c8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40b1f0; -//nop; -L40b1d4: -a1 = 0x1000126c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b1e8; -a1 = a1; -L40b1e8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40b1f0: -a1 = 0x1000127c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b204; -a1 = a1; -L40b204: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001288; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b220; -a1 = a1; -L40b220: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000129c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b23c; -a1 = a1; -L40b23c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100012b0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b258; -a1 = a1; -L40b258: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100012c4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b274; -a1 = a1; -L40b274: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40b3b0; -//nop; -L40b280: -t9 = 0x100003e0; -at = 0x2; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L40b344;} -//nop; -a1 = 0x100012d8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b2ac; -a1 = a1; -L40b2ac: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100012ec; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b2c8; -a1 = a1; -L40b2c8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001308; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b2e4; -a1 = a1; -L40b2e4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001324; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b300; -a1 = a1; -L40b300: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001338; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b31c; -a1 = a1; -L40b31c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000134c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b338; -a1 = a1; -L40b338: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40b3b0; -//nop; -L40b344: -t0 = 0x100003e0; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L40b3b0;} -//nop; -t8 = 0x100003e0; -t1 = 0x10001360; -//nop; -t8 = MEM_U32(t8 + 0); -t1 = t1; -MEM_U32(sp + 20) = t1; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t8; -f_error(mem, sp, a0, a1, a2, a3); -goto L40b390; -MEM_U32(sp + 24) = t8; -L40b390: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L40b3a8; -//nop; -L40b3a8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40b3b0: -t6 = 0x10000008; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L40b5a4;} -//nop; -t4 = 0x10000288; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L40b414;} -//nop; -t5 = 0x100003e4; -at = 0x3; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == at) {//nop; -goto L40b414;} -//nop; -a1 = 0x10001384; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b40c; -a1 = a1; -L40b40c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40b414: -t2 = 0x100003e8; -at = 0x1; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L40b554;} -//nop; -t7 = 0x10000004; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {at = 0x3; -goto L40b44c;} -at = 0x3; -if (t7 != at) {//nop; -goto L40b468;} -//nop; -L40b44c: -a1 = 0x10001390; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b460; -a1 = a1; -L40b460: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40b468: -t3 = 0x100003e4; -at = 0x3; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == at) {//nop; -goto L40b554;} -//nop; -t9 = 0x1000a198; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L40b4b4;} -//nop; -a1 = 0x100013a4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b4ac; -a1 = a1; -L40b4ac: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40b4b4: -t0 = 0x100003ec; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L40b4e8;} -//nop; -a1 = 0x100013ac; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b4e0; -a1 = a1; -L40b4e0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40b4e8: -a1 = 0x100013bc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b4fc; -a1 = a1; -L40b4fc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t1 = 0x10000004; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L40b554;} -//nop; -a1 = 0x100013c8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b530; -a1 = a1; -L40b530: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100013d0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b54c; -a1 = a1; -L40b54c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40b554: -t8 = 0x100003e8; -at = 0x2; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L40b630;} -//nop; -t6 = 0x100003e4; -at = 0x3; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L40b630;} -//nop; -a1 = 0x100013d4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b598; -a1 = a1; -L40b598: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40b630; -//nop; -L40b5a4: -a1 = 0x100013e8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b5b8; -a1 = a1; -L40b5b8: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x2; -t4 = 0x100003fc; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L40b5f4;} -//nop; -a1 = 0x100013ec; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b5ec; -a1 = a1; -L40b5ec: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40b5f4: -t5 = 0x100003fc; -at = 0x1; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == at) {at = 0x3; -goto L40b614;} -at = 0x3; -if (t5 != at) {//nop; -goto L40b630;} -//nop; -L40b614: -a1 = 0x100013f0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b628; -a1 = a1; -L40b628: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40b630: -s4 = 0x1000a24c; -//nop; -s4 = MEM_U8(s4 + 0); -//nop; -at = (int)s4 < (int)0x7; -if (at != 0) {at = (int)s4 < (int)0x47; -goto L40b694;} -at = (int)s4 < (int)0x47; -if (at != 0) {//nop; -goto L40b680;} -//nop; -t2 = s4 + 0xffffff9d; -at = t2 < 0x11; -if (at == 0) {//nop; -goto L40b9c8;} -//nop; -//nop; -//nop; -//nop; -//nop; -//nop; -;static void *const Lswitch1000719c[] = { -&&L40b6b0, -&&L40b9c8, -&&L40b8dc, -&&L40b8dc, -&&L40b9c8, -&&L40b9c8, -&&L40b9c8, -&&L40b9c8, -&&L40b9c8, -&&L40b9c8, -&&L40b9c8, -&&L40b9c8, -&&L40b9c8, -&&L40b884, -&&L40b9c8, -&&L40b8dc, -&&L40b918, -}; -dest = Lswitch1000719c[t2]; -//nop; -goto *dest; -//nop; -L40b680: -at = 0x46; -if (s4 == at) {//nop; -goto L40b8dc;} -//nop; -//nop; -goto L40b9c8; -//nop; -L40b694: -at = 0x1; -if (s4 == at) {at = 0x2; -goto L40b954;} -at = 0x2; -if (s4 == at) {at = 0x6; -goto L40b990;} -at = 0x6; -if (s4 != at) {//nop; -goto L40b9c8;} -//nop; -L40b6b0: -t7 = 0x1000a36c; -at = 0x1; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L40b78c;} -//nop; -t3 = 0x10000008; -at = 0x2; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == at) {at = 0x3; -goto L40b6e8;} -at = 0x3; -if (t3 != at) {//nop; -goto L40b78c;} -//nop; -L40b6e8: -a1 = 0x10001404; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b6fc; -a1 = a1; -L40b6fc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001420; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b718; -a1 = a1; -L40b718: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001430; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b734; -a1 = a1; -L40b734: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x1; -t9 = 0x1000a36c; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L40b9c8;} -//nop; -t0 = 0x10000008; -at = 0x3; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L40b9c8;} -//nop; -a1 = 0x10001444; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b780; -a1 = a1; -L40b780: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40b9c8; -//nop; -L40b78c: -t1 = 0x10000004; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {at = 0x3; -goto L40b7ac;} -at = 0x3; -if (t1 != at) {//nop; -goto L40b7c8;} -//nop; -L40b7ac: -a1 = 0x1000145c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b7c0; -a1 = a1; -L40b7c0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40b7c8: -a1 = 0x1000146c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b7dc; -a1 = a1; -L40b7dc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t8 = 0x1000a188; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L40b818;} -//nop; -a1 = 0x1000147c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b810; -a1 = a1; -L40b810: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40b818: -t6 = 0x1000a188; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -t4 = t6 & 0x1; -if (t4 != 0) {//nop; -goto L40b84c;} -//nop; -t5 = 0x1000043c; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40b9c8;} -//nop; -L40b84c: -t2 = 0x100003e8; -at = 0x1; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L40b9c8;} -//nop; -a1 = 0x10001490; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b878; -a1 = a1; -L40b878: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40b9c8; -//nop; -L40b884: -a1 = 0x1000149c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b898; -a1 = a1; -L40b898: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100014b0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b8b4; -a1 = a1; -L40b8b4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100014c4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b8d0; -a1 = a1; -L40b8d0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40b9c8; -//nop; -L40b8dc: -a1 = 0x100014c8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b8f0; -a1 = a1; -L40b8f0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100014dc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b90c; -a1 = a1; -L40b90c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40b9c8; -//nop; -L40b918: -a1 = 0x100014f0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b92c; -a1 = a1; -L40b92c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001504; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b948; -a1 = a1; -L40b948: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40b9c8; -//nop; -L40b954: -a1 = 0x1000151c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b968; -a1 = a1; -L40b968: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000152c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b984; -a1 = a1; -L40b984: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40b9c8; -//nop; -L40b990: -a1 = 0x1000153c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b9a4; -a1 = a1; -L40b9a4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001550; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b9c0; -a1 = a1; -L40b9c0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40b9c8: -t7 = 0x10000004; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {at = 0x3; -goto L40b9e8;} -at = 0x3; -if (t7 != at) {//nop; -goto L40ba90;} -//nop; -L40b9e8: -a1 = 0x10001564; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40b9fc; -a1 = a1; -L40b9fc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000157c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ba18; -a1 = a1; -L40ba18: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t3 = 0x10000370; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L40ba70;} -//nop; -a1 = 0x10001584; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ba4c; -a1 = a1; -L40ba4c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000158c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ba68; -a1 = a1; -L40ba68: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40ba70: -a1 = 0x10001598; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ba84; -a1 = a1; -L40ba84: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40bae0; -//nop; -L40ba90: -a1 = 0x100015a0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40baa4; -a1 = a1; -L40baa4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t9 = 0x10000370; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L40bae0;} -//nop; -a1 = 0x100015a8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bad8; -a1 = a1; -L40bad8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40bae0: -t0 = 0x100003e4; -at = 0x3; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == at) {//nop; -goto L40bb9c;} -//nop; -t1 = 0x1000a14c; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L40bb9c;} -//nop; -t8 = 0x10000008; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L40bb80;} -//nop; -t6 = 0x100003e8; -at = 0x1; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L40bb60;} -//nop; -a1 = 0x100015b4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bb54; -a1 = a1; -L40bb54: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40bb9c; -//nop; -L40bb60: -a1 = 0x100015b8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bb74; -a1 = a1; -L40bb74: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40bb9c; -//nop; -L40bb80: -a1 = 0x100015c0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bb94; -a1 = a1; -L40bb94: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40bb9c: -t4 = 0x10000004; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {at = 0x3; -goto L40bbbc;} -at = 0x3; -if (t4 != at) {//nop; -goto L40bd40;} -//nop; -L40bbbc: -a1 = 0x100015c4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bbd0; -a1 = a1; -L40bbd0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100015cc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bbec; -a1 = a1; -L40bbec: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100015d4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bc08; -a1 = a1; -L40bc08: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100015e0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bc24; -a1 = a1; -L40bc24: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100015ec; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bc40; -a1 = a1; -L40bc40: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t5 = 0x10000424; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L40bcec;} -//nop; -t2 = 0x10000370; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L40bcb4;} -//nop; -t7 = 0x10000004; -at = 0x1; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == at) {at = 0x2; -goto L40bcb4;} -at = 0x2; -if (t7 == at) {//nop; -goto L40bcb4;} -//nop; -a1 = 0x100015fc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bcac; -a1 = a1; -L40bcac: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40bcb4: -a1 = 0x1000160c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bcc8; -a1 = a1; -L40bcc8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001618; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bce4; -a1 = a1; -L40bce4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40bcec: -t3 = 0x10000340; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L40bd20;} -//nop; -a1 = 0x10001628; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bd18; -a1 = a1; -L40bd18: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40bd20: -a1 = 0x10001630; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bd34; -a1 = a1; -L40bd34: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40be50; -//nop; -L40bd40: -a1 = 0x1000163c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bd54; -a1 = a1; -L40bd54: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001648; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bd70; -a1 = a1; -L40bd70: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t9 = 0x10000424; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L40be00;} -//nop; -t0 = 0x10000370; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L40bde4;} -//nop; -t1 = 0x10000004; -at = 0x1; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == at) {at = 0x2; -goto L40bde4;} -at = 0x2; -if (t1 == at) {//nop; -goto L40bde4;} -//nop; -a1 = 0x10001658; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bddc; -a1 = a1; -L40bddc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40bde4: -a1 = 0x10001668; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bdf8; -a1 = a1; -L40bdf8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40be00: -t8 = 0x10000340; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L40be34;} -//nop; -a1 = 0x10001674; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40be2c; -a1 = a1; -L40be2c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40be34: -a1 = 0x1000167c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40be48; -a1 = a1; -L40be48: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40be50: -t6 = 0x1000a27c; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L40bf50;} -//nop; -t4 = 0x10000424; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L40bf50;} -//nop; -s2 = t6; -t5 = MEM_U8(s2 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40beb8;} -//nop; -L40be94: -//nop; -a0 = MEM_U8(s2 + 0); -//nop; -v0 = wrapper_toupper(a0); -goto L40bea4; -//nop; -L40bea4: -t2 = MEM_U8(s2 + 1); -// bdead 400e090b gp = MEM_U32(sp + 64); -MEM_U8(s2 + 0) = (uint8_t)v0; -if (t2 != 0) {s2 = s2 + 0x1; -goto L40be94;} -s2 = s2 + 0x1; -L40beb8: -t7 = 0x10000004; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {at = 0x3; -goto L40bed8;} -at = 0x3; -if (t7 != at) {//nop; -goto L40bf14;} -//nop; -L40bed8: -a1 = 0x1000a27c; -a0 = 0x10001688; -//nop; -a1 = MEM_U32(a1 + 0); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40bef4; -a0 = a0; -L40bef4: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40bf0c; -a1 = s4; -L40bf0c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40bf14: -a1 = 0x1000a27c; -a0 = 0x10001694; -//nop; -a1 = MEM_U32(a1 + 0); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40bf30; -a0 = a0; -L40bf30: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40bf48; -a1 = s4; -L40bf48: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40bf50: -t3 = 0x10000370; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L40bfc0;} -//nop; -t9 = 0x10000004; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {at = 0x3; -goto L40bf88;} -at = 0x3; -if (t9 != at) {//nop; -goto L40bfa4;} -//nop; -L40bf88: -a1 = 0x100016a0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bf9c; -a1 = a1; -L40bf9c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40bfa4: -a1 = 0x100016b0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bfb8; -a1 = a1; -L40bfb8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40bfc0: -t0 = 0x1000030c; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L40bff4;} -//nop; -a1 = 0x100016c0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40bfec; -a1 = a1; -L40bfec: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40bff4: -t1 = 0x10000004; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {at = 0x3; -goto L40c014;} -at = 0x3; -if (t1 != at) {//nop; -goto L40c054;} -//nop; -L40c014: -t8 = 0x10000320; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L40c054;} -//nop; -a1 = 0x100016cc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40c040; -a1 = a1; -L40c040: -// bdead 40060103 gp = MEM_U32(sp + 64); -t4 = 0x1; -at = 0x10000320; -//nop; -MEM_U32(at + 0) = t4; -L40c054: -t6 = 0x10000354; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L40c16c;} -//nop; -t5 = 0x100002f0; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40c118;} -//nop; -t2 = 0x10000348; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L40c0b4;} -//nop; -t7 = 0x10000384; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L40c0f8;} -//nop; -L40c0b4: -t3 = 0x10000340; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {at = 0x10000318; -goto L40c0f8;} -at = 0x10000318; -t9 = 0x1; -MEM_U32(at + 0) = t9; -at = 0x10000324; -t0 = 0x1; -MEM_U32(at + 0) = t0; -at = 0x10000384; -//nop; -MEM_U32(at + 0) = zero; -at = 0x10000348; -//nop; -MEM_U32(at + 0) = zero; -L40c0f8: -a1 = 0x100016d8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40c10c; -a1 = a1; -L40c10c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40c16c; -//nop; -L40c118: -t1 = 0x100002f4; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L40c150;} -//nop; -a1 = 0x100016e4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40c144; -a1 = a1; -L40c144: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40c16c; -//nop; -L40c150: -a1 = 0x100016f0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40c164; -a1 = a1; -L40c164: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40c16c: -t4 = 0x10000424; -at = 0x10000354; -t4 = MEM_U32(t4 + 0); -t8 = 0x1; -if (t4 == 0) {MEM_U32(at + 0) = t8; -goto L40c1b4;} -MEM_U32(at + 0) = t8; -a0 = 0x100016fc; -a1 = 0x10001708; -//nop; -a2 = zero; -a0 = a0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40c1a0; -a1 = a1; -L40c1a0: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x10000084; -//nop; -MEM_U32(at + 0) = v0; -L40c1b4: -t6 = 0x10000084; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L40c208;} -//nop; -a0 = 0x1000a25c; -a1 = 0x10001714; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L40c1e4; -a1 = a1; -L40c1e4: -// bdead 4006000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L40c220;} -//nop; -t5 = 0x1000a27c; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L40c220;} -//nop; -L40c208: -t2 = 0x10000280; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L40c29c;} -//nop; -L40c220: -t7 = 0x1000a36c; -at = 0x1; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L40c250;} -//nop; -t3 = 0x10000008; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L40c29c;} -//nop; -L40c250: -t9 = 0x1000a36c; -at = 0x3; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L40c280;} -//nop; -t0 = 0x100001fc; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L40c29c;} -//nop; -L40c280: -a1 = 0x10001718; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40c294; -a1 = a1; -L40c294: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40c29c: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a270; -//nop; -f_addlist(mem, sp, a0, a1); -goto L40c2b0; -//nop; -L40c2b0: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x1; -t1 = 0x100003e8; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L40c2ec;} -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a290; -//nop; -f_addlist(mem, sp, a0, a1); -goto L40c2e4; -//nop; -L40c2e4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40c2ec: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a260; -//nop; -f_addlist(mem, sp, a0, a1); -goto L40c300; -//nop; -L40c300: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t8 = 0x10000288; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L40c464;} -//nop; -t4 = 0x1000037c; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L40c388;} -//nop; -t6 = 0x10000088; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L40c388;} -//nop; -a0 = 0x1000171c; -//nop; -a1 = t6; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40c368; -a0 = a0; -L40c368: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40c380; -a1 = s4; -L40c380: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40c388: -t5 = 0x1000008c; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40c414;} -//nop; -t2 = 0x1000a36c; -at = 0x1; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L40c414;} -//nop; -t7 = 0x10000008; -at = 0x2; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == at) {at = 0x3; -goto L40c3d8;} -at = 0x3; -if (t7 != at) {//nop; -goto L40c414;} -//nop; -L40c3d8: -a1 = 0x1000008c; -a0 = 0x10001720; -//nop; -a1 = MEM_U32(a1 + 0); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40c3f4; -a0 = a0; -L40c3f4: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40c40c; -a1 = s4; -L40c40c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40c414: -t3 = 0x10000084; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L40c464;} -//nop; -a0 = 0x10001724; -//nop; -a1 = t3; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40c444; -a0 = a0; -L40c444: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40c45c; -a1 = s4; -L40c45c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40c464: -t9 = 0x10000218; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L40c538;} -//nop; -t0 = 0x1000a36c; -at = 0x4; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L40c4fc;} -//nop; -t1 = 0x1000a520; -t8 = s0 << 2; -t1 = MEM_U32(t1 + 8); -//nop; -t4 = t1 + t8; -a0 = MEM_U32(t4 + 0); -//nop; -v0 = f_getsuf(mem, sp, a0); -goto L40c4b4; -//nop; -L40c4b4: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L40c4fc;} -//nop; -t6 = 0x1000a520; -t5 = s0 << 2; -t6 = MEM_U32(t6 + 8); -a1 = 0x10001728; -//nop; -t2 = t6 + t5; -a0 = MEM_U32(t2 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40c4e8; -a1 = a1; -L40c4e8: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L40c680; -MEM_U32(at + 0) = v0; -L40c4fc: -t7 = 0x1000a520; -t3 = s0 << 2; -t7 = MEM_U32(t7 + 8); -a1 = 0x69; -t9 = t7 + t3; -a0 = MEM_U32(t9 + 0); -//nop; -//nop; -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40c524; -//nop; -L40c524: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L40c680; -MEM_U32(at + 0) = v0; -L40c538: -t0 = 0x10000214; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {at = 0x1000a1f4; -goto L40c558;} -at = 0x1000a1f4; -MEM_U32(at + 0) = zero; -goto L40c680; -MEM_U32(at + 0) = zero; -L40c558: -t1 = 0x1000a1e6; -at = 0x4b; -t1 = MEM_U8(t1 + 0); -//nop; -if (t1 == at) {//nop; -goto L40c588;} -//nop; -t8 = 0x10000240; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L40c66c;} -//nop; -L40c588: -t4 = 0x100003e4; -at = 0x3; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L40c638;} -//nop; -t6 = 0x1000043c; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L40c638;} -//nop; -t5 = 0x100003dc; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L40c638;} -//nop; -t2 = 0x1000a188; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L40c638;} -//nop; -t7 = 0x1000a36c; -at = 0x1; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L40c638;} -//nop; -t3 = 0x1000a520; -t9 = s0 << 2; -t3 = MEM_U32(t3 + 8); -a1 = 0x42; -t0 = t3 + t9; -//nop; -a0 = MEM_U32(t0 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40c624; -//nop; -L40c624: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L40c680; -MEM_U32(at + 0) = v0; -L40c638: -t1 = 0x1000a520; -t8 = s0 << 2; -t1 = MEM_U32(t1 + 8); -//nop; -t4 = t1 + t8; -a0 = MEM_U32(t4 + 0); -a1 = 0x69; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40c658; -a1 = 0x69; -L40c658: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L40c680; -MEM_U32(at + 0) = v0; -L40c66c: -t6 = 0x1000a380; -at = 0x1000a1f4; -t5 = MEM_U32(t6 + 8); -//nop; -MEM_U32(at + 0) = t5; -L40c680: -t2 = 0x1000a1f4; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L40c70c;} -//nop; -//nop; -a0 = t2; -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L40c6a8; -//nop; -L40c6a8: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L40c70c;} -//nop; -t3 = 0x1000a1f4; -t7 = 0x1000172c; -//nop; -t3 = MEM_U32(t3 + 0); -t7 = t7; -MEM_U32(sp + 20) = t7; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L40c6ec; -MEM_U32(sp + 24) = t3; -L40c6ec: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L40c704; -//nop; -L40c704: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40c70c: -t9 = 0x1000a36c; -at = 0x3; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L40c78c;} -//nop; -t0 = 0x100001fc; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L40c78c;} -//nop; -a1 = 0x10001758; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40c750; -a1 = a1; -L40c750: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000175c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40c76c; -a1 = a1; -L40c76c: -// bdead 40060003 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 328); -//nop; -a0 = 0x1000a560; -//nop; -f_addstr(mem, sp, a0, a1); -goto L40c784; -//nop; -L40c784: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40c78c: -t1 = 0x10000008; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L40c7c4;} -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L40c7bc; -//nop; -L40c7bc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40c7c4: -t8 = 0x100003e4; -at = 0x3; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == at) {at = 0x4; -goto L40c7e4;} -at = 0x4; -if (t8 != at) {//nop; -goto L40c874;} -//nop; -L40c7e4: -t4 = 0x1000a36c; -at = 0x1; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == at) {at = 0x4; -goto L40c804;} -at = 0x4; -if (t4 != at) {//nop; -goto L40c874;} -//nop; -L40c804: -t6 = 0x1000043c; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L40c874;} -//nop; -t5 = 0x1000a188; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -t2 = t5 & 0x1; -if (t2 != 0) {//nop; -goto L40c874;} -//nop; -t7 = t5 & 0x8; -if (t7 != 0) {//nop; -goto L40c874;} -//nop; -t3 = 0x100003dc; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L40c874;} -//nop; -t9 = 0x100002b4; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L40c9e4;} -//nop; -L40c874: -t0 = 0x1000a36c; -at = 0x3; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L40c8b8;} -//nop; -t1 = 0x100001fc; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L40c8b8;} -//nop; -s4 = 0x100000a0; -//nop; -s4 = MEM_U32(s4 + 0); -//nop; -goto L40c8c8; -//nop; -L40c8b8: -s4 = 0x10000094; -//nop; -s4 = MEM_U32(s4 + 0); -//nop; -L40c8c8: -a1 = 0x1000a560; -a3 = 0x1000a1f4; -//nop; -a1 = MEM_U32(a1 + 8); -a3 = MEM_U32(a3 + 0); -a0 = s4; -a2 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L40c8ec; -MEM_U32(sp + 16) = zero; -L40c8ec: -// bdead 4006000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L40da08;} -//nop; -t8 = 0x10000404; -t6 = 0x10000214; -t8 = MEM_U32(t8 + 0); -at = 0x10000404; -t6 = MEM_U32(t6 + 0); -t4 = t8 + 0x1; -if (t6 != 0) {MEM_U32(at + 0) = t4; -goto L40c99c;} -MEM_U32(at + 0) = t4; -t2 = 0x1000a24c; -at = 0x65; -t2 = MEM_U8(t2 + 0); -//nop; -if (t2 == at) {at = 0x72; -goto L40c938;} -at = 0x72; -if (t2 != at) {//nop; -goto L40c950;} -//nop; -L40c938: -t5 = 0x10000240; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40c980;} -//nop; -L40c950: -t7 = 0x1000a24c; -at = 0x73; -t7 = MEM_U8(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L40c99c;} -//nop; -t3 = 0x10000268; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L40c99c;} -//nop; -L40c980: -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40c994; -//nop; -L40c994: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40c99c: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40c9b0; -//nop; -L40c9b0: -// bdead 40060003 gp = MEM_U32(sp + 64); -t9 = MEM_U32(sp + 276); -at = 0x100003e8; -a0 = 0x10001760; -MEM_U32(at + 0) = t9; -//nop; -a1 = zero; -a2 = zero; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40c9d8; -a0 = a0; -L40c9d8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L40c9e4: -t0 = MEM_U32(sp + 276); -at = 0x100003e8; -a0 = 0x10001764; -//nop; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t0; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40ca08; -a0 = a0; -L40ca08: -// bdead 40060103 gp = MEM_U32(sp + 64); -at = 0x63; -t1 = 0x1000a24c; -//nop; -t1 = MEM_U8(t1 + 0); -//nop; -if (t1 == at) {at = 0x6; -goto L40ca80;} -at = 0x6; -if (t1 == at) {//nop; -goto L40ca80;} -//nop; -t8 = 0x1000a36c; -at = 0x1; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L40cab0;} -//nop; -t4 = 0x10000124; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L40cab0;} -//nop; -t6 = 0x100001fc; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {at = 0x68; -goto L40cab0;} -at = 0x68; -if (t1 != at) {//nop; -goto L40cab0;} -//nop; -L40ca80: -t2 = 0x10000218; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L40cab0;} -//nop; -t5 = 0x10000214; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40ea14;} -//nop; -L40cab0: -t7 = 0x10000244; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L40cae4;} -//nop; -a1 = 0x10001768; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cadc; -a1 = a1; -L40cadc: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40cae4: -t3 = 0x1000a36c; -at = 0x1; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L40cb14;} -//nop; -t9 = 0x10000008; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L40cfe4;} -//nop; -L40cb14: -s4 = 0x1000a24c; -//nop; -s4 = MEM_U8(s4 + 0); -//nop; -at = (int)s4 < (int)0x3; -if (at != 0) {at = (int)s4 < (int)0x47; -goto L40cb78;} -at = (int)s4 < (int)0x47; -if (at != 0) {//nop; -goto L40cb64;} -//nop; -t0 = s4 + 0xffffff9d; -at = t0 < 0x11; -if (at == 0) {//nop; -goto L40cd48;} -//nop; -//nop; -//nop; -//nop; -//nop; -//nop; -;static void *const Lswitch100071e0[] = { -&&L40cb94, -&&L40cd48, -&&L40cc40, -&&L40cc40, -&&L40cd48, -&&L40cd48, -&&L40cd48, -&&L40cd48, -&&L40cd48, -&&L40cd48, -&&L40cd48, -&&L40cd48, -&&L40cd48, -&&L40cbe8, -&&L40cd48, -&&L40cc40, -&&L40cc7c, -}; -dest = Lswitch100071e0[t0]; -//nop; -goto *dest; -//nop; -L40cb64: -at = 0x46; -if (s4 == at) {//nop; -goto L40cc40;} -//nop; -//nop; -goto L40cd48; -//nop; -L40cb78: -at = 0x1; -if (s4 == at) {at = 0x2; -goto L40ccd4;} -at = 0x2; -if (s4 == at) {//nop; -goto L40cd10;} -//nop; -//nop; -goto L40cd48; -//nop; -L40cb94: -a1 = 0x1000176c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cba8; -a1 = a1; -L40cba8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t8 = 0x100002b0; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L40cd48;} -//nop; -a1 = 0x1000177c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cbdc; -a1 = a1; -L40cbdc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40cd48; -//nop; -L40cbe8: -a1 = 0x10001784; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cbfc; -a1 = a1; -L40cbfc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001798; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cc18; -a1 = a1; -L40cc18: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100017ac; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cc34; -a1 = a1; -L40cc34: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40cd48; -//nop; -L40cc40: -a1 = 0x100017b0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cc54; -a1 = a1; -L40cc54: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100017c4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cc70; -a1 = a1; -L40cc70: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40cd48; -//nop; -L40cc7c: -a1 = 0x100017d8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cc90; -a1 = a1; -L40cc90: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100017e0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ccac; -a1 = a1; -L40ccac: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100017f4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ccc8; -a1 = a1; -L40ccc8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40cd48; -//nop; -L40ccd4: -a1 = 0x1000180c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cce8; -a1 = a1; -L40cce8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000181c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cd04; -a1 = a1; -L40cd04: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40cd48; -//nop; -L40cd10: -a1 = 0x1000182c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cd24; -a1 = a1; -L40cd24: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001840; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cd40; -a1 = a1; -L40cd40: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40cd48: -a1 = 0x10001854; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cd5c; -a1 = a1; -L40cd5c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t4 = 0x1000030c; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L40cd98;} -//nop; -a1 = 0x10001860; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cd90; -a1 = a1; -L40cd90: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40cd98: -t6 = 0x10000004; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {at = 0x3; -goto L40cdb8;} -at = 0x3; -if (t6 != at) {//nop; -goto L40cdf8;} -//nop; -L40cdb8: -t1 = 0x10000320; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L40cdf8;} -//nop; -a1 = 0x1000186c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cde4; -a1 = a1; -L40cde4: -// bdead 40060003 gp = MEM_U32(sp + 64); -t2 = 0x1; -at = 0x10000320; -//nop; -MEM_U32(at + 0) = t2; -L40cdf8: -t5 = 0x10000354; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L40cef8;} -//nop; -t7 = 0x100002f0; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L40cea4;} -//nop; -t3 = 0x10000348; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L40ce54;} -//nop; -t9 = 0x10000384; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {at = 0x10000318; -goto L40ce84;} -L40ce54: -at = 0x10000318; -t0 = 0x1; -MEM_U32(at + 0) = t0; -at = 0x10000324; -t8 = 0x1; -MEM_U32(at + 0) = t8; -at = 0x10000384; -//nop; -MEM_U32(at + 0) = zero; -at = 0x10000348; -//nop; -MEM_U32(at + 0) = zero; -L40ce84: -a1 = 0x10001878; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ce98; -a1 = a1; -L40ce98: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40cef8; -//nop; -L40cea4: -t4 = 0x100002f4; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L40cedc;} -//nop; -a1 = 0x10001884; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ced0; -a1 = a1; -L40ced0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40cef8; -//nop; -L40cedc: -a1 = 0x10001890; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cef0; -a1 = a1; -L40cef0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40cef8: -at = 0x10000354; -a1 = 0x1000189c; -//nop; -t6 = 0x1; -a0 = 0x1000a560; -MEM_U32(at + 0) = t6; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cf18; -a1 = a1; -L40cf18: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t1 = 0x10000340; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L40cf54;} -//nop; -a1 = 0x100018ac; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cf4c; -a1 = a1; -L40cf4c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40cf54: -a1 = 0x100018b4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cf68; -a1 = a1; -L40cf68: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t2 = 0x1000a27c; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L40cfc8;} -//nop; -s2 = t2; -t5 = MEM_U8(s2 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40cfe4;} -//nop; -L40cf9c: -//nop; -a0 = MEM_U8(s2 + 0); -//nop; -v0 = wrapper_toupper(a0); -goto L40cfac; -//nop; -L40cfac: -t7 = MEM_U8(s2 + 1); -// bdead 400f010b gp = MEM_U32(sp + 64); -MEM_U8(s2 + 0) = (uint8_t)v0; -if (t7 != 0) {s2 = s2 + 0x1; -goto L40cf9c;} -s2 = s2 + 0x1; -//nop; -goto L40cfe4; -//nop; -L40cfc8: -a1 = 0x100018c0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40cfdc; -a1 = a1; -L40cfdc: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40cfe4: -t3 = 0x10000214; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L40d1ec;} -//nop; -t9 = 0x10000218; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L40d1ec;} -//nop; -t0 = 0x10000084; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L40d068;} -//nop; -a0 = 0x1000a25c; -a1 = 0x100018d0; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L40d044; -a1 = a1; -L40d044: -// bdead 4006000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L40d080;} -//nop; -t8 = 0x1000a27c; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L40d080;} -//nop; -L40d068: -t4 = 0x10000280; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L40d0b4;} -//nop; -L40d080: -t6 = 0x10000008; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L40d0b4;} -//nop; -a1 = 0x100018d4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40d0ac; -a1 = a1; -L40d0ac: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40d0b4: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a270; -//nop; -f_addlist(mem, sp, a0, a1); -goto L40d0c8; -//nop; -L40d0c8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a260; -//nop; -f_addlist(mem, sp, a0, a1); -goto L40d0e4; -//nop; -L40d0e4: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t1 = 0x100001e0; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L40d11c;} -//nop; -//nop; -a0 = 0x1000a560; -a1 = t1; -f_addstr(mem, sp, a0, a1); -goto L40d114; -a1 = t1; -L40d114: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40d11c: -t2 = 0x10000288; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L40d1ec;} -//nop; -t5 = 0x1000037c; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40d19c;} -//nop; -t7 = 0x10000088; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L40d19c;} -//nop; -a0 = 0x100018d8; -//nop; -a1 = t7; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40d17c; -a0 = a0; -L40d17c: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40d194; -a1 = s4; -L40d194: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40d19c: -t3 = 0x10000084; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L40d1ec;} -//nop; -a0 = 0x100018dc; -//nop; -a1 = t3; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40d1cc; -a0 = a0; -L40d1cc: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40d1e4; -a1 = s4; -L40d1e4: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40d1ec: -t9 = 0x10000218; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L40d21c;} -//nop; -t0 = 0x10000214; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L40d2e0;} -//nop; -L40d21c: -t8 = 0x10000008; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L40d2e0;} -//nop; -t4 = 0x10000004; -at = 0x1; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == at) {at = 0x2; -goto L40d254;} -at = 0x2; -if (t4 != at) {//nop; -goto L40d274;} -//nop; -L40d254: -a1 = 0x100018e0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40d268; -a1 = a1; -L40d268: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40d2e0; -//nop; -L40d274: -t6 = 0x10000004; -at = 0x3; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L40d2ac;} -//nop; -a1 = 0x100018e8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40d2a0; -a1 = a1; -L40d2a0: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40d2e0; -//nop; -L40d2ac: -t1 = 0x10000004; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L40d2e0;} -//nop; -a1 = 0x100018f0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40d2d8; -a1 = a1; -L40d2d8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40d2e0: -t2 = 0x1000a36c; -at = 0x1; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L40d52c;} -//nop; -t5 = 0x10000008; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40d52c;} -//nop; -t7 = 0x10000234; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L40d344;} -//nop; -a1 = 0x100018f8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40d33c; -a1 = a1; -L40d33c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40d344: -t3 = 0x1000a198; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L40d378;} -//nop; -a1 = 0x100018fc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40d370; -a1 = a1; -L40d370: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40d378: -t9 = 0x1000a520; -at = 0x1; -t9 = MEM_U32(t9 + 4); -//nop; -if (t9 != at) {//nop; -goto L40d408;} -//nop; -t0 = 0x1000a1ec; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L40d3b0;} -//nop; -MEM_U32(sp + 280) = t0; -goto L40d430; -MEM_U32(sp + 280) = t0; -L40d3b0: -t8 = 0x10000228; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L40d3dc;} -//nop; -t4 = 0x10001900; -//nop; -t4 = t4; -MEM_U32(sp + 280) = t4; -goto L40d430; -MEM_U32(sp + 280) = t4; -L40d3dc: -t6 = 0x1000a520; -t1 = s0 << 2; -t6 = MEM_U32(t6 + 8); -//nop; -t2 = t6 + t1; -a0 = MEM_U32(t2 + 0); -a1 = 0x6f; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40d3fc; -a1 = 0x6f; -L40d3fc: -// bdead 4006010b gp = MEM_U32(sp + 64); -MEM_U32(sp + 280) = v0; -goto L40d430; -MEM_U32(sp + 280) = v0; -L40d408: -t5 = 0x1000a520; -t7 = s0 << 2; -t5 = MEM_U32(t5 + 8); -//nop; -t3 = t5 + t7; -a0 = MEM_U32(t3 + 0); -a1 = 0x6f; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40d428; -a1 = 0x6f; -L40d428: -// bdead 4006010b gp = MEM_U32(sp + 64); -MEM_U32(sp + 280) = v0; -L40d430: -a0 = 0x10001908; -//nop; -a1 = MEM_U32(sp + 280); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40d448; -a0 = a0; -L40d448: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40d460; -a1 = s4; -L40d460: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x2; -t9 = 0x10000008; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == at) {//nop; -goto L40d50c;} -//nop; -t0 = 0x10000008; -at = 0x3; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L40d4b8;} -//nop; -a1 = 0x1000190c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40d4ac; -a1 = a1; -L40d4ac: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40d50c; -//nop; -L40d4b8: -t8 = 0x100003fc; -at = 0x3; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L40d4f0;} -//nop; -a1 = 0x10001910; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40d4e4; -a1 = a1; -L40d4e4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40d50c; -//nop; -L40d4f0: -a1 = 0x10001914; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40d504; -a1 = a1; -L40d504: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40d50c: -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L40d524; -//nop; -L40d524: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40d52c: -t4 = 0x10000218; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L40d5f8;} -//nop; -t6 = 0x1000a36c; -at = 0x4; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L40d5c4;} -//nop; -t1 = 0x1000a520; -t2 = s0 << 2; -t1 = MEM_U32(t1 + 8); -//nop; -t5 = t1 + t2; -a0 = MEM_U32(t5 + 0); -//nop; -v0 = f_getsuf(mem, sp, a0); -goto L40d57c; -//nop; -L40d57c: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L40d5c4;} -//nop; -t7 = 0x1000a520; -t3 = s0 << 2; -t7 = MEM_U32(t7 + 8); -a1 = 0x10001918; -t9 = t7 + t3; -a0 = MEM_U32(t9 + 0); -//nop; -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40d5b0; -a1 = a1; -L40d5b0: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L40d62c; -MEM_U32(at + 0) = v0; -L40d5c4: -t0 = 0x1000a520; -t8 = s0 << 2; -t0 = MEM_U32(t0 + 8); -//nop; -t4 = t0 + t8; -a0 = MEM_U32(t4 + 0); -a1 = 0x69; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40d5e4; -a1 = 0x69; -L40d5e4: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L40d62c; -MEM_U32(at + 0) = v0; -L40d5f8: -t6 = 0x10000214; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {at = 0x1000a1f4; -goto L40d618;} -at = 0x1000a1f4; -MEM_U32(at + 0) = zero; -goto L40d62c; -MEM_U32(at + 0) = zero; -L40d618: -t1 = 0x1000a380; -at = 0x1000a1f4; -t2 = MEM_U32(t1 + 8); -//nop; -MEM_U32(at + 0) = t2; -L40d62c: -t5 = 0x1000a1f4; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40d6b8;} -//nop; -//nop; -a0 = t5; -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L40d654; -//nop; -L40d654: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L40d6b8;} -//nop; -t3 = 0x1000a1f4; -t7 = 0x1000191c; -//nop; -t3 = MEM_U32(t3 + 0); -t7 = t7; -MEM_U32(sp + 20) = t7; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L40d698; -MEM_U32(sp + 24) = t3; -L40d698: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L40d6b0; -//nop; -L40d6b0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40d6b8: -t9 = 0x100002b0; -at = 0x1; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L40d760;} -//nop; -t0 = 0x100002b4; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L40d724;} -//nop; -a0 = 0x10000094; -a1 = 0x1000a560; -a3 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = MEM_U32(a3 + 0); -a2 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L40d710; -MEM_U32(sp + 16) = zero; -L40d710: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1e8; -MEM_U32(at + 0) = v0; -goto L40d7f0; -MEM_U32(at + 0) = v0; -L40d724: -a0 = 0x10000094; -a1 = 0x1000a560; -a3 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = MEM_U32(a3 + 0); -a2 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L40d74c; -MEM_U32(sp + 16) = zero; -L40d74c: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1e8; -MEM_U32(at + 0) = v0; -goto L40d7f0; -MEM_U32(at + 0) = v0; -L40d760: -t8 = 0x100002b4; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L40d7b4;} -//nop; -a0 = 0x10000094; -a1 = 0x1000a560; -a3 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = MEM_U32(a3 + 0); -a2 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L40d7a0; -MEM_U32(sp + 16) = zero; -L40d7a0: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1e8; -MEM_U32(at + 0) = v0; -goto L40d7f0; -MEM_U32(at + 0) = v0; -L40d7b4: -a0 = 0x100000a0; -a1 = 0x1000a560; -a3 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = MEM_U32(a3 + 0); -a2 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L40d7dc; -MEM_U32(sp + 16) = zero; -L40d7dc: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1e8; -//nop; -MEM_U32(at + 0) = v0; -L40d7f0: -t4 = 0x1000a1e8; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L40d8cc;} -//nop; -t6 = 0x10000404; -t2 = 0x10000214; -t6 = MEM_U32(t6 + 0); -at = 0x10000404; -t2 = MEM_U32(t2 + 0); -t1 = t6 + 0x1; -if (t2 != 0) {MEM_U32(at + 0) = t1; -goto L40d8ac;} -MEM_U32(at + 0) = t1; -t5 = 0x1000a24c; -at = 0x65; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 == at) {at = 0x72; -goto L40d848;} -at = 0x72; -if (t5 != at) {//nop; -goto L40d860;} -//nop; -L40d848: -t7 = 0x10000240; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L40d890;} -//nop; -L40d860: -t3 = 0x1000a24c; -at = 0x73; -t3 = MEM_U8(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L40d8ac;} -//nop; -t9 = 0x10000268; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L40d8ac;} -//nop; -L40d890: -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40d8a4; -//nop; -L40d8a4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40d8ac: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40d8c0; -//nop; -L40d8c0: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L40d8cc: -t0 = 0x10000218; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L41977c;} -//nop; -t8 = 0x10000214; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L41977c;} -//nop; -t4 = 0x1000a24c; -at = 0x65; -t4 = MEM_U8(t4 + 0); -//nop; -if (t4 == at) {at = 0x72; -goto L40d91c;} -at = 0x72; -if (t4 != at) {//nop; -goto L40d934;} -//nop; -L40d91c: -t6 = 0x10000240; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L40d964;} -//nop; -L40d934: -t1 = 0x1000a24c; -at = 0x73; -t1 = MEM_U8(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L40d980;} -//nop; -t2 = 0x10000268; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L40d980;} -//nop; -L40d964: -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40d978; -//nop; -L40d978: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40d980: -t5 = 0x1000a1f4; -at = 0x1000a1f0; -t5 = MEM_U32(t5 + 0); -s4 = 0x1000a24c; -MEM_U32(at + 0) = t5; -at = 0x10000354; -s4 = MEM_U8(s4 + 0); -MEM_U32(at + 0) = zero; -at = (int)s4 < (int)0x3; -if (at != 0) {at = (int)s4 < (int)0x47; -goto L40d9f4;} -at = (int)s4 < (int)0x47; -if (at != 0) {//nop; -goto L40d9e0;} -//nop; -t7 = s4 + 0xffffff9d; -at = t7 < 0x11; -if (at == 0) {//nop; -goto L40da08;} -//nop; -//nop; -//nop; -//nop; -//nop; -//nop; -;static void *const Lswitch10007224[] = { -&&L40db8c, -&&L40da08, -&&L412c64, -&&L412c64, -&&L40da08, -&&L40da08, -&&L40da08, -&&L40da08, -&&L40da08, -&&L40da08, -&&L40da08, -&&L40da08, -&&L40da08, -&&L410ea0, -&&L40da08, -&&L412c64, -&&L418634, -}; -dest = Lswitch10007224[t7]; -//nop; -goto *dest; -//nop; -L40d9e0: -at = 0x46; -if (s4 == at) {//nop; -goto L412c64;} -//nop; -//nop; -goto L40da08; -//nop; -L40d9f4: -at = 0x1; -if (s4 == at) {at = 0x2; -goto L4116a8;} -at = 0x2; -if (s4 == at) {//nop; -goto L41222c;} -//nop; -L40da08: -t3 = MEM_U32(sp + 276); -at = 0x100003e8; -a0 = 0x10001948; -//nop; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t3; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40da2c; -a0 = a0; -L40da2c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t9 = 0x10000008; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L40db14;} -//nop; -t0 = 0x10000218; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L41977c;} -//nop; -t8 = 0x10000214; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L41977c;} -//nop; -t4 = 0x1000a24c; -at = 0x65; -t4 = MEM_U8(t4 + 0); -//nop; -if (t4 == at) {at = 0x72; -goto L40da9c;} -at = 0x72; -if (t4 != at) {//nop; -goto L40dab4;} -//nop; -L40da9c: -t6 = 0x10000240; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L40dae4;} -//nop; -L40dab4: -t1 = 0x1000a24c; -at = 0x73; -t1 = MEM_U8(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L40db00;} -//nop; -t2 = 0x10000268; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L40db00;} -//nop; -L40dae4: -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40daf8; -//nop; -L40daf8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40db00: -t5 = 0x1000a1f4; -at = 0x1000a1f0; -t5 = MEM_U32(t5 + 0); -//nop; -MEM_U32(at + 0) = t5; -L40db14: -s4 = 0x1000a24c; -at = 0x10000354; -s4 = MEM_U8(s4 + 0); -MEM_U32(at + 0) = zero; -at = (int)s4 < (int)0x7; -if (at != 0) {at = (int)s4 < (int)0x47; -goto L40db78;} -at = (int)s4 < (int)0x47; -if (at != 0) {//nop; -goto L40db64;} -//nop; -t7 = s4 + 0xffffff9d; -at = t7 < 0x11; -if (at == 0) {//nop; -goto L40db8c;} -//nop; -//nop; -//nop; -//nop; -//nop; -//nop; -;static void *const Lswitch10007268[] = { -&&L40db8c, -&&L40db8c, -&&L412c64, -&&L412c64, -&&L40db8c, -&&L40db8c, -&&L40db8c, -&&L40db8c, -&&L40db8c, -&&L40db8c, -&&L40db8c, -&&L40db8c, -&&L40db8c, -&&L410ea0, -&&L40db8c, -&&L412c64, -&&L418634, -}; -dest = Lswitch10007268[t7]; -//nop; -goto *dest; -//nop; -L40db64: -at = 0x46; -if (s4 == at) {//nop; -goto L412c64;} -//nop; -//nop; -goto L40db8c; -//nop; -L40db78: -at = 0x1; -if (s4 == at) {at = 0x2; -goto L4116a8;} -at = 0x2; -if (s4 == at) {//nop; -goto L41222c;} -//nop; -L40db8c: -t3 = 0x1000043c; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L40e260;} -//nop; -t9 = 0x1000a188; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -t0 = t9 & 0x1; -if (t0 == 0) {//nop; -goto L40dbf4;} -//nop; -t8 = 0x1000194c; -//nop; -t8 = t8; -MEM_U32(sp + 20) = t8; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L40dbe8; -MEM_U32(sp + 16) = zero; -L40dbe8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40e260; -//nop; -L40dbf4: -at = 0x1000a560; -a1 = 0x1000197c; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40dc10; -a1 = a1; -L40dc10: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t4 = 0x10000230; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -at = (int)t4 < (int)0x2; -if (at != 0) {//nop; -goto L40dc84;} -//nop; -t6 = 0x10000264; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L40dc84;} -//nop; -a1 = 0x10001984; -//nop; -a0 = 0x1000a4b0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40dc60; -a1 = a1; -L40dc60: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001990; -//nop; -a0 = 0x1000a4b0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40dc7c; -a1 = a1; -L40dc7c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40dc84: -a1 = 0x1000a1f0; -a0 = 0x10001994; -//nop; -a1 = MEM_U32(a1 + 0); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40dca0; -a0 = a0; -L40dca0: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40dcb8; -a1 = s4; -L40dcb8: -// bdead 40060103 gp = MEM_U32(sp + 64); -at = 0x4b; -t1 = 0x1000a1e6; -//nop; -t1 = MEM_U8(t1 + 0); -//nop; -if (t1 == at) {//nop; -goto L40dcf0;} -//nop; -t2 = 0x10000240; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L40dd24;} -//nop; -L40dcf0: -t5 = 0x1000a520; -t7 = s0 << 2; -t5 = MEM_U32(t5 + 8); -//nop; -t3 = t5 + t7; -a0 = MEM_U32(t3 + 0); -a1 = 0x4d; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40dd10; -a1 = 0x4d; -L40dd10: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L40dd54; -MEM_U32(at + 0) = v0; -L40dd24: -t9 = 0x1000a380; -a1 = 0x10001998; -a0 = MEM_U32(t9 + 124); -//nop; -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40dd40; -a1 = a1; -L40dd40: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -L40dd54: -a1 = 0x1000a1f4; -a0 = 0x1000199c; -//nop; -a1 = MEM_U32(a1 + 0); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40dd70; -a0 = a0; -L40dd70: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40dd88; -a1 = s4; -L40dd88: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100019a4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40dda4; -a1 = a1; -L40dda4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t0 = 0x10000004; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L40dde0;} -//nop; -a1 = 0x100019ac; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ddd8; -a1 = a1; -L40ddd8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40dde0: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a5e0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L40ddf4; -//nop; -L40ddf4: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100001f8; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L40de1c; -MEM_U32(sp + 16) = zero; -L40de1c: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L40dee4;} -//nop; -t8 = 0x10000404; -t6 = 0x1000a1a0; -t8 = MEM_U32(t8 + 0); -at = 0x10000404; -t6 = MEM_U32(t6 + 0); -t4 = t8 + 0x1; -if (t6 == 0) {MEM_U32(at + 0) = t4; -goto L40de94;} -MEM_U32(at + 0) = t4; -t1 = 0x1000a24c; -at = 0x69; -t1 = MEM_U8(t1 + 0); -//nop; -if (t1 == at) {//nop; -goto L40de94;} -//nop; -t2 = 0x10000240; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L40de94;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40de8c; -//nop; -L40de8c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40de94: -t5 = 0x1000a1e6; -at = 0x4b; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L40dec4;} -//nop; -t7 = 0x10000240; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L41977c;} -//nop; -L40dec4: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40ded8; -//nop; -L40ded8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L40dee4: -t3 = 0x1000a1a0; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L40df48;} -//nop; -t9 = 0x1000a24c; -at = 0x69; -t9 = MEM_U8(t9 + 0); -//nop; -if (t9 == at) {//nop; -goto L40df48;} -//nop; -t0 = 0x10000240; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L40df48;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40df40; -//nop; -L40df40: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40df48: -t8 = 0x1000a1f4; -at = 0x1000a1f0; -t4 = 0x100003e4; -t8 = MEM_U32(t8 + 0); -t4 = MEM_U32(t4 + 0); -MEM_U32(at + 0) = t8; -at = 0x3; -if (t4 != at) {//nop; -goto L40df88;} -//nop; -t6 = 0x1000a188; -at = 0x10000; -t6 = MEM_U32(t6 + 0); -//nop; -t1 = t6 & at; -if (t1 == 0) {//nop; -goto L40ea14;} -//nop; -L40df88: -t2 = 0x1000a1e6; -at = 0x4b; -t2 = MEM_U8(t2 + 0); -//nop; -if (t2 == at) {//nop; -goto L41977c;} -//nop; -t5 = 0x1000a1e6; -at = 0x4b; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 == at) {//nop; -goto L40dfd0;} -//nop; -t7 = 0x10000240; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L40e008;} -//nop; -L40dfd0: -t3 = 0x1000a520; -t9 = s0 << 2; -t3 = MEM_U32(t3 + 8); -a1 = 0x49; -t0 = t3 + t9; -//nop; -a0 = MEM_U32(t0 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40dff4; -//nop; -L40dff4: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L40e038; -MEM_U32(at + 0) = v0; -L40e008: -t8 = 0x1000a380; -a1 = 0x100019b4; -//nop; -a0 = MEM_U32(t8 + 124); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40e024; -a1 = a1; -L40e024: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -L40e038: -t4 = 0x10000234; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L40e06c;} -//nop; -a1 = 0x100019b8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40e064; -a1 = a1; -L40e064: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40e06c: -at = 0x1000a560; -t6 = 0x100003e8; -MEM_U32(at + 4) = zero; -t6 = MEM_U32(t6 + 0); -at = 0x1; -if (t6 == at) {at = 0x3; -goto L40e09c;} -at = 0x3; -if (t6 == at) {//nop; -goto L40e09c;} -//nop; -s4 = 0x100019bc; -s4 = s4; -goto L40e0a8; -s4 = s4; -L40e09c: -s4 = 0x100019c0; -//nop; -s4 = s4; -L40e0a8: -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40e0b8; -a1 = s4; -L40e0b8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L40e0d8; -//nop; -L40e0d8: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x2; -t1 = 0x100003e8; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == at) {at = 0x100003e8; -goto L40e104;} -at = 0x100003e8; -t2 = 0x1; -MEM_U32(at + 0) = t2; -goto L40e120; -MEM_U32(at + 0) = t2; -L40e104: -a1 = 0x100019c8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40e118; -a1 = a1; -L40e118: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40e120: -t5 = 0x10000288; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40e154;} -//nop; -a1 = 0x100019cc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40e14c; -a1 = a1; -L40e14c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40e154: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a2d0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L40e168; -//nop; -L40e168: -// bdead 40060003 gp = MEM_U32(sp + 64); -a1 = zero; -a0 = 0x100019d8; -//nop; -a2 = zero; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40e184; -a0 = a0; -L40e184: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x10000094; -a1 = 0x1000a560; -a3 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = MEM_U32(a3 + 0); -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L40e1b0; -MEM_U32(sp + 16) = zero; -L40e1b0: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L40e218;} -//nop; -t7 = 0x10000404; -t9 = 0x10000240; -t7 = MEM_U32(t7 + 0); -at = 0x10000404; -t9 = MEM_U32(t9 + 0); -t3 = t7 + 0x1; -if (t9 != 0) {MEM_U32(at + 0) = t3; -goto L40e1f8;} -MEM_U32(at + 0) = t3; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40e1f0; -//nop; -L40e1f0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40e1f8: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40e20c; -//nop; -L40e20c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L40e218: -t0 = 0x10000240; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L40e24c;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40e244; -//nop; -L40e244: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40e24c: -t8 = 0x1000a1f4; -at = 0x1000a1f0; -t8 = MEM_U32(t8 + 0); -MEM_U32(at + 0) = t8; -goto L40ea14; -MEM_U32(at + 0) = t8; -L40e260: -t4 = 0x1000a1e6; -at = 0x4b; -t4 = MEM_U8(t4 + 0); -//nop; -if (t4 == at) {//nop; -goto L40e290;} -//nop; -t6 = 0x10000240; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L40e2a8;} -//nop; -L40e290: -t1 = 0x1000a188; -at = 0x1000a188; -t1 = MEM_U32(t1 + 0); -//nop; -t2 = t1 | 0x6; -MEM_U32(at + 0) = t2; -L40e2a8: -t5 = 0x1000a188; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -t7 = t5 & 0x1; -if (t7 == 0) {//nop; -goto L40ea14;} -//nop; -t3 = 0x10000230; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -at = (int)t3 < (int)0x2; -if (at != 0) {//nop; -goto L40e330;} -//nop; -t9 = 0x10000264; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L40e330;} -//nop; -a1 = 0x100019dc; -//nop; -a0 = 0x1000a4b0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40e30c; -a1 = a1; -L40e30c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100019e8; -//nop; -a0 = 0x1000a4b0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40e328; -a1 = a1; -L40e328: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40e330: -at = 0x1000a560; -a1 = 0x100019ec; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40e34c; -a1 = a1; -L40e34c: -// bdead 40060103 gp = MEM_U32(sp + 64); -a2 = zero; -a1 = 0x1000a1f0; -a0 = 0x100019f0; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40e36c; -a0 = a0; -L40e36c: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40e384; -a1 = s4; -L40e384: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t0 = 0x1000a188; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -t8 = t0 & 0x4; -if (t8 == 0) {//nop; -goto L40e3dc;} -//nop; -t4 = 0x1000a520; -t6 = s0 << 2; -t4 = MEM_U32(t4 + 8); -//nop; -t1 = t4 + t6; -a0 = MEM_U32(t1 + 0); -a1 = 0x4d; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40e3c8; -a1 = 0x4d; -L40e3c8: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L40e40c; -MEM_U32(at + 0) = v0; -L40e3dc: -t2 = 0x1000a380; -a1 = 0x100019f4; -//nop; -a0 = MEM_U32(t2 + 124); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40e3f8; -a1 = a1; -L40e3f8: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -L40e40c: -a1 = 0x1000a1f4; -a0 = 0x100019f8; -//nop; -a1 = MEM_U32(a1 + 0); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40e428; -a0 = a0; -L40e428: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40e440; -a1 = s4; -L40e440: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t5 = 0x1000a188; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -t7 = t5 & 0x2; -if (t7 == 0) {//nop; -goto L40e494;} -//nop; -t3 = 0x1000a520; -t9 = s0 << 2; -t3 = MEM_U32(t3 + 8); -a1 = 0x4c; -t0 = t3 + t9; -//nop; -a0 = MEM_U32(t0 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40e488; -//nop; -L40e488: -// bdead 4006010b gp = MEM_U32(sp + 64); -MEM_U32(sp + 272) = v0; -goto L40e4b8; -MEM_U32(sp + 272) = v0; -L40e494: -t8 = 0x1000a380; -a1 = 0x10001a00; -//nop; -a0 = MEM_U32(t8 + 124); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40e4b0; -a1 = a1; -L40e4b0: -// bdead 4006010b gp = MEM_U32(sp + 64); -MEM_U32(sp + 272) = v0; -L40e4b8: -a0 = 0x10001a04; -//nop; -a1 = MEM_U32(sp + 272); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40e4d0; -a0 = a0; -L40e4d0: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40e4e8; -a1 = s4; -L40e4e8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001a08; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40e504; -a1 = a1; -L40e504: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001a10; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40e520; -a1 = a1; -L40e520: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t4 = 0x10000004; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L40e55c;} -//nop; -a1 = 0x10001a18; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40e554; -a1 = a1; -L40e554: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40e55c: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a5d0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L40e570; -//nop; -L40e570: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100001ec; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L40e598; -MEM_U32(sp + 16) = zero; -L40e598: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L40e64c;} -//nop; -t6 = 0x10000404; -t2 = 0x1000a1a0; -t6 = MEM_U32(t6 + 0); -at = 0x10000404; -t2 = MEM_U32(t2 + 0); -t1 = t6 + 0x1; -if (t2 == 0) {MEM_U32(at + 0) = t1; -goto L40e610;} -MEM_U32(at + 0) = t1; -t5 = 0x1000a24c; -at = 0x69; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 == at) {//nop; -goto L40e610;} -//nop; -t7 = 0x10000240; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L40e610;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40e608; -//nop; -L40e608: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40e610: -t3 = 0x1000a188; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -t9 = t3 & 0x4; -if (t9 != 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40e640; -//nop; -L40e640: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L40e64c: -t0 = 0x1000a188; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -t8 = t0 & 0x2; -if (t8 != 0) {//nop; -goto L40e680;} -//nop; -//nop; -a0 = MEM_U32(sp + 272); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40e678; -//nop; -L40e678: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40e680: -t4 = 0x1000a1a0; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L40e6e4;} -//nop; -t6 = 0x1000a24c; -at = 0x69; -t6 = MEM_U8(t6 + 0); -//nop; -if (t6 == at) {//nop; -goto L40e6e4;} -//nop; -t1 = 0x10000240; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L40e6e4;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40e6dc; -//nop; -L40e6dc: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40e6e4: -t2 = 0x1000a1f4; -at = 0x1000a1f0; -t5 = 0x1000a1e6; -t2 = MEM_U32(t2 + 0); -t5 = MEM_U8(t5 + 0); -MEM_U32(at + 0) = t2; -at = 0x4b; -if (t5 == at) {at = 0x1000a560; -goto L41977c;} -at = 0x1000a560; -t7 = 0x100003e8; -MEM_U32(at + 4) = zero; -t7 = MEM_U32(t7 + 0); -at = 0x1; -if (t7 == at) {at = 0x3; -goto L40e734;} -at = 0x3; -if (t7 == at) {//nop; -goto L40e734;} -//nop; -s4 = 0x10001a20; -s4 = s4; -goto L40e740; -s4 = s4; -L40e734: -s4 = 0x10001a24; -//nop; -s4 = s4; -L40e740: -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40e750; -a1 = s4; -L40e750: -// bdead 40060103 gp = MEM_U32(sp + 64); -at = 0x4b; -t3 = 0x1000a1e6; -//nop; -t3 = MEM_U8(t3 + 0); -//nop; -if (t3 == at) {//nop; -goto L40e788;} -//nop; -t9 = 0x10000240; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L40e7bc;} -//nop; -L40e788: -t0 = 0x1000a520; -t8 = s0 << 2; -t0 = MEM_U32(t0 + 8); -//nop; -t4 = t0 + t8; -a0 = MEM_U32(t4 + 0); -a1 = 0x49; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40e7a8; -a1 = 0x49; -L40e7a8: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L40e7ec; -MEM_U32(at + 0) = v0; -L40e7bc: -t6 = 0x1000a380; -a1 = 0x10001a2c; -//nop; -a0 = MEM_U32(t6 + 124); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40e7d8; -a1 = a1; -L40e7d8: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -L40e7ec: -t1 = 0x10000234; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L40e820;} -//nop; -a1 = 0x10001a30; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40e818; -a1 = a1; -L40e818: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40e820: -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L40e838; -//nop; -L40e838: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x2; -t2 = 0x100003e8; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == at) {at = 0x100003e8; -goto L40e864;} -at = 0x100003e8; -t5 = 0x1; -MEM_U32(at + 0) = t5; -goto L40e880; -MEM_U32(at + 0) = t5; -L40e864: -a1 = 0x10001a34; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40e878; -a1 = a1; -L40e878: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40e880: -t7 = 0x10000288; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L40e8b4;} -//nop; -a1 = 0x10001a38; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40e8ac; -a1 = a1; -L40e8ac: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40e8b4: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a2d0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L40e8c8; -//nop; -L40e8c8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a260; -//nop; -f_addlist(mem, sp, a0, a1); -goto L40e8e4; -//nop; -L40e8e4: -// bdead 40060003 gp = MEM_U32(sp + 64); -a1 = zero; -a0 = 0x10001a44; -//nop; -a2 = zero; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L40e900; -a0 = a0; -L40e900: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x10000094; -a1 = 0x1000a560; -a3 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = MEM_U32(a3 + 0); -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L40e92c; -MEM_U32(sp + 16) = zero; -L40e92c: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L40e9b0;} -//nop; -t3 = 0x10000404; -t0 = 0x10000240; -t3 = MEM_U32(t3 + 0); -at = 0x10000404; -t0 = MEM_U32(t0 + 0); -t9 = t3 + 0x1; -if (t0 != 0) {MEM_U32(at + 0) = t9; -goto L40e990;} -MEM_U32(at + 0) = t9; -t8 = 0x1000a188; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -t4 = t8 & 0x4; -if (t4 != 0) {//nop; -goto L40e990;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40e988; -//nop; -L40e988: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40e990: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40e9a4; -//nop; -L40e9a4: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L40e9b0: -t6 = 0x10000240; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L40ea00;} -//nop; -t1 = 0x1000a188; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -t2 = t1 & 0x4; -if (t2 != 0) {//nop; -goto L40ea00;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40e9f8; -//nop; -L40e9f8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40ea00: -t5 = 0x1000a1f4; -at = 0x1000a1f0; -t5 = MEM_U32(t5 + 0); -//nop; -MEM_U32(at + 0) = t5; -L40ea14: -t7 = 0x1000a36c; -at = 0x1; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L40f30c;} -//nop; -t3 = 0x10000008; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L40f30c;} -//nop; -t9 = 0x1000a1a0; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L40eabc;} -//nop; -t0 = 0x100002b4; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L40eabc;} -//nop; -t8 = 0x1000043c; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L40eabc;} -//nop; -t4 = 0x1000a24c; -at = 0x69; -t4 = MEM_U8(t4 + 0); -//nop; -if (t4 == at) {//nop; -goto L40eabc;} -//nop; -t6 = 0x100003dc; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L40eae0;} -//nop; -L40eabc: -a1 = 0x100000a0; -at = 0x1000a560; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -MEM_U32(at + 4) = zero; -f_addstr(mem, sp, a0, a1); -goto L40ead8; -MEM_U32(at + 4) = zero; -L40ead8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40eae0: -t1 = 0x10000234; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L40eb14;} -//nop; -a1 = 0x10001a48; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40eb0c; -a1 = a1; -L40eb0c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40eb14: -t2 = 0x1000a36c; -at = 0x1; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L40ebb4;} -//nop; -t5 = 0x10000008; -at = 0x2; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == at) {at = 0x3; -goto L40eb4c;} -at = 0x3; -if (t5 != at) {//nop; -goto L40ebb4;} -//nop; -L40eb4c: -t7 = 0x10000248; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L40eb80;} -//nop; -a1 = 0x10001a4c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40eb78; -a1 = a1; -L40eb78: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40eb80: -t3 = 0x10000250; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L40ebb4;} -//nop; -a1 = 0x10001a50; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ebac; -a1 = a1; -L40ebac: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40ebb4: -t9 = 0x10000124; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L40ebe8;} -//nop; -a1 = 0x10001a54; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ebe0; -a1 = a1; -L40ebe0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40ebe8: -t0 = 0x1000026c; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L40ec70;} -//nop; -a1 = 0x10001a58; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ec14; -a1 = a1; -L40ec14: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001a5c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ec30; -a1 = a1; -L40ec30: -// bdead 40060103 gp = MEM_U32(sp + 64); -a2 = zero; -a1 = 0x1000a1fc; -a0 = 0x10001a60; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40ec50; -a0 = a0; -L40ec50: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40ec68; -a1 = s4; -L40ec68: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40ec70: -t8 = 0x1000a36c; -at = 0x1; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L40ed14;} -//nop; -t4 = 0x10000008; -at = 0x2; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == at) {at = 0x3; -goto L40eca8;} -at = 0x3; -if (t4 != at) {//nop; -goto L40ed14;} -//nop; -L40eca8: -t6 = 0x10000230; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -at = (int)t6 < (int)0x3; -if (at != 0) {//nop; -goto L40ece0;} -//nop; -a1 = 0x10001a64; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ecd8; -a1 = a1; -L40ecd8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40ece0: -t1 = 0x10000324; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L40ed14;} -//nop; -a1 = 0x10001a68; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ed0c; -a1 = a1; -L40ed0c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40ed14: -t2 = 0x1000025c; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L40ed4c;} -//nop; -a1 = 0x10001a6c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ed40; -a1 = a1; -L40ed40: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40ed68; -//nop; -L40ed4c: -a1 = 0x10001a70; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ed60; -a1 = a1; -L40ed60: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40ed68: -t5 = 0x1000a198; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40ed9c;} -//nop; -a1 = 0x10001a74; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ed94; -a1 = a1; -L40ed94: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40ed9c: -t7 = 0x1000024c; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L40edd0;} -//nop; -a1 = 0x10001a78; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40edc8; -a1 = a1; -L40edc8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40edd0: -t3 = 0x10000008; -at = 0x2; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == at) {//nop; -goto L40ee74;} -//nop; -t9 = 0x10000008; -at = 0x3; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L40ee20;} -//nop; -a1 = 0x10001a7c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ee14; -a1 = a1; -L40ee14: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40ee74; -//nop; -L40ee20: -t0 = 0x100003fc; -at = 0x3; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L40ee58;} -//nop; -a1 = 0x10001a80; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ee4c; -a1 = a1; -L40ee4c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40ee74; -//nop; -L40ee58: -a1 = 0x10001a84; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ee6c; -a1 = a1; -L40ee6c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40ee74: -t8 = 0x1000a24c; -at = 0x69; -t8 = MEM_U8(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L40eea8;} -//nop; -a1 = 0x10001a88; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40eea0; -a1 = a1; -L40eea0: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40eea8: -t4 = 0x10000108; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L40eefc;} -//nop; -a1 = 0x1000010c; -a0 = 0x10001a8c; -//nop; -a1 = MEM_U32(a1 + 0); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40eedc; -a0 = a0; -L40eedc: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40eef4; -a1 = s4; -L40eef4: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40eefc: -t6 = 0x1000a520; -at = 0x1; -t6 = MEM_U32(t6 + 4); -//nop; -if (t6 != at) {//nop; -goto L40ef94;} -//nop; -t1 = 0x1000a1ec; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L40ef34;} -//nop; -MEM_U32(sp + 280) = t1; -goto L40efbc; -MEM_U32(sp + 280) = t1; -L40ef34: -t2 = 0x10000228; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L40ef60;} -//nop; -t5 = 0x10001a90; -//nop; -t5 = t5; -MEM_U32(sp + 280) = t5; -goto L40efbc; -MEM_U32(sp + 280) = t5; -L40ef60: -t7 = 0x1000a520; -t3 = s0 << 2; -t7 = MEM_U32(t7 + 8); -a1 = 0x6f; -t9 = t7 + t3; -a0 = MEM_U32(t9 + 0); -//nop; -//nop; -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40ef88; -//nop; -L40ef88: -// bdead 4006010b gp = MEM_U32(sp + 64); -MEM_U32(sp + 280) = v0; -goto L40efbc; -MEM_U32(sp + 280) = v0; -L40ef94: -t0 = 0x1000a520; -t8 = s0 << 2; -t0 = MEM_U32(t0 + 8); -//nop; -t4 = t0 + t8; -a0 = MEM_U32(t4 + 0); -a1 = 0x6f; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40efb4; -a1 = 0x6f; -L40efb4: -// bdead 4006010b gp = MEM_U32(sp + 64); -MEM_U32(sp + 280) = v0; -L40efbc: -a0 = 0x10001a98; -//nop; -a1 = MEM_U32(sp + 280); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40efd4; -a0 = a0; -L40efd4: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40efec; -a1 = s4; -L40efec: -// bdead 40060103 gp = MEM_U32(sp + 64); -at = 0x1; -t6 = 0x1000a36c; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L40f1e8;} -//nop; -t1 = 0x10000008; -at = 0x2; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == at) {at = 0x3; -goto L40f02c;} -at = 0x3; -if (t1 != at) {//nop; -goto L40f1e8;} -//nop; -L40f02c: -s4 = 0x1000a184; -//nop; -s4 = MEM_U32(s4 + 0); -//nop; -if (s4 == 0) {at = 0x1; -goto L40f098;} -at = 0x1; -if (s4 == at) {at = 0x2; -goto L40f05c;} -at = 0x2; -if (s4 == at) {//nop; -goto L40f07c;} -//nop; -//nop; -goto L40f098; -//nop; -L40f05c: -a1 = 0x10001a9c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40f070; -a1 = a1; -L40f070: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40f098; -//nop; -L40f07c: -a1 = 0x10001aa4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40f090; -a1 = a1; -L40f090: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40f098: -t2 = 0x10000110; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L40f0d0;} -//nop; -a1 = 0x10001aac; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40f0c4; -a1 = a1; -L40f0c4: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40f1b4; -//nop; -L40f0d0: -t5 = 0x1000a1ec; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40f120;} -//nop; -t7 = 0x10000228; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L40f120;} -//nop; -t3 = 0x1000a520; -at = 0x1; -t3 = MEM_U32(t3 + 4); -//nop; -if (t3 != at) {//nop; -goto L40f120;} -//nop; -MEM_U32(sp + 268) = t5; -goto L40f14c; -MEM_U32(sp + 268) = t5; -L40f120: -t9 = 0x1000a520; -t0 = s0 << 2; -t9 = MEM_U32(t9 + 8); -a1 = 0x6f; -t8 = t9 + t0; -//nop; -a0 = MEM_U32(t8 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40f144; -//nop; -L40f144: -// bdead 4006000b gp = MEM_U32(sp + 64); -MEM_U32(sp + 268) = v0; -L40f14c: -//nop; -a0 = MEM_U32(sp + 268); -//nop; -v0 = f_make_ii_file_name(mem, sp, a0); -goto L40f15c; -//nop; -L40f15c: -// bdead 4006010b gp = MEM_U32(sp + 64); -MEM_U32(sp + 264) = v0; -a0 = 0x10001ab0; -//nop; -a1 = MEM_U32(sp + 264); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40f17c; -a0 = a0; -L40f17c: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40f194; -a1 = s4; -L40f194: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = MEM_U32(sp + 264); -//nop; -//nop; -//nop; -wrapper_free(mem, a0); -goto L40f1ac; -//nop; -L40f1ac: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40f1b4: -t4 = 0x10000120; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L40f1e8;} -//nop; -a1 = 0x10001ab4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40f1e0; -a1 = a1; -L40f1e0: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40f1e8: -t6 = 0x1000021c; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -at = (int)t6 < (int)0x2; -if (at != 0) {//nop; -goto L40f240;} -//nop; -t1 = 0x1000a380; -a0 = 0x10001ab8; -//nop; -a1 = MEM_U32(t1 + 132); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40f220; -a0 = a0; -L40f220: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40f238; -a1 = s4; -L40f238: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40f240: -a1 = 0x10000400; -a0 = 0x10001abc; -//nop; -a1 = MEM_U32(a1 + 0); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40f25c; -a0 = a0; -L40f25c: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40f274; -a1 = s4; -L40f274: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a2f0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L40f290; -//nop; -L40f290: -// bdead 40060183 gp = MEM_U32(sp + 64); -//nop; -t2 = 0x1000026c; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L40f2e8;} -//nop; -a0 = 0x10001ac0; -//nop; -a1 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40f2c4; -a0 = a0; -L40f2c4: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40f2dc; -a1 = s4; -L40f2dc: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40f308; -//nop; -L40f2e8: -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L40f300; -//nop; -L40f300: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40f308: -// bdead 40060103 s2 = zero; -L40f30c: -t7 = 0x100003e4; -at = 0x3; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L410450;} -//nop; -t3 = 0x1000a188; -at = 0x10000; -t3 = MEM_U32(t3 + 0); -//nop; -t5 = t3 & at; -if (t5 == 0) {//nop; -goto L40f630;} -//nop; -t9 = 0x1000a1e6; -at = 0x4d; -t9 = MEM_U8(t9 + 0); -//nop; -if (t9 == at) {//nop; -goto L40f37c;} -//nop; -t0 = 0x10000240; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L40f37c;} -//nop; -t8 = t3 & 0x4; -if (t8 == 0) {//nop; -goto L40f3b0;} -//nop; -L40f37c: -t4 = 0x1000a520; -t6 = s0 << 2; -t4 = MEM_U32(t4 + 8); -//nop; -t1 = t4 + t6; -a0 = MEM_U32(t1 + 0); -a1 = 0x50; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40f39c; -a1 = 0x50; -L40f39c: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L40f3e0; -MEM_U32(at + 0) = v0; -L40f3b0: -t2 = 0x1000a380; -a1 = 0x10001ac4; -//nop; -a0 = MEM_U32(t2 + 124); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40f3cc; -a1 = a1; -L40f3cc: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -L40f3e0: -a1 = 0x1000009c; -at = 0x1000a560; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -MEM_U32(at + 4) = zero; -f_addstr(mem, sp, a0, a1); -goto L40f3fc; -MEM_U32(at + 4) = zero; -L40f3fc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L40f41c; -//nop; -L40f41c: -// bdead 40060103 gp = MEM_U32(sp + 64); -a2 = zero; -a1 = 0x1000a1f4; -a0 = 0x10001ac8; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40f43c; -a0 = a0; -L40f43c: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40f454; -a1 = s4; -L40f454: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x1; -t7 = 0x10000004; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == at) {at = 0x2; -goto L40f47c;} -at = 0x2; -if (t7 != at) {//nop; -goto L40f49c;} -//nop; -L40f47c: -a1 = 0x10001acc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40f490; -a1 = a1; -L40f490: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40f4f0; -//nop; -L40f49c: -t5 = 0x10000004; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L40f4d4;} -//nop; -a1 = 0x10001ad4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40f4c8; -a1 = a1; -L40f4c8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L40f4f0; -//nop; -L40f4d4: -a1 = 0x10001adc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40f4e8; -a1 = a1; -L40f4e8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40f4f0: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a2a0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L40f504; -//nop; -L40f504: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -t9 = 0x1000a1f8; -a0 = 0x1000009c; -t9 = MEM_U32(t9 + 0); -a1 = 0x1000a560; -MEM_U32(sp + 16) = t9; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L40f534; -a3 = zero; -L40f534: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -t0 = 0x10000240; -at = 0x1000a1e8; -t0 = MEM_U32(t0 + 0); -MEM_U32(at + 0) = v0; -if (t0 != 0) {//nop; -goto L40f570;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40f568; -//nop; -L40f568: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40f570: -t3 = 0x1000a1e8; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L40f604;} -//nop; -t8 = 0x10000404; -at = 0x10000404; -t8 = MEM_U32(t8 + 0); -t6 = 0x1000a1e6; -t4 = t8 + 0x1; -t6 = MEM_U8(t6 + 0); -MEM_U32(at + 0) = t4; -at = 0x4d; -if (t6 == at) {//nop; -goto L41977c;} -//nop; -t1 = 0x10000240; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L41977c;} -//nop; -t2 = 0x1000a188; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -t7 = t2 & 0x4; -if (t7 != 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40f5f8; -//nop; -L40f5f8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L40f604: -t5 = 0x1000a1e6; -at = 0x4d; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 == at) {//nop; -goto L41977c;} -//nop; -t9 = 0x1000a1f4; -at = 0x1000a1f0; -t9 = MEM_U32(t9 + 0); -//nop; -MEM_U32(at + 0) = t9; -L40f630: -t0 = 0x1000a1a0; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L40f6c4;} -//nop; -t3 = 0x100002b4; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L40f6c4;} -//nop; -t8 = 0x1000043c; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L40f6c4;} -//nop; -t4 = 0x1000a24c; -at = 0x69; -t4 = MEM_U8(t4 + 0); -//nop; -if (t4 == at) {//nop; -goto L40f6c4;} -//nop; -t6 = 0x100003dc; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L40f6c4;} -//nop; -t1 = 0x1000a188; -at = 0x10000; -t1 = MEM_U32(t1 + 0); -//nop; -t2 = t1 & at; -if (t2 == 0) {//nop; -goto L40f720;} -//nop; -L40f6c4: -t7 = 0x10000008; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L40f720;} -//nop; -a1 = 0x100000a0; -at = 0x1000a560; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -MEM_U32(at + 4) = zero; -f_addstr(mem, sp, a0, a1); -goto L40f6f8; -MEM_U32(at + 4) = zero; -L40f6f8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L40f718; -//nop; -L40f718: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40f720: -t5 = 0x1000a1e6; -at = 0x66; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L40f798;} -//nop; -t9 = 0x10000278; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L40f764;} -//nop; -t0 = 0x1000a380; -at = 0x1000a1f4; -t3 = MEM_U32(t0 + 12); -MEM_U32(at + 0) = t3; -goto L40f898; -MEM_U32(at + 0) = t3; -L40f764: -t8 = 0x1000a520; -t4 = s0 << 2; -t8 = MEM_U32(t8 + 8); -//nop; -t6 = t8 + t4; -a0 = MEM_U32(t6 + 0); -a1 = 0x42; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40f784; -a1 = 0x42; -L40f784: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L40f898; -MEM_U32(at + 0) = v0; -L40f798: -t1 = 0x1000026c; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L40f7c8;} -//nop; -t2 = 0x10000258; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L40f7dc;} -//nop; -L40f7c8: -t7 = 0x10000124; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {at = 0x1000a1f4; -goto L40f7e8;} -L40f7dc: -at = 0x1000a1f4; -MEM_U32(at + 0) = zero; -goto L40f898; -MEM_U32(at + 0) = zero; -L40f7e8: -t5 = 0x10000258; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40f838;} -//nop; -t9 = 0x1000a520; -t0 = s0 << 2; -t9 = MEM_U32(t9 + 8); -a1 = 0x7; -t3 = t9 + t0; -//nop; -a0 = MEM_U32(t3 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40f824; -//nop; -L40f824: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L40f898; -MEM_U32(at + 0) = v0; -L40f838: -t8 = 0x10000240; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L40f884;} -//nop; -t4 = 0x1000a520; -t6 = s0 << 2; -t4 = MEM_U32(t4 + 8); -//nop; -t1 = t4 + t6; -a0 = MEM_U32(t1 + 0); -a1 = 0x42; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40f870; -a1 = 0x42; -L40f870: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L40f898; -MEM_U32(at + 0) = v0; -L40f884: -t2 = 0x1000a380; -at = 0x1000a1f4; -t7 = MEM_U32(t2 + 12); -//nop; -MEM_U32(at + 0) = t7; -L40f898: -t5 = 0x1000a1f4; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40f924;} -//nop; -//nop; -a0 = t5; -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L40f8c0; -//nop; -L40f8c0: -// bdead 4006010b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L40f924;} -//nop; -t9 = 0x10001ae4; -t0 = 0x1000a1f4; -t9 = t9; -MEM_U32(sp + 20) = t9; -//nop; -t0 = MEM_U32(t0 + 0); -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t0; -f_error(mem, sp, a0, a1, a2, a3); -goto L40f904; -MEM_U32(sp + 24) = t0; -L40f904: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L40f91c; -//nop; -L40f91c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40f924: -t3 = 0x1000a1a0; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L40f984;} -//nop; -t8 = 0x1000a24c; -at = 0x69; -t8 = MEM_U8(t8 + 0); -//nop; -if (t8 == at) {//nop; -goto L40f984;} -//nop; -t4 = 0x100003dc; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L40f984;} -//nop; -t6 = 0x100002b4; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L40fa2c;} -//nop; -L40f984: -t1 = 0x1000043c; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L40fa2c;} -//nop; -t2 = 0x1000a1a4; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L40f9f8;} -//nop; -t7 = 0x1000a24c; -at = 0x63; -t7 = MEM_U8(t7 + 0); -//nop; -if (t7 == at) {at = 0x73; -goto L40f9dc;} -at = 0x73; -if (t7 == at) {at = 0x70; -goto L40f9dc;} -at = 0x70; -if (t7 != at) {//nop; -goto L40f9f8;} -//nop; -L40f9dc: -a1 = 0x10001b10; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40f9f0; -a1 = a1; -L40f9f0: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40f9f8: -t5 = 0x1000a24c; -//nop; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 != s0) {//nop; -goto L40fa2c;} -//nop; -a1 = 0x10001b18; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40fa24; -a1 = a1; -L40fa24: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40fa2c: -t9 = 0x10000008; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L40fd1c;} -//nop; -t0 = 0x10000234; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L40fa78;} -//nop; -a1 = 0x10001b20; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40fa70; -a1 = a1; -L40fa70: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40fa78: -t3 = 0x1000a36c; -at = 0x1; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L40fb8c;} -//nop; -t8 = 0x1000043c; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L40fb34;} -//nop; -t4 = 0x1000a188; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -t6 = t4 & 0x1; -if (t6 != 0) {//nop; -goto L40fb34;} -//nop; -a1 = 0x10001b24; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40fad8; -a1 = a1; -L40fad8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001b2c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40faf4; -a1 = a1; -L40faf4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001b3c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40fb10; -a1 = a1; -L40fb10: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a2b0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L40fb2c; -//nop; -L40fb2c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40fb34: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a2c0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L40fb48; -//nop; -L40fb48: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001b4c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40fb64; -a1 = a1; -L40fb64: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000400; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L40fb84; -//nop; -L40fb84: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40fb8c: -t1 = 0x10000004; -at = 0x1; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == at) {at = 0x2; -goto L40fbac;} -at = 0x2; -if (t1 != at) {//nop; -goto L40fbcc;} -//nop; -L40fbac: -a1 = 0x10001b50; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40fbc0; -a1 = a1; -L40fbc0: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40fc38; -//nop; -L40fbcc: -t2 = 0x10000004; -at = 0x3; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L40fc04;} -//nop; -a1 = 0x10001b58; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40fbf8; -a1 = a1; -L40fbf8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L40fc38; -//nop; -L40fc04: -t7 = 0x10000004; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L40fc38;} -//nop; -a1 = 0x10001b60; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40fc30; -a1 = a1; -L40fc30: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40fc38: -t5 = 0x100003a0; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L40fc6c;} -//nop; -a1 = 0x10001b68; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40fc64; -a1 = a1; -L40fc64: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L40fc6c: -a1 = 0x1000a1fc; -a0 = 0x10001b78; -//nop; -a1 = MEM_U32(a1 + 0); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40fc88; -a0 = a0; -L40fc88: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40fca0; -a1 = s4; -L40fca0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a310; -//nop; -f_addlist(mem, sp, a0, a1); -goto L40fcbc; -//nop; -L40fcbc: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t9 = 0x1000021c; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -at = (int)t9 < (int)0x2; -if (at != 0) {//nop; -goto L40fd1c;} -//nop; -t0 = 0x1000a380; -a0 = 0x10001b7c; -//nop; -a1 = MEM_U32(t0 + 132); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L40fcfc; -a0 = a0; -L40fcfc: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L40fd14; -a1 = s4; -L40fd14: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40fd1c: -t3 = 0x1000043c; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L40fd50;} -//nop; -t8 = 0x1000a188; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -t4 = t8 & 0x1; -if (t4 == 0) {//nop; -goto L40fd6c;} -//nop; -L40fd50: -t6 = 0x1000a380; -//nop; -a0 = MEM_U32(t6 + 8); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L40fd64; -//nop; -L40fd64: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40fd6c: -t1 = 0x1000043c; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L40fda0;} -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a260; -//nop; -f_addlist(mem, sp, a0, a1); -goto L40fd98; -//nop; -L40fd98: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L40fda0: -t2 = 0x1000026c; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L40fdcc;} -//nop; -s4 = 0x1000a1f0; -//nop; -s4 = MEM_U32(s4 + 0); -//nop; -goto L40fdd0; -//nop; -L40fdcc: -s4 = zero; -L40fdd0: -t7 = 0x1000a1f8; -a0 = 0x100000a0; -a1 = 0x1000a560; -a3 = 0x1000a1f4; -//nop; -t7 = MEM_U32(t7 + 0); -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = MEM_U32(a3 + 0); -a2 = s4; -MEM_U32(sp + 16) = t7; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L40fe00; -MEM_U32(sp + 16) = t7; -L40fe00: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -t5 = 0x10000108; -at = 0x1000a1e8; -t5 = MEM_U32(t5 + 0); -MEM_U32(at + 0) = v0; -if (t5 == 0) {//nop; -goto L40ff80;} -//nop; -t9 = 0x1000a1e8; -at = 0xfa; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {at = 0x1000a1e8; -goto L40ff80;} -at = 0x1000a1e8; -t3 = 0x1000a1ec; -MEM_U32(at + 0) = zero; -at = 0x10000128; -t3 = MEM_U32(t3 + 0); -t0 = 0x1; -if (t3 == 0) {MEM_U32(at + 0) = t0; -goto L40fe8c;} -MEM_U32(at + 0) = t0; -t8 = 0x10000228; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L40fe8c;} -//nop; -t4 = 0x1000a520; -at = 0x1; -t4 = MEM_U32(t4 + 4); -//nop; -if (t4 != at) {//nop; -goto L40fe8c;} -//nop; -MEM_U32(sp + 260) = t3; -goto L40ff1c; -MEM_U32(sp + 260) = t3; -L40fe8c: -t6 = 0x1000a24c; -at = 0x3f; -t6 = MEM_U8(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L40fef0;} -//nop; -t1 = 0x1000a1e6; -at = 0x62; -t1 = MEM_U8(t1 + 0); -//nop; -if (t1 == at) {//nop; -goto L40fef0;} -//nop; -t2 = 0x10000240; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L40fef0;} -//nop; -t7 = 0x1000a380; -at = 0x10000410; -t5 = MEM_U32(t7 + 48); -//nop; -MEM_U32(sp + 260) = t5; -MEM_U32(at + 0) = t5; -goto L40ff1c; -MEM_U32(at + 0) = t5; -L40fef0: -t9 = 0x1000a520; -t0 = s0 << 2; -t9 = MEM_U32(t9 + 8); -a1 = 0x6f; -t8 = t9 + t0; -//nop; -a0 = MEM_U32(t8 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L40ff14; -//nop; -L40ff14: -// bdead 4006000b gp = MEM_U32(sp + 64); -MEM_U32(sp + 260) = v0; -L40ff1c: -//nop; -a0 = MEM_U32(sp + 280); -//nop; -v0 = f_touch(mem, sp, a0); -goto L40ff2c; -//nop; -L40ff2c: -// bdead 4006010b gp = MEM_U32(sp + 64); -if ((int)v0 >= 0) {//nop; -goto L40ff50;} -//nop; -t4 = 0x10000404; -at = 0x10000404; -t4 = MEM_U32(t4 + 0); -//nop; -t3 = t4 + 0x1; -MEM_U32(at + 0) = t3; -L40ff50: -t6 = 0x1000a520; -at = 0x1; -t6 = MEM_U32(t6 + 4); -//nop; -if (t6 != at) {//nop; -goto L40ff80;} -//nop; -t1 = 0x10000228; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L41b960;} -//nop; -L40ff80: -t2 = 0x1000026c; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L41977c;} -//nop; -t7 = 0x1000a1e8; -at = 0xff; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {at = 0x10000374; -goto L40ffd8;} -at = 0x10000374; -a1 = 0x10001b84; -//nop; -t5 = 0x1; -a0 = 0x1000a470; -MEM_U32(at + 0) = t5; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L40ffcc; -a1 = a1; -L40ffcc: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L4100d0; -//nop; -L40ffd8: -t9 = 0x1000a1e8; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L4100d0;} -//nop; -t0 = 0x10000404; -at = 0x10000404; -t0 = MEM_U32(t0 + 0); -t4 = 0x100002b0; -t8 = t0 + 0x1; -t4 = MEM_U32(t4 + 0); -MEM_U32(at + 0) = t8; -at = 0x1; -if (t4 != at) {//nop; -goto L41007c;} -//nop; -t3 = 0x1000a1a0; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L41007c;} -//nop; -t6 = 0x1000a24c; -at = 0x69; -t6 = MEM_U8(t6 + 0); -//nop; -if (t6 == at) {//nop; -goto L41007c;} -//nop; -t1 = 0x10000008; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L41007c;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L410074; -//nop; -L410074: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L41007c: -t2 = 0x10000240; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4100a8; -//nop; -L4100a8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4100c4; -//nop; -L4100c4: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L4100d0: -t7 = 0x1000043c; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L410100;} -//nop; -t5 = 0x10000240; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L410130;} -//nop; -L410100: -t9 = 0x100003dc; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L410130;} -//nop; -t0 = 0x100002b4; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L41014c;} -//nop; -L410130: -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L410144; -//nop; -L410144: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L41014c: -t8 = 0x1000a1f4; -at = 0x1000a1f0; -t4 = 0x1000a1e6; -t8 = MEM_U32(t8 + 0); -t4 = MEM_U8(t4 + 0); -MEM_U32(at + 0) = t8; -at = 0x66; -if (t4 != at) {//nop; -goto L410394;} -//nop; -t3 = 0x10000278; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {at = 0x1000a560; -goto L410394;} -at = 0x1000a560; -a1 = 0x10001b90; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4101a0; -a1 = a1; -L4101a0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4101c0; -//nop; -L4101c0: -// bdead 40060003 gp = MEM_U32(sp + 64); -t1 = s0 << 2; -t6 = 0x1000a520; -//nop; -t6 = MEM_U32(t6 + 8); -a1 = 0x55; -t2 = t6 + t1; -a0 = MEM_U32(t2 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L4101e8; -//nop; -L4101e8: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -t7 = 0x1000a1f4; -MEM_U32(at + 0) = v0; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L410280;} -//nop; -//nop; -a0 = t7; -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L41021c; -//nop; -L41021c: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L410280;} -//nop; -t9 = 0x1000a1f4; -t5 = 0x10001b98; -t9 = MEM_U32(t9 + 0); -t5 = t5; -MEM_U32(sp + 24) = t9; -//nop; -MEM_U32(sp + 20) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L410260; -MEM_U32(sp + 16) = zero; -L410260: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L410278; -//nop; -L410278: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L410280: -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L410298; -//nop; -L410298: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000f4; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L4102c0; -MEM_U32(sp + 16) = zero; -L4102c0: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L41035c;} -//nop; -t0 = 0x10000404; -t4 = 0x10000240; -t0 = MEM_U32(t0 + 0); -at = 0x10000404; -t4 = MEM_U32(t4 + 0); -t8 = t0 + 0x1; -if (t4 != 0) {MEM_U32(at + 0) = t8; -goto L410324;} -MEM_U32(at + 0) = t8; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L410300; -//nop; -L410300: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41031c; -//nop; -L41031c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L410324: -t3 = 0x1000a250; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L410350; -//nop; -L410350: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L41035c: -t6 = 0x10000240; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L410388; -//nop; -L410388: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L410394: -t1 = 0x1000a1f4; -at = 0x1000a1f0; -t2 = 0x1000a1e6; -t1 = MEM_U32(t1 + 0); -t2 = MEM_U8(t2 + 0); -MEM_U32(at + 0) = t1; -at = 0x66; -if (t2 == at) {//nop; -goto L41977c;} -//nop; -t7 = 0x1000a36c; -at = 0x1; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L414b54;} -//nop; -t5 = 0x10000008; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L414b54;} -//nop; -t9 = 0x10000214; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L410430;} -//nop; -t0 = 0x10000124; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L410430;} -//nop; -t8 = 0x10000128; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L414b54;} -//nop; -L410430: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L410444; -//nop; -L410444: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L410450: -t4 = 0x10000004; -at = 0x1000a560; -t4 = MEM_U32(t4 + 0); -MEM_U32(at + 4) = zero; -if (t4 == 0) {//nop; -goto L410474;} -//nop; -s4 = 0x10001bc4; -s4 = s4; -goto L410480; -s4 = s4; -L410474: -s4 = 0x10001bcc; -//nop; -s4 = s4; -L410480: -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L410490; -a1 = s4; -L410490: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t3 = 0x10000234; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L4104cc;} -//nop; -a1 = 0x10001bd4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4104c4; -a1 = a1; -L4104c4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4104cc: -t6 = 0x1000a188; -at = 0x10000; -t6 = MEM_U32(t6 + 0); -//nop; -t1 = t6 & at; -if (t1 == 0) {//nop; -goto L410504;} -//nop; -a1 = 0x10001bd8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4104fc; -a1 = a1; -L4104fc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L410504: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a310; -//nop; -f_addlist(mem, sp, a0, a1); -goto L410518; -//nop; -L410518: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t2 = 0x1000a14c; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L410554;} -//nop; -a1 = 0x10001be0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41054c; -a1 = a1; -L41054c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L410554: -t7 = 0x1000a148; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L410588;} -//nop; -a1 = 0x10001bec; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L410580; -a1 = a1; -L410580: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L410588: -t5 = 0x100003a0; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L4105b8;} -//nop; -t9 = 0x10000004; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L4105d4;} -//nop; -L4105b8: -a1 = 0x10001bf8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4105cc; -a1 = a1; -L4105cc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4105d4: -t0 = 0x10000004; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {at = 0x3; -goto L41064c;} -at = 0x3; -if (t0 != at) {//nop; -goto L410614;} -//nop; -a1 = 0x10001c08; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L410608; -a1 = a1; -L410608: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L410630; -//nop; -L410614: -a1 = 0x10001c10; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L410628; -a1 = a1; -L410628: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L410630: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a2b0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L410644; -//nop; -L410644: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L41064c: -t8 = 0x1000a1e6; -at = 0x66; -t8 = MEM_U8(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L4106c4;} -//nop; -t4 = 0x10000278; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L410690;} -//nop; -t3 = 0x1000a380; -at = 0x1000a1f4; -t6 = MEM_U32(t3 + 12); -MEM_U32(at + 0) = t6; -goto L410728; -MEM_U32(at + 0) = t6; -L410690: -t1 = 0x1000a520; -t2 = s0 << 2; -t1 = MEM_U32(t1 + 8); -//nop; -t7 = t1 + t2; -a0 = MEM_U32(t7 + 0); -a1 = 0x42; -v0 = f_mksuf(mem, sp, a0, a1); -goto L4106b0; -a1 = 0x42; -L4106b0: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L410728; -MEM_U32(at + 0) = v0; -L4106c4: -t5 = 0x10000240; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L410714;} -//nop; -t9 = 0x1000a520; -t0 = s0 << 2; -t9 = MEM_U32(t9 + 8); -a1 = 0x42; -t8 = t9 + t0; -//nop; -a0 = MEM_U32(t8 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L410700; -//nop; -L410700: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L410728; -MEM_U32(at + 0) = v0; -L410714: -t4 = 0x1000a380; -at = 0x1000a1f4; -t3 = MEM_U32(t4 + 12); -//nop; -MEM_U32(at + 0) = t3; -L410728: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L41073c; -//nop; -L41073c: -// bdead 4006010b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L4107a0;} -//nop; -t1 = 0x1000a1f4; -t6 = 0x10001c18; -//nop; -t1 = MEM_U32(t1 + 0); -t6 = t6; -MEM_U32(sp + 20) = t6; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t1; -f_error(mem, sp, a0, a1, a2, a3); -goto L410780; -MEM_U32(sp + 24) = t1; -L410780: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L410798; -//nop; -L410798: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L4107a0: -a1 = 0x1000a1fc; -a0 = 0x10001c44; -//nop; -a1 = MEM_U32(a1 + 0); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4107bc; -a0 = a0; -L4107bc: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L4107d4; -a1 = s4; -L4107d4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t2 = 0x10000240; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L410838;} -//nop; -t7 = 0x1000a1a0; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L410838;} -//nop; -t5 = 0x1000a24c; -at = 0x69; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 == at) {//nop; -goto L410838;} -//nop; -s2 = 0x1000a1f0; -//nop; -s2 = MEM_U32(s2 + 0); -//nop; -goto L410858; -//nop; -L410838: -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L410850; -//nop; -L410850: -// bdead 40060003 gp = MEM_U32(sp + 64); -s2 = zero; -L410858: -t9 = 0x1000a1f8; -a0 = 0x10000098; -t9 = MEM_U32(t9 + 0); -a1 = 0x1000a560; -a3 = 0x1000a1f4; -MEM_U32(sp + 16) = t9; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = MEM_U32(a3 + 0); -a2 = s2; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L410888; -a2 = s2; -L410888: -// bdead 4006018b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1e8; -t0 = 0x1000a1e8; -MEM_U32(at + 0) = v0; -t0 = MEM_U32(t0 + 0); -at = 0xff; -if (t0 != at) {at = 0x10000374; -goto L4108d4;} -at = 0x10000374; -a1 = 0x10001c48; -//nop; -t8 = 0x1; -a0 = 0x1000a470; -MEM_U32(at + 0) = t8; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4108c8; -a1 = a1; -L4108c8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L410b34; -//nop; -L4108d4: -t4 = 0x1000a1e8; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L410b34;} -//nop; -t3 = 0x100002a8; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L410a74;} -//nop; -t6 = 0x1000a244; -t1 = 0x1000a248; -t6 = MEM_U32(t6 + 0); -t1 = MEM_U32(t1 + 0); -//nop; -at = (int)t6 < (int)t1; -if (at == 0) {//nop; -goto L410a58;} -//nop; -t7 = 0x1000a520; -at = 0x1000a244; -t7 = MEM_U32(t7 + 8); -t2 = t6 + 0x1; -t5 = s0 << 2; -MEM_U32(at + 0) = t2; -t9 = t7 + t5; -a0 = 0x1000a23c; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = 0x1; -v0 = f_edit_src(mem, sp, a0, a1, a2); -goto L410958; -a2 = 0x1; -L410958: -// bdead 4006008b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L410998;} -//nop; -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -f_show_err(mem, sp, a0); -goto L410978; -//nop; -L410978: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L410990; -//nop; -L410990: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L410998: -t0 = 0x1000a1a0; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L4109e4;} -//nop; -t8 = 0x1000a24c; -at = 0x69; -t8 = MEM_U8(t8 + 0); -//nop; -if (t8 == at) {//nop; -goto L4109e4;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4109dc; -//nop; -L4109dc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4109e4: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4109f8; -//nop; -L4109f8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L410a14; -//nop; -L410a14: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L410a30; -//nop; -L410a30: -// bdead 40060103 gp = MEM_U32(sp + 64); -t3 = s0 << 2; -t4 = 0x1000a520; -at = 0x1000a1f0; -t4 = MEM_U32(t4 + 8); -//nop; -t1 = t4 + t3; -t6 = MEM_U32(t1 + 0); -MEM_U32(at + 0) = t6; -goto L40a8e0; -MEM_U32(at + 0) = t6; -L410a58: -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -f_show_err(mem, sp, a0); -goto L410a6c; -//nop; -L410a6c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L410a74: -t2 = 0x10000404; -t5 = 0x10000240; -t2 = MEM_U32(t2 + 0); -at = 0x10000404; -t5 = MEM_U32(t5 + 0); -t7 = t2 + 0x1; -if (t5 != 0) {MEM_U32(at + 0) = t7; -goto L410ae0;} -MEM_U32(at + 0) = t7; -t9 = 0x1000a1a0; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L410ae0;} -//nop; -t0 = 0x1000a24c; -at = 0x69; -t0 = MEM_U8(t0 + 0); -//nop; -if (t0 == at) {//nop; -goto L410ae0;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L410ad8; -//nop; -L410ad8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L410ae0: -t8 = 0x10000240; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L410b0c; -//nop; -L410b0c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L410b28; -//nop; -L410b28: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L410b34: -t4 = 0x100002a8; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L410b68;} -//nop; -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L410b60; -//nop; -L410b60: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L410b68: -t3 = 0x10000240; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L410bcc;} -//nop; -t1 = 0x1000a1a0; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L410bcc;} -//nop; -t6 = 0x1000a24c; -at = 0x69; -t6 = MEM_U8(t6 + 0); -//nop; -if (t6 == at) {//nop; -goto L410bcc;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L410bc4; -//nop; -L410bc4: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L410bcc: -t2 = 0x1000a1f4; -at = 0x1000a1f0; -t7 = 0x1000a1e6; -t2 = MEM_U32(t2 + 0); -t7 = MEM_U8(t7 + 0); -MEM_U32(at + 0) = t2; -at = 0x66; -if (t7 != at) {//nop; -goto L410e08;} -//nop; -t5 = 0x10000278; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {at = 0x1000a560; -goto L410e08;} -at = 0x1000a560; -a1 = 0x10001c54; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L410c20; -a1 = a1; -L410c20: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L410c40; -//nop; -L410c40: -// bdead 40060003 gp = MEM_U32(sp + 64); -t0 = s0 << 2; -t9 = 0x1000a520; -a1 = 0x55; -t9 = MEM_U32(t9 + 8); -//nop; -t8 = t9 + t0; -//nop; -a0 = MEM_U32(t8 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L410c6c; -//nop; -L410c6c: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -a0 = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L410c90; -//nop; -L410c90: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L410cf4;} -//nop; -t3 = 0x1000a1f4; -t4 = 0x10001c5c; -//nop; -t3 = MEM_U32(t3 + 0); -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L410cd4; -MEM_U32(sp + 24) = t3; -L410cd4: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L410cec; -//nop; -L410cec: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L410cf4: -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L410d0c; -//nop; -L410d0c: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000f4; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L410d34; -MEM_U32(sp + 16) = zero; -L410d34: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L410dd0;} -//nop; -t1 = 0x10000404; -t2 = 0x10000240; -t1 = MEM_U32(t1 + 0); -at = 0x10000404; -t2 = MEM_U32(t2 + 0); -t6 = t1 + 0x1; -if (t2 != 0) {MEM_U32(at + 0) = t6; -goto L410d98;} -MEM_U32(at + 0) = t6; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L410d74; -//nop; -L410d74: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L410d90; -//nop; -L410d90: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L410d98: -t7 = 0x1000a250; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L410dc4; -//nop; -L410dc4: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L410dd0: -t5 = 0x10000240; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L410dfc; -//nop; -L410dfc: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L410e08: -t9 = 0x1000a1e6; -at = 0x66; -t9 = MEM_U8(t9 + 0); -//nop; -if (t9 == at) {//nop; -goto L41977c;} -//nop; -t0 = 0x1000a36c; -at = 0x1; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L414b54;} -//nop; -t8 = 0x10000008; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L414b54;} -//nop; -t4 = 0x10000214; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L41977c;} -//nop; -t3 = 0x10000124; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L41977c;} -//nop; -t1 = 0x10000128; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L414b54;} -//nop; -//nop; -goto L41977c; -//nop; -L410ea0: -at = 0x1000a560; -a1 = 0x10001c88; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L410ebc; -a1 = a1; -L410ebc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t6 = 0x10000234; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L410ef8;} -//nop; -a1 = 0x10001c90; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L410ef0; -a1 = a1; -L410ef0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L410ef8: -a1 = 0x10001c94; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L410f0c; -a1 = a1; -L410f0c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000400; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L410f2c; -//nop; -L410f2c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a320; -//nop; -f_addlist(mem, sp, a0, a1); -goto L410f48; -//nop; -L410f48: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L410f68; -//nop; -L410f68: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x66; -t2 = 0x1000a1e6; -//nop; -t2 = MEM_U8(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L410fa0;} -//nop; -t7 = 0x10000278; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L410fb8;} -//nop; -L410fa0: -t5 = 0x10000240; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L411068;} -//nop; -L410fb8: -t9 = 0x1000a520; -t0 = s0 << 2; -t9 = MEM_U32(t9 + 8); -a1 = 0x42; -t8 = t9 + t0; -//nop; -a0 = MEM_U32(t8 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L410fdc; -//nop; -L410fdc: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -a0 = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L411000; -//nop; -L411000: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L41107c;} -//nop; -t3 = 0x1000a1f4; -t4 = 0x10001c98; -//nop; -t3 = MEM_U32(t3 + 0); -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L411044; -MEM_U32(sp + 24) = t3; -L411044: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41105c; -//nop; -L41105c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L41107c; -//nop; -L411068: -t1 = 0x1000a380; -at = 0x1000a1f4; -t6 = MEM_U32(t1 + 12); -//nop; -MEM_U32(at + 0) = t6; -L41107c: -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L411094; -//nop; -L411094: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001cc4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4110b0; -a1 = a1; -L4110b0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1fc; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4110d0; -//nop; -L4110d0: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -t2 = 0x1000a1f8; -a0 = 0x100000a4; -a1 = 0x1000a560; -//nop; -t2 = MEM_U32(t2 + 0); -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = t2; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L411100; -MEM_U32(sp + 16) = t2; -L411100: -// bdead 4006018b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L41139c;} -//nop; -t7 = 0x100002a8; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L4112c4;} -//nop; -t5 = 0x1000a244; -t9 = 0x1000a248; -t5 = MEM_U32(t5 + 0); -t9 = MEM_U32(t9 + 0); -//nop; -at = (int)t5 < (int)t9; -if (at == 0) {//nop; -goto L4112a8;} -//nop; -t8 = 0x1000a520; -at = 0x1000a244; -t8 = MEM_U32(t8 + 8); -a0 = 0x1000a23c; -t0 = t5 + 0x1; -t4 = s0 << 2; -//nop; -MEM_U32(at + 0) = t0; -t3 = t8 + t4; -a1 = MEM_U32(t3 + 0); -a0 = MEM_U32(a0 + 0); -a2 = 0x2; -v0 = f_edit_src(mem, sp, a0, a1, a2); -goto L411178; -a2 = 0x2; -L411178: -// bdead 4006008b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4111b8;} -//nop; -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -f_show_err(mem, sp, a0); -goto L411198; -//nop; -L411198: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4111b0; -//nop; -L4111b0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4111b8: -t1 = 0x10000270; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L411234;} -//nop; -t6 = 0x1000a1a0; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L411234;} -//nop; -t2 = 0x1000a24c; -at = 0x69; -t2 = MEM_U8(t2 + 0); -//nop; -if (t2 == at) {//nop; -goto L411234;} -//nop; -t7 = 0x10000240; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L411234;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41122c; -//nop; -L41122c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L411234: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411248; -//nop; -L411248: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411264; -//nop; -L411264: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411280; -//nop; -L411280: -// bdead 40060103 gp = MEM_U32(sp + 64); -t5 = s0 << 2; -t9 = 0x1000a520; -at = 0x1000a1f0; -t9 = MEM_U32(t9 + 8); -//nop; -t0 = t9 + t5; -t8 = MEM_U32(t0 + 0); -MEM_U32(at + 0) = t8; -goto L40a8e0; -MEM_U32(at + 0) = t8; -L4112a8: -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -f_show_err(mem, sp, a0); -goto L4112bc; -//nop; -L4112bc: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L4112c4: -t4 = 0x10000404; -t1 = 0x10000270; -t4 = MEM_U32(t4 + 0); -at = 0x10000404; -t1 = MEM_U32(t1 + 0); -t3 = t4 + 0x1; -if (t1 != 0) {MEM_U32(at + 0) = t3; -goto L411348;} -MEM_U32(at + 0) = t3; -t6 = 0x1000a1a0; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L411348;} -//nop; -t2 = 0x1000a24c; -at = 0x69; -t2 = MEM_U8(t2 + 0); -//nop; -if (t2 == at) {//nop; -goto L411348;} -//nop; -t7 = 0x10000240; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L411348;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411340; -//nop; -L411340: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L411348: -t9 = 0x10000240; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411374; -//nop; -L411374: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411390; -//nop; -L411390: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L41139c: -t5 = 0x100002a8; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L4113d0;} -//nop; -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4113c8; -//nop; -L4113c8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L4113d0: -t0 = 0x10000270; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L41144c;} -//nop; -t8 = 0x1000a1a0; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L41144c;} -//nop; -t4 = 0x1000a24c; -at = 0x69; -t4 = MEM_U8(t4 + 0); -//nop; -if (t4 == at) {//nop; -goto L41144c;} -//nop; -t3 = 0x10000240; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L41144c;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411444; -//nop; -L411444: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L41144c: -t1 = 0x1000a1f4; -at = 0x1000a1f0; -t6 = 0x1000a1e6; -t1 = MEM_U32(t1 + 0); -t6 = MEM_U8(t6 + 0); -MEM_U32(at + 0) = t1; -at = 0x66; -if (t6 != at) {//nop; -goto L411688;} -//nop; -t2 = 0x10000278; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {at = 0x1000a560; -goto L411688;} -at = 0x1000a560; -a1 = 0x10001cc8; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4114a0; -a1 = a1; -L4114a0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4114c0; -//nop; -L4114c0: -// bdead 40060003 gp = MEM_U32(sp + 64); -t9 = s0 << 2; -t7 = 0x1000a520; -a1 = 0x55; -t7 = MEM_U32(t7 + 8); -//nop; -t5 = t7 + t9; -//nop; -a0 = MEM_U32(t5 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L4114ec; -//nop; -L4114ec: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -a0 = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L411510; -//nop; -L411510: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L411574;} -//nop; -t8 = 0x1000a1f4; -t0 = 0x10001cd0; -//nop; -t8 = MEM_U32(t8 + 0); -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t8; -f_error(mem, sp, a0, a1, a2, a3); -goto L411554; -MEM_U32(sp + 24) = t8; -L411554: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41156c; -//nop; -L41156c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L411574: -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41158c; -//nop; -L41158c: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000f4; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L4115b4; -MEM_U32(sp + 16) = zero; -L4115b4: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L411650;} -//nop; -t4 = 0x10000404; -t1 = 0x10000240; -t4 = MEM_U32(t4 + 0); -at = 0x10000404; -t1 = MEM_U32(t1 + 0); -t3 = t4 + 0x1; -if (t1 != 0) {MEM_U32(at + 0) = t3; -goto L411618;} -MEM_U32(at + 0) = t3; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4115f4; -//nop; -L4115f4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411610; -//nop; -L411610: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L411618: -t6 = 0x1000a250; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411644; -//nop; -L411644: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L411650: -t2 = 0x10000240; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41167c; -//nop; -L41167c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L411688: -t7 = 0x1000a1e6; -at = 0x66; -t7 = MEM_U8(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L414b54;} -//nop; -//nop; -goto L41977c; -//nop; -L4116a8: -at = 0x1000a560; -a1 = 0x10001cfc; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4116c4; -a1 = a1; -L4116c4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t9 = 0x10000234; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L411700;} -//nop; -a1 = 0x10001d04; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4116f8; -a1 = a1; -L4116f8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L411700: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a408; -//nop; -f_addlist(mem, sp, a0, a1); -goto L411714; -//nop; -L411714: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L411734; -//nop; -L411734: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x66; -t5 = 0x1000a1e6; -//nop; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 == at) {//nop; -goto L41176c;} -//nop; -t0 = 0x10000240; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L4117cc;} -//nop; -L41176c: -t8 = 0x1000a520; -t4 = s0 << 2; -t8 = MEM_U32(t8 + 8); -//nop; -t3 = t8 + t4; -a0 = MEM_U32(t3 + 0); -a1 = 0x3; -v0 = f_mksuf(mem, sp, a0, a1); -goto L41178c; -a1 = 0x3; -L41178c: -// bdead 4006000b gp = MEM_U32(sp + 64); -t6 = s0 << 2; -t1 = 0x1000a520; -at = 0x1000a1f4; -t1 = MEM_U32(t1 + 8); -//nop; -MEM_U32(at + 0) = v0; -t2 = t1 + t6; -a0 = MEM_U32(t2 + 0); -a1 = 0x4; -v0 = f_mksuf(mem, sp, a0, a1); -goto L4117b8; -a1 = 0x4; -L4117b8: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a218; -MEM_U32(at + 0) = v0; -goto L4117f0; -MEM_U32(at + 0) = v0; -L4117cc: -t7 = 0x1000a380; -at = 0x1000a1f4; -t9 = MEM_U32(t7 + 64); -//nop; -MEM_U32(at + 0) = t9; -at = 0x1000a218; -t5 = MEM_U32(t7 + 68); -//nop; -MEM_U32(at + 0) = t5; -L4117f0: -t0 = 0x1000a380; -at = 0x1000a21c; -a1 = 0x10001d08; -//nop; -t8 = MEM_U32(t0 + 72); -a0 = 0x1000a560; -a1 = a1; -MEM_U32(at + 0) = t8; -f_addstr(mem, sp, a0, a1); -goto L411814; -MEM_U32(at + 0) = t8; -L411814: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L411834; -//nop; -L411834: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001d0c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L411850; -a1 = a1; -L411850: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a218; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L411870; -//nop; -L411870: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001d10; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41188c; -a1 = a1; -L41188c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a21c; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4118ac; -//nop; -L4118ac: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001d14; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4118c8; -a1 = a1; -L4118c8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100000b0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4118e8; -//nop; -L4118e8: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000ac; -a1 = 0x1000a560; -a3 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = MEM_U32(a3 + 0); -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L411914; -MEM_U32(sp + 16) = zero; -L411914: -// bdead 4006008b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L411b88;} -//nop; -t4 = 0x100002a8; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L411ac4;} -//nop; -t3 = 0x1000a244; -t1 = 0x1000a248; -t3 = MEM_U32(t3 + 0); -t1 = MEM_U32(t1 + 0); -//nop; -at = (int)t3 < (int)t1; -if (at == 0) {//nop; -goto L411aa8;} -//nop; -t2 = 0x1000a520; -at = 0x1000a244; -t2 = MEM_U32(t2 + 8); -t9 = s0 << 2; -a0 = 0x1000a23c; -t6 = t3 + 0x1; -t7 = t2 + t9; -//nop; -MEM_U32(at + 0) = t6; -a1 = MEM_U32(t7 + 0); -a0 = MEM_U32(a0 + 0); -a2 = 0x5; -v0 = f_edit_src(mem, sp, a0, a1, a2); -goto L41198c; -a2 = 0x5; -L41198c: -// bdead 4006008b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4119cc;} -//nop; -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -f_show_err(mem, sp, a0); -goto L4119ac; -//nop; -L4119ac: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4119c4; -//nop; -L4119c4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4119cc: -t5 = 0x1000a1a0; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L411a18;} -//nop; -t0 = 0x1000a24c; -at = 0x69; -t0 = MEM_U8(t0 + 0); -//nop; -if (t0 == at) {//nop; -goto L411a18;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411a10; -//nop; -L411a10: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L411a18: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411a2c; -//nop; -L411a2c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411a48; -//nop; -L411a48: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a218; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411a64; -//nop; -L411a64: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a21c; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411a80; -//nop; -L411a80: -// bdead 40060103 gp = MEM_U32(sp + 64); -t4 = s0 << 2; -t8 = 0x1000a520; -at = 0x1000a1f0; -t8 = MEM_U32(t8 + 8); -//nop; -t1 = t8 + t4; -t3 = MEM_U32(t1 + 0); -MEM_U32(at + 0) = t3; -goto L40a8e0; -MEM_U32(at + 0) = t3; -L411aa8: -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -f_show_err(mem, sp, a0); -goto L411abc; -//nop; -L411abc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L411ac4: -t6 = 0x10000404; -t9 = 0x1000a1a0; -t6 = MEM_U32(t6 + 0); -at = 0x10000404; -t9 = MEM_U32(t9 + 0); -t2 = t6 + 0x1; -if (t9 == 0) {MEM_U32(at + 0) = t2; -goto L411b18;} -MEM_U32(at + 0) = t2; -t7 = 0x1000a24c; -at = 0x69; -t7 = MEM_U8(t7 + 0); -//nop; -if (t7 == at) {//nop; -goto L411b18;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411b10; -//nop; -L411b10: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L411b18: -t5 = 0x10000240; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L411b68;} -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411b44; -//nop; -L411b44: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a218; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411b60; -//nop; -L411b60: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L411b68: -a0 = 0x1000a21c; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411b7c; -//nop; -L411b7c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L411b88: -t0 = 0x100002a8; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L411bbc;} -//nop; -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411bb4; -//nop; -L411bb4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L411bbc: -a0 = 0x1000a21c; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411bd0; -//nop; -L411bd0: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t8 = 0x1000a1a0; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L411c24;} -//nop; -t4 = 0x1000a24c; -at = 0x69; -t4 = MEM_U8(t4 + 0); -//nop; -if (t4 == at) {//nop; -goto L411c24;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411c1c; -//nop; -L411c1c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L411c24: -t1 = 0x1000a1e6; -at = 0x66; -t1 = MEM_U8(t1 + 0); -//nop; -if (t1 == at) {//nop; -goto L41977c;} -//nop; -t3 = 0x1000a1f4; -at = 0x1000a1f0; -t3 = MEM_U32(t3 + 0); -//nop; -MEM_U32(at + 0) = t3; -L411c50: -at = 0x1000a560; -a1 = 0x10001d18; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L411c6c; -a1 = a1; -L411c6c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t6 = 0x10000234; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L411ca8;} -//nop; -a1 = 0x10001d20; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L411ca0; -a1 = a1; -L411ca0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L411ca8: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a428; -//nop; -f_addlist(mem, sp, a0, a1); -goto L411cbc; -//nop; -L411cbc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L411cdc; -//nop; -L411cdc: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x6b; -t2 = 0x1000a1e6; -//nop; -t2 = MEM_U8(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L411d14;} -//nop; -t9 = 0x10000278; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L411d2c;} -//nop; -L411d14: -t7 = 0x10000240; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L411d60;} -//nop; -L411d2c: -t5 = 0x1000a520; -t0 = s0 << 2; -t5 = MEM_U32(t5 + 8); -//nop; -t8 = t5 + t0; -a0 = MEM_U32(t8 + 0); -a1 = 0x42; -v0 = f_mksuf(mem, sp, a0, a1); -goto L411d4c; -a1 = 0x42; -L411d4c: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L411d74; -MEM_U32(at + 0) = v0; -L411d60: -t4 = 0x1000a380; -at = 0x1000a1f4; -t1 = MEM_U32(t4 + 12); -//nop; -MEM_U32(at + 0) = t1; -L411d74: -t3 = 0x1000a24c; -at = 0x3; -t3 = MEM_U8(t3 + 0); -//nop; -if (t3 == at) {//nop; -goto L411da4;} -//nop; -t6 = 0x10000240; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L411ddc;} -//nop; -L411da4: -t2 = 0x1000a520; -t9 = s0 << 2; -t2 = MEM_U32(t2 + 8); -a1 = 0x4; -t7 = t2 + t9; -//nop; -a0 = MEM_U32(t7 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L411dc8; -//nop; -L411dc8: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a218; -MEM_U32(at + 0) = v0; -goto L411df0; -MEM_U32(at + 0) = v0; -L411ddc: -t5 = 0x1000a380; -at = 0x1000a218; -t0 = MEM_U32(t5 + 68); -//nop; -MEM_U32(at + 0) = t0; -L411df0: -a1 = 0x10001d24; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L411e04; -a1 = a1; -L411e04: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a218; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L411e24; -//nop; -L411e24: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001d28; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L411e40; -a1 = a1; -L411e40: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L411e60; -//nop; -L411e60: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001d2c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L411e7c; -a1 = a1; -L411e7c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1fc; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L411e9c; -//nop; -L411e9c: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000b4; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L411ec4; -MEM_U32(sp + 16) = zero; -L411ec4: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L411fb4;} -//nop; -t8 = 0x10000404; -at = 0x10000404; -t8 = MEM_U32(t8 + 0); -t1 = 0x1000a24c; -t4 = t8 + 0x1; -t1 = MEM_U8(t1 + 0); -MEM_U32(at + 0) = t4; -at = 0x3; -if (t1 == at) {//nop; -goto L411f14;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411f0c; -//nop; -L411f0c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L411f14: -t3 = 0x10000240; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L411f7c;} -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411f40; -//nop; -L411f40: -// bdead 40060103 gp = MEM_U32(sp + 64); -at = 0x3; -t6 = 0x1000a24c; -//nop; -t6 = MEM_U8(t6 + 0); -//nop; -if (t6 == at) {//nop; -goto L411f7c;} -//nop; -a0 = 0x1000a218; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411f74; -//nop; -L411f74: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L411f7c: -t2 = 0x1000a250; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411fa8; -//nop; -L411fa8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L411fb4: -t9 = 0x1000a24c; -at = 0x3; -t9 = MEM_U8(t9 + 0); -//nop; -if (t9 == at) {//nop; -goto L412000;} -//nop; -t7 = 0x10000240; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L412000;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L411ff8; -//nop; -L411ff8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L412000: -t5 = 0x10000240; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L41204c;} -//nop; -t0 = 0x1000a24c; -at = 0x3; -t0 = MEM_U8(t0 + 0); -//nop; -if (t0 == at) {//nop; -goto L41204c;} -//nop; -a0 = 0x1000a218; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L412044; -//nop; -L412044: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L41204c: -t8 = 0x1000a1f4; -at = 0x1000a1f0; -t4 = 0x1000a1e6; -t8 = MEM_U32(t8 + 0); -t4 = MEM_U8(t4 + 0); -MEM_U32(at + 0) = t8; -at = 0x6b; -if (t4 != at) {//nop; -goto L41220c;} -//nop; -t1 = 0x10000278; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {at = 0x1000a560; -goto L41220c;} -at = 0x1000a560; -a1 = 0x10001d30; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4120a0; -a1 = a1; -L4120a0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4120c0; -//nop; -L4120c0: -// bdead 40060003 gp = MEM_U32(sp + 64); -t6 = s0 << 2; -t3 = 0x1000a520; -//nop; -t3 = MEM_U32(t3 + 8); -a1 = 0x55; -t2 = t3 + t6; -a0 = MEM_U32(t2 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L4120e8; -//nop; -L4120e8: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -a1 = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L412110; -//nop; -L412110: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000f4; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L412138; -MEM_U32(sp + 16) = zero; -L412138: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4121d4;} -//nop; -t9 = 0x10000404; -t5 = 0x10000240; -t9 = MEM_U32(t9 + 0); -at = 0x10000404; -t5 = MEM_U32(t5 + 0); -t7 = t9 + 0x1; -if (t5 != 0) {MEM_U32(at + 0) = t7; -goto L41219c;} -MEM_U32(at + 0) = t7; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L412178; -//nop; -L412178: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L412194; -//nop; -L412194: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L41219c: -t0 = 0x1000a250; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4121c8; -//nop; -L4121c8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L4121d4: -t8 = 0x10000240; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L412200; -//nop; -L412200: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L41220c: -t4 = 0x1000a1e6; -at = 0x6b; -t4 = MEM_U8(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L414b54;} -//nop; -//nop; -goto L41977c; -//nop; -L41222c: -at = 0x1000a560; -a1 = 0x10001d38; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L412248; -a1 = a1; -L412248: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t1 = 0x10000234; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L412284;} -//nop; -a1 = 0x10001d40; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41227c; -a1 = a1; -L41227c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L412284: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a418; -//nop; -f_addlist(mem, sp, a0, a1); -goto L412298; -//nop; -L412298: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4122b8; -//nop; -L4122b8: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x66; -t3 = 0x1000a1e6; -//nop; -t3 = MEM_U8(t3 + 0); -//nop; -if (t3 == at) {//nop; -goto L4122f0;} -//nop; -t6 = 0x10000240; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L412354;} -//nop; -L4122f0: -t2 = 0x1000a520; -t9 = s0 << 2; -t2 = MEM_U32(t2 + 8); -a1 = 0x3; -t7 = t2 + t9; -//nop; -a0 = MEM_U32(t7 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L412314; -//nop; -L412314: -// bdead 4006000b gp = MEM_U32(sp + 64); -t0 = s0 << 2; -t5 = 0x1000a520; -at = 0x1000a1f4; -t5 = MEM_U32(t5 + 8); -//nop; -MEM_U32(at + 0) = v0; -t8 = t5 + t0; -a0 = MEM_U32(t8 + 0); -a1 = 0x4; -v0 = f_mksuf(mem, sp, a0, a1); -goto L412340; -a1 = 0x4; -L412340: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a218; -MEM_U32(at + 0) = v0; -goto L412378; -MEM_U32(at + 0) = v0; -L412354: -t4 = 0x1000a380; -at = 0x1000a1f4; -t1 = MEM_U32(t4 + 64); -//nop; -MEM_U32(at + 0) = t1; -at = 0x1000a218; -t3 = MEM_U32(t4 + 68); -//nop; -MEM_U32(at + 0) = t3; -L412378: -t6 = 0x1000a380; -at = 0x1000a21c; -t2 = MEM_U32(t6 + 72); -a1 = 0x10001d44; -MEM_U32(at + 0) = t2; -at = 0x1000a224; -t9 = MEM_U32(t6 + 80); -a0 = 0x1000a560; -MEM_U32(at + 0) = t9; -at = 0x1000a220; -//nop; -t7 = MEM_U32(t6 + 76); -a1 = a1; -MEM_U32(at + 0) = t7; -f_addstr(mem, sp, a0, a1); -goto L4123b4; -MEM_U32(at + 0) = t7; -L4123b4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4123d4; -//nop; -L4123d4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001d48; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4123f0; -a1 = a1; -L4123f0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a218; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L412410; -//nop; -L412410: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001d4c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41242c; -a1 = a1; -L41242c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a21c; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41244c; -//nop; -L41244c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001d50; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L412468; -a1 = a1; -L412468: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a224; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L412488; -//nop; -L412488: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001d54; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4124a4; -a1 = a1; -L4124a4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a220; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4124c4; -//nop; -L4124c4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001d58; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4124e0; -a1 = a1; -L4124e0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100000b0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L412500; -//nop; -L412500: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000b8; -a1 = 0x1000a560; -a3 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = MEM_U32(a3 + 0); -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L41252c; -MEM_U32(sp + 16) = zero; -L41252c: -// bdead 4006008b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L412810;} -//nop; -t5 = 0x100002a8; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L412714;} -//nop; -t0 = 0x1000a244; -t8 = 0x1000a248; -t0 = MEM_U32(t0 + 0); -t8 = MEM_U32(t8 + 0); -//nop; -at = (int)t0 < (int)t8; -if (at == 0) {//nop; -goto L4126f8;} -//nop; -t4 = 0x1000a520; -at = 0x1000a244; -t4 = MEM_U32(t4 + 8); -a0 = 0x1000a23c; -t1 = t0 + 0x1; -t3 = s0 << 2; -//nop; -MEM_U32(at + 0) = t1; -t2 = t4 + t3; -a1 = MEM_U32(t2 + 0); -a0 = MEM_U32(a0 + 0); -a2 = 0x6; -v0 = f_edit_src(mem, sp, a0, a1, a2); -goto L4125a4; -a2 = 0x6; -L4125a4: -// bdead 4006008b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4125e4;} -//nop; -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -f_show_err(mem, sp, a0); -goto L4125c4; -//nop; -L4125c4: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4125dc; -//nop; -L4125dc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4125e4: -t9 = 0x1000a1a0; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L412630;} -//nop; -t6 = 0x1000a24c; -at = 0x69; -t6 = MEM_U8(t6 + 0); -//nop; -if (t6 == at) {//nop; -goto L412630;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L412628; -//nop; -L412628: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L412630: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L412644; -//nop; -L412644: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L412660; -//nop; -L412660: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a218; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41267c; -//nop; -L41267c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a21c; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L412698; -//nop; -L412698: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a224; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4126b4; -//nop; -L4126b4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a220; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4126d0; -//nop; -L4126d0: -// bdead 40060103 gp = MEM_U32(sp + 64); -t5 = s0 << 2; -t7 = 0x1000a520; -at = 0x1000a1f0; -t7 = MEM_U32(t7 + 8); -//nop; -t8 = t7 + t5; -t0 = MEM_U32(t8 + 0); -MEM_U32(at + 0) = t0; -goto L40a8e0; -MEM_U32(at + 0) = t0; -L4126f8: -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -f_show_err(mem, sp, a0); -goto L41270c; -//nop; -L41270c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L412714: -t1 = 0x10000404; -t3 = 0x1000a1a0; -t1 = MEM_U32(t1 + 0); -at = 0x10000404; -t3 = MEM_U32(t3 + 0); -t4 = t1 + 0x1; -if (t3 == 0) {MEM_U32(at + 0) = t4; -goto L412768;} -MEM_U32(at + 0) = t4; -t2 = 0x1000a24c; -at = 0x69; -t2 = MEM_U8(t2 + 0); -//nop; -if (t2 == at) {//nop; -goto L412768;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L412760; -//nop; -L412760: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L412768: -t9 = 0x10000240; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L4127b8;} -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L412794; -//nop; -L412794: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a218; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4127b0; -//nop; -L4127b0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4127b8: -a0 = 0x1000a21c; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4127cc; -//nop; -L4127cc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a224; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4127e8; -//nop; -L4127e8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a220; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L412804; -//nop; -L412804: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L412810: -t6 = 0x100002a8; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L412844;} -//nop; -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41283c; -//nop; -L41283c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L412844: -t7 = 0x1000a1a0; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L412890;} -//nop; -t5 = 0x1000a24c; -at = 0x69; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 == at) {//nop; -goto L412890;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L412888; -//nop; -L412888: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L412890: -a0 = 0x1000a21c; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4128a4; -//nop; -L4128a4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a224; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4128c0; -//nop; -L4128c0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a220; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4128dc; -//nop; -L4128dc: -// bdead 40060103 gp = MEM_U32(sp + 64); -at = 0x66; -t8 = 0x1000a1e6; -//nop; -t8 = MEM_U8(t8 + 0); -//nop; -if (t8 == at) {//nop; -goto L41977c;} -//nop; -t0 = 0x1000a1f4; -at = 0x1000a1f0; -t0 = MEM_U32(t0 + 0); -MEM_U32(at + 0) = t0; -goto L411c50; -MEM_U32(at + 0) = t0; -L412910: -t1 = 0x10000268; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {at = 0x1000a560; -goto L412a68;} -at = 0x1000a560; -a1 = 0x10001d5c; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L412940; -a1 = a1; -L412940: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L412960; -//nop; -L412960: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x4; -t4 = 0x1000a36c; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == at) {//nop; -goto L412998;} -//nop; -t3 = 0x1000a24c; -at = 0x73; -t3 = MEM_U8(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L4129ac;} -//nop; -L412998: -t2 = 0x1000a380; -at = 0x1000a1f4; -t9 = MEM_U32(t2 + 56); -MEM_U32(at + 0) = t9; -goto L4129e0; -MEM_U32(at + 0) = t9; -L4129ac: -t6 = 0x1000a520; -t7 = s0 << 2; -t6 = MEM_U32(t6 + 8); -//nop; -t5 = t6 + t7; -a0 = MEM_U32(t5 + 0); -a1 = 0x70; -v0 = f_mksuf(mem, sp, a0, a1); -goto L4129cc; -a1 = 0x70; -L4129cc: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -L4129e0: -a0 = 0x1000a194; -a1 = 0x1000a560; -a3 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = MEM_U32(a3 + 0); -a2 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L412a08; -MEM_U32(sp + 16) = zero; -L412a08: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L412a54;} -//nop; -t8 = 0x10000404; -t1 = 0x10000240; -t8 = MEM_U32(t8 + 0); -at = 0x10000404; -t1 = MEM_U32(t1 + 0); -t0 = t8 + 0x1; -if (t1 != 0) {MEM_U32(at + 0) = t0; -goto L41977c;} -MEM_U32(at + 0) = t0; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L412a48; -//nop; -L412a48: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L412a54: -t4 = 0x1000a1f4; -at = 0x1000a1f0; -t4 = MEM_U32(t4 + 0); -//nop; -MEM_U32(at + 0) = t4; -L412a68: -s4 = 0x1000a24c; -at = 0x65; -s4 = MEM_U8(s4 + 0); -//nop; -if (s4 == at) {at = 0x72; -goto L412ac8;} -at = 0x72; -if (s4 == at) {at = 0x73; -goto L412b10;} -at = 0x73; -if (s4 != at) {//nop; -goto L412ac8;} -//nop; -t3 = 0x1000a1a0; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L40ad4c;} -//nop; -t2 = 0x1000a1a4; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L418634;} -//nop; -//nop; -goto L40ad4c; -//nop; -L412ac8: -t9 = 0x10001d60; -a0 = 0x1; -t9 = t9; -MEM_U32(sp + 20) = t9; -//nop; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L412af0; -MEM_U32(sp + 16) = zero; -L412af0: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L412b08; -//nop; -L412b08: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L412b10: -at = 0x1000a560; -a1 = 0x10001d88; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L412b2c; -a1 = a1; -L412b2c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a370; -//nop; -f_addlist(mem, sp, a0, a1); -goto L412b48; -//nop; -L412b48: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L412b68; -//nop; -L412b68: -// bdead 40060003 gp = MEM_U32(sp + 64); -t7 = s0 << 2; -t6 = 0x1000a520; -//nop; -t6 = MEM_U32(t6 + 8); -a1 = 0x66; -t5 = t6 + t7; -a0 = MEM_U32(t5 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L412b90; -//nop; -L412b90: -// bdead 4006000b gp = MEM_U32(sp + 64); -a2 = zero; -at = 0x1000a1f4; -a0 = 0x1000a190; -a1 = 0x1000a560; -a3 = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = MEM_U32(a3 + 0); -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L412bc4; -MEM_U32(sp + 16) = zero; -L412bc4: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L412bf8;} -//nop; -t8 = 0x10000404; -t1 = 0x10000240; -t8 = MEM_U32(t8 + 0); -at = 0x10000404; -t1 = MEM_U32(t1 + 0); -t0 = t8 + 0x1; -if (t1 != 0) {MEM_U32(at + 0) = t0; -goto L41977c;} -MEM_U32(at + 0) = t0; -//nop; -goto L41977c; -//nop; -L412bf8: -t4 = 0x10000268; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L412c2c;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L412c24; -//nop; -L412c24: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L412c2c: -t3 = 0x1000a1f4; -t2 = 0x1000026c; -at = 0x1000a1f0; -t3 = MEM_U32(t3 + 0); -t2 = MEM_U32(t2 + 0); -MEM_U32(at + 0) = t3; -if (t2 != 0) {//nop; -goto L41977c;} -//nop; -t9 = 0x1000a1a0; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L40ad4c;} -//nop; -L412c64: -MEM_U32(sp + 256) = zero; -MEM_U32(sp + 252) = zero; -t6 = 0x31; -t7 = sp + 0xf0; -t8 = 0x1000043c; -MEM_U8(t7 + 0) = (uint8_t)t6; -t5 = sp + 0xf0; -MEM_U8(t5 + 1) = (uint8_t)zero; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L413558;} -//nop; -t0 = 0x1000a150; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -t1 = t0 & 0x1; -if (t1 == 0) {//nop; -goto L412ce4;} -//nop; -t4 = 0x10001d90; -//nop; -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L412cd8; -MEM_U32(sp + 16) = zero; -L412cd8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L413558; -//nop; -L412ce4: -t3 = 0x10000230; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -at = (int)t3 < (int)0x2; -if (at != 0) {//nop; -goto L412d50;} -//nop; -t2 = 0x10000264; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L412d50;} -//nop; -a1 = 0x10001dc0; -//nop; -a0 = 0x1000a4b0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L412d2c; -a1 = a1; -L412d2c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001dcc; -//nop; -a0 = 0x1000a4b0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L412d48; -a1 = a1; -L412d48: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L412d50: -t9 = 0x1000a168; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L412db0;} -//nop; -t6 = 0x10000398; -at = 0x2; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == at) {//nop; -goto L412db0;} -//nop; -t7 = 0x10001dd0; -//nop; -t7 = t7; -MEM_U32(sp + 20) = t7; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L412da8; -MEM_U32(sp + 16) = zero; -L412da8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L412db0: -t5 = 0x1000a164; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L412e10;} -//nop; -t8 = 0x10000398; -at = 0x2; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == at) {//nop; -goto L412e10;} -//nop; -t0 = 0x10001df8; -//nop; -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L412e08; -MEM_U32(sp + 16) = zero; -L412e08: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L412e10: -t1 = 0x1000a174; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L412e70;} -//nop; -t4 = 0x10000398; -at = 0x2; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == at) {//nop; -goto L412e70;} -//nop; -t3 = 0x10001e20; -//nop; -t3 = t3; -MEM_U32(sp + 20) = t3; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L412e68; -MEM_U32(sp + 16) = zero; -L412e68: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L412e70: -t2 = 0x1000a178; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L412ed0;} -//nop; -t9 = 0x10000398; -at = 0x2; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == at) {//nop; -goto L412ed0;} -//nop; -t6 = 0x10001e48; -//nop; -t6 = t6; -MEM_U32(sp + 20) = t6; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L412ec8; -MEM_U32(sp + 16) = zero; -L412ec8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L412ed0: -t7 = 0x1000a160; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L412f30;} -//nop; -t5 = 0x10001e78; -//nop; -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L412f10; -MEM_U32(sp + 16) = zero; -L412f10: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L412f28; -//nop; -L412f28: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L412f30: -at = 0x1000a560; -a1 = 0x10001ea0; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L412f4c; -a1 = a1; -L412f4c: -// bdead 40060103 gp = MEM_U32(sp + 64); -a2 = zero; -t8 = 0x1000a380; -a1 = 0x10001ea8; -//nop; -a0 = MEM_U32(t8 + 124); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L412f6c; -a1 = a1; -L412f6c: -// bdead 4006010b gp = MEM_U32(sp + 64); -MEM_U32(sp + 244) = v0; -a0 = 0x10001eac; -//nop; -a1 = MEM_U32(sp + 244); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L412f8c; -a0 = a0; -L412f8c: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L412fa4; -a1 = s4; -L412fa4: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x4b; -t0 = 0x1000a1e6; -//nop; -t0 = MEM_U8(t0 + 0); -//nop; -if (t0 == at) {//nop; -goto L412fdc;} -//nop; -t1 = 0x10000240; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L413010;} -//nop; -L412fdc: -t4 = 0x1000a520; -t3 = s0 << 2; -t4 = MEM_U32(t4 + 8); -//nop; -t2 = t4 + t3; -a0 = MEM_U32(t2 + 0); -a1 = 0x6d; -v0 = f_mksuf(mem, sp, a0, a1); -goto L412ffc; -a1 = 0x6d; -L412ffc: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L413044; -MEM_U32(at + 0) = v0; -L413010: -t9 = 0x1000a380; -a1 = 0x10001eb0; -a0 = MEM_U32(t9 + 124); -//nop; -a2 = sp + 0xf0; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L413030; -a1 = a1; -L413030: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -L413044: -a1 = 0x1000a1f4; -a0 = 0x10001eb4; -//nop; -a1 = MEM_U32(a1 + 0); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L413060; -a0 = a0; -L413060: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L413078; -a1 = s4; -L413078: -// bdead 40060103 gp = MEM_U32(sp + 64); -a2 = zero; -a1 = 0x1000a1f0; -a0 = 0x10001eb8; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L413098; -a0 = a0; -L413098: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L4130b0; -a1 = s4; -L4130b0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t6 = 0x1000a16c; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L4130ec;} -//nop; -a1 = 0x10001ebc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4130e4; -a1 = a1; -L4130e4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4130ec: -t7 = 0x1000a170; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L413120;} -//nop; -a1 = 0x10001ec8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413118; -a1 = a1; -L413118: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413120: -t5 = 0x10000284; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L413154;} -//nop; -a1 = 0x10001ed4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41314c; -a1 = a1; -L41314c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413154: -t8 = 0x1000a154; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L413188;} -//nop; -a1 = 0x10001ee0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413180; -a1 = a1; -L413180: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413188: -t0 = 0x1000a15c; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L4131bc;} -//nop; -a1 = 0x10001eec; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4131b4; -a1 = a1; -L4131b4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4131bc: -t1 = 0x10000398; -at = 0x2; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L4131f0;} -//nop; -a1 = 0x10001ef4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4131e8; -a1 = a1; -L4131e8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4131f0: -t4 = 0x10000234; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L413224;} -//nop; -a1 = 0x10001f00; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41321c; -a1 = a1; -L41321c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413224: -t3 = 0x10000424; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L4132a8;} -//nop; -t2 = 0x1000a520; -t9 = s0 << 2; -t2 = MEM_U32(t2 + 8); -a1 = 0x1000a24c; -t6 = t2 + t9; -//nop; -a0 = MEM_U32(t6 + 0); -a1 = MEM_U8(a1 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L413264; -//nop; -L413264: -// bdead 4006010b gp = MEM_U32(sp + 64); -s5 = v0; -a0 = 0x10001f08; -//nop; -a1 = s5; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L413284; -a0 = a0; -L413284: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41329c; -a1 = s4; -L41329c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L413310; -//nop; -L4132a8: -t7 = 0x1000a520; -a1 = 0x1000a24c; -t7 = MEM_U32(t7 + 8); -t5 = s0 << 2; -//nop; -t8 = t7 + t5; -a0 = MEM_U32(t8 + 0); -a1 = MEM_U8(a1 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L4132d0; -//nop; -L4132d0: -// bdead 4006010b gp = MEM_U32(sp + 64); -s5 = v0; -a0 = 0x10001f14; -//nop; -a1 = s5; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4132f0; -a0 = a0; -L4132f0: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L413308; -a1 = s4; -L413308: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413310: -a1 = 0x10001f28; -//nop; -a0 = 0x1000a560; -// bdead 40060063 a2 = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413328; -a1 = a1; -L413328: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001f40; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413344; -a1 = a1; -L413344: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a5e0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L413360; -//nop; -L413360: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100001f4; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L413388; -MEM_U32(sp + 16) = zero; -L413388: -// bdead 4006000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L413488;} -//nop; -t0 = 0x10000404; -t4 = 0x1000a1a0; -t0 = MEM_U32(t0 + 0); -at = 0x10000404; -t4 = MEM_U32(t4 + 0); -t1 = t0 + 0x1; -if (t4 != 0) {MEM_U32(at + 0) = t1; -goto L4133d4;} -MEM_U32(at + 0) = t1; -t3 = 0x1000a24c; -at = 0x65; -t3 = MEM_U8(t3 + 0); -//nop; -if (t3 == at) {at = 0x72; -goto L4133d4;} -at = 0x72; -if (t3 != at) {//nop; -goto L413420;} -//nop; -L4133d4: -t2 = 0x1000a24c; -at = 0x69; -t2 = MEM_U8(t2 + 0); -//nop; -if (t2 == at) {//nop; -goto L413420;} -//nop; -t9 = 0x10000240; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L413420;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L413418; -//nop; -L413418: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413420: -t6 = 0x1000a1e6; -at = 0x4b; -t6 = MEM_U8(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L413450;} -//nop; -t7 = 0x10000240; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L41346c;} -//nop; -L413450: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L413464; -//nop; -L413464: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L41346c: -//nop; -a0 = MEM_U32(sp + 244); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41347c; -//nop; -L41347c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L413488: -t5 = 0x1000a1a0; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L4134c8;} -//nop; -t8 = 0x1000a24c; -at = 0x65; -t8 = MEM_U8(t8 + 0); -//nop; -if (t8 == at) {at = 0x72; -goto L4134c8;} -at = 0x72; -if (t8 == at) {at = 0x46; -goto L4134c8;} -at = 0x46; -if (t8 != at) {//nop; -goto L413514;} -//nop; -L4134c8: -t0 = 0x1000a24c; -at = 0x69; -t0 = MEM_U8(t0 + 0); -//nop; -if (t0 == at) {//nop; -goto L413514;} -//nop; -t1 = 0x10000240; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L413514;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41350c; -//nop; -L41350c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413514: -//nop; -a0 = MEM_U32(sp + 244); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L413524; -//nop; -L413524: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t4 = 0x1000a1f4; -at = 0x1000a1f0; -t3 = 0x1000a1e6; -t4 = MEM_U32(t4 + 0); -t3 = MEM_U8(t3 + 0); -MEM_U32(at + 0) = t4; -at = 0x4b; -if (t3 != at) {//nop; -goto L4142ac;} -//nop; -//nop; -goto L41977c; -//nop; -L413558: -t2 = 0x1000a1e6; -at = 0x4b; -t2 = MEM_U8(t2 + 0); -//nop; -if (t2 == at) {//nop; -goto L413588;} -//nop; -t9 = 0x10000240; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L4135a0;} -//nop; -L413588: -t6 = 0x1000a150; -at = 0x1000a150; -t6 = MEM_U32(t6 + 0); -//nop; -t7 = t6 | 0x6; -MEM_U32(at + 0) = t7; -L4135a0: -t5 = 0x1000a150; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -t8 = t5 & 0x1; -if (t8 == 0) {//nop; -goto L4142ac;} -//nop; -t0 = 0x10000230; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -at = (int)t0 < (int)0x2; -if (at != 0) {//nop; -goto L413628;} -//nop; -t1 = 0x10000264; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L413628;} -//nop; -a1 = 0x10001f48; -//nop; -a0 = 0x1000a4b0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413604; -a1 = a1; -L413604: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10001f54; -//nop; -a0 = 0x1000a4b0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413620; -a1 = a1; -L413620: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413628: -t4 = 0x1000a168; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L413688;} -//nop; -t3 = 0x10000398; -at = 0x2; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == at) {//nop; -goto L413688;} -//nop; -t2 = 0x10001f58; -//nop; -t2 = t2; -MEM_U32(sp + 20) = t2; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L413680; -MEM_U32(sp + 16) = zero; -L413680: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413688: -t9 = 0x1000a164; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L4136e8;} -//nop; -t6 = 0x10000398; -at = 0x2; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == at) {//nop; -goto L4136e8;} -//nop; -t7 = 0x10001f80; -//nop; -t7 = t7; -MEM_U32(sp + 20) = t7; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4136e0; -MEM_U32(sp + 16) = zero; -L4136e0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4136e8: -t5 = 0x1000a174; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L413748;} -//nop; -t8 = 0x10000398; -at = 0x2; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == at) {//nop; -goto L413748;} -//nop; -t0 = 0x10001fa8; -//nop; -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L413740; -MEM_U32(sp + 16) = zero; -L413740: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413748: -t1 = 0x1000a178; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L4137a8;} -//nop; -t4 = 0x10000398; -at = 0x2; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == at) {//nop; -goto L4137a8;} -//nop; -t3 = 0x10001fd0; -//nop; -t3 = t3; -MEM_U32(sp + 20) = t3; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4137a0; -MEM_U32(sp + 16) = zero; -L4137a0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4137a8: -t2 = 0x1000a160; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L413808;} -//nop; -t9 = 0x10001ffc; -a0 = 0x1; -t9 = t9; -MEM_U32(sp + 20) = t9; -//nop; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4137e8; -MEM_U32(sp + 16) = zero; -L4137e8: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L413800; -//nop; -L413800: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413808: -at = 0x1000a560; -a1 = 0x10002020; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413824; -a1 = a1; -L413824: -// bdead 40060003 gp = MEM_U32(sp + 64); -t6 = MEM_U32(sp + 252); -t8 = 0x1000a150; -t5 = sp + 0xf0; -t7 = t6 + 0x31; -MEM_U8(t5 + 0) = (uint8_t)t7; -t8 = MEM_U32(t8 + 0); -//nop; -t0 = t8 & 0x2; -if (t0 == 0) {//nop; -goto L4138b4;} -//nop; -t1 = 0x1000a520; -t4 = s0 << 2; -t1 = MEM_U32(t1 + 8); -//nop; -t3 = t1 + t4; -a0 = MEM_U32(t3 + 0); -a1 = 0x6c; -v0 = f_mksuf(mem, sp, a0, a1); -goto L413870; -a1 = 0x6c; -L413870: -// bdead 4006010b gp = MEM_U32(sp + 64); -t9 = MEM_U32(sp + 252); -t2 = 0x100003a8; -MEM_U32(sp + 248) = v0; -t2 = MEM_U32(t2 + 0); -//nop; -at = (int)t9 < (int)t2; -if (at == 0) {//nop; -goto L4138dc;} -//nop; -//nop; -a0 = MEM_U32(sp + 248); -a1 = sp + 0xf0; -a2 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4138a8; -a2 = zero; -L4138a8: -// bdead 4006010b gp = MEM_U32(sp + 64); -MEM_U32(sp + 248) = v0; -goto L4138dc; -MEM_U32(sp + 248) = v0; -L4138b4: -t6 = 0x1000a380; -a1 = 0x10002024; -//nop; -a0 = MEM_U32(t6 + 124); -a2 = sp + 0xf0; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4138d4; -a1 = a1; -L4138d4: -// bdead 4006010b gp = MEM_U32(sp + 64); -MEM_U32(sp + 248) = v0; -L4138dc: -a0 = 0x10002028; -//nop; -a1 = MEM_U32(sp + 248); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4138f4; -a0 = a0; -L4138f4: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41390c; -a1 = s4; -L41390c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t7 = 0x1000a150; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -t5 = t7 & 0x4; -if (t5 == 0) {//nop; -goto L4139a0;} -//nop; -t8 = 0x1000a520; -t0 = s0 << 2; -t8 = MEM_U32(t8 + 8); -//nop; -t1 = t8 + t0; -a0 = MEM_U32(t1 + 0); -a1 = 0x6d; -v0 = f_mksuf(mem, sp, a0, a1); -goto L413950; -a1 = 0x6d; -L413950: -// bdead 4006010b gp = MEM_U32(sp + 64); -t3 = MEM_U32(sp + 252); -t4 = 0x100003a8; -at = 0x1000a1f4; -t4 = MEM_U32(t4 + 0); -MEM_U32(at + 0) = v0; -at = (int)t3 < (int)t4; -if (at == 0) {//nop; -goto L4139d4;} -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = sp + 0xf0; -a2 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41398c; -a2 = zero; -L41398c: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L4139d4; -MEM_U32(at + 0) = v0; -L4139a0: -t2 = 0x1000a380; -a1 = 0x1000202c; -//nop; -a0 = MEM_U32(t2 + 124); -a2 = sp + 0xf0; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4139c0; -a1 = a1; -L4139c0: -// bdead 4006010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -L4139d4: -a1 = 0x1000a1f4; -a0 = 0x10002030; -//nop; -a1 = MEM_U32(a1 + 0); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4139f0; -a0 = a0; -L4139f0: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L413a08; -a1 = s4; -L413a08: -// bdead 40060103 gp = MEM_U32(sp + 64); -a2 = zero; -a1 = 0x1000a1f0; -a0 = 0x10002034; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L413a28; -a0 = a0; -L413a28: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L413a40; -a1 = s4; -L413a40: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t9 = 0x1000a16c; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L413a7c;} -//nop; -a1 = 0x10002038; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413a74; -a1 = a1; -L413a74: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413a7c: -t6 = 0x1000a170; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L413ab0;} -//nop; -a1 = 0x10002044; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413aa8; -a1 = a1; -L413aa8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413ab0: -t7 = 0x10000284; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L413ae4;} -//nop; -a1 = 0x10002050; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413adc; -a1 = a1; -L413adc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413ae4: -t5 = 0x1000a154; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L413b18;} -//nop; -a1 = 0x1000205c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413b10; -a1 = a1; -L413b10: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413b18: -t8 = 0x1000a15c; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L413b4c;} -//nop; -a1 = 0x10002068; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413b44; -a1 = a1; -L413b44: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413b4c: -t0 = 0x10000398; -at = 0x2; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L413b80;} -//nop; -a1 = 0x10002070; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413b78; -a1 = a1; -L413b78: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413b80: -t1 = 0x10000234; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L413bb8;} -//nop; -a1 = 0x1000207c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413bac; -a1 = a1; -L413bac: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L413bd4; -//nop; -L413bb8: -a1 = 0x10002084; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413bcc; -a1 = a1; -L413bcc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413bd4: -t4 = 0x1000a150; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -t3 = t4 & 0x2; -if (t3 == 0) {//nop; -goto L413c58;} -//nop; -t2 = 0x1000a520; -t9 = s0 << 2; -t2 = MEM_U32(t2 + 8); -a1 = 0x5; -t6 = t2 + t9; -//nop; -a0 = MEM_U32(t6 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L413c14; -//nop; -L413c14: -// bdead 4006010b gp = MEM_U32(sp + 64); -s5 = v0; -a0 = 0x1000208c; -//nop; -a1 = s5; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L413c34; -a0 = a0; -L413c34: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L413c4c; -a1 = s4; -L413c4c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L413c8c; -//nop; -L413c58: -t7 = 0x10000424; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L413c8c;} -//nop; -a1 = 0x10002098; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413c84; -a1 = a1; -L413c84: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413c8c: -t5 = 0x10000424; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L413d10;} -//nop; -t8 = 0x1000a520; -a1 = 0x1000a24c; -t8 = MEM_U32(t8 + 8); -t0 = s0 << 2; -//nop; -t1 = t8 + t0; -a0 = MEM_U32(t1 + 0); -a1 = MEM_U8(a1 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L413ccc; -//nop; -L413ccc: -// bdead 4006010b gp = MEM_U32(sp + 64); -s5 = v0; -a0 = 0x100020a4; -//nop; -a1 = s5; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L413cec; -a0 = a0; -L413cec: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L413d04; -a1 = s4; -L413d04: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L413d78; -//nop; -L413d10: -t4 = 0x1000a520; -a1 = 0x1000a24c; -t4 = MEM_U32(t4 + 8); -t3 = s0 << 2; -//nop; -t2 = t4 + t3; -a0 = MEM_U32(t2 + 0); -a1 = MEM_U8(a1 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L413d38; -//nop; -L413d38: -// bdead 4006010b gp = MEM_U32(sp + 64); -s5 = v0; -a0 = 0x100020b0; -//nop; -a1 = s5; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L413d58; -a0 = a0; -L413d58: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L413d70; -a1 = s4; -L413d70: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413d78: -a1 = 0x100020c4; -//nop; -a0 = 0x1000a560; -// bdead 40060063 a2 = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413d90; -a1 = a1; -L413d90: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100020dc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413dac; -a1 = a1; -L413dac: -// bdead 40060003 gp = MEM_U32(sp + 64); -t6 = MEM_U32(sp + 252); -t9 = 0x100003a8; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -at = (int)t6 < (int)t9; -if (at != 0) {//nop; -goto L413df0;} -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a5b8; -//nop; -f_addlist(mem, sp, a0, a1); -goto L413de4; -//nop; -L413de4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L414058; -//nop; -L413df0: -a1 = 0x100020e4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413e04; -a1 = a1; -L413e04: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100020ec; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L413e20; -a1 = a1; -L413e20: -t7 = MEM_U32(sp + 256); -// bdead 40070003 gp = MEM_U32(sp + 64); -t8 = MEM_U32(sp + 356); -t5 = t7 + 0x1; -t0 = t5 << 2; -a1 = 0x100020f4; -//nop; -MEM_U32(sp + 256) = t5; -t1 = t8 + t0; -a0 = MEM_U32(t1 + 0); -a2 = 0xc; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L413e54; -a1 = a1; -L413e54: -// bdead 4006000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L413f04;} -//nop; -L413e60: -t4 = MEM_U32(sp + 256); -t2 = MEM_U32(sp + 356); -t3 = t4 + 0x1; -t9 = t3 << 2; -MEM_U32(sp + 256) = t3; -t6 = t2 + t9; -t7 = MEM_U32(t6 + 0); -//nop; -if (t7 != 0) {//nop; -goto L413ed0;} -//nop; -t5 = 0x10002104; -//nop; -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L413eb0; -MEM_U32(sp + 16) = zero; -L413eb0: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L413ec8; -//nop; -L413ec8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L413ed0: -t0 = MEM_U32(sp + 256); -t8 = MEM_U32(sp + 356); -t1 = t0 << 2; -a1 = 0x100020f4; -//nop; -t4 = t8 + t1; -a0 = MEM_U32(t4 + 0); -a2 = 0xc; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L413ef8; -a1 = a1; -L413ef8: -// bdead 4006000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L413e60;} -//nop; -L413f04: -a0 = 0x10002124; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L413f18; -//nop; -L413f18: -t2 = MEM_U32(sp + 256); -t3 = MEM_U32(sp + 356); -t9 = t2 << 2; -t6 = t3 + t9; -t7 = MEM_U32(t6 + 0); -// bdead 4007018b gp = MEM_U32(sp + 64); -t5 = v0 + t7; -MEM_U32(sp + 232) = t5; -L413f38: -t0 = MEM_U32(sp + 232); -//nop; -t8 = t0 + 0x1; -MEM_U32(sp + 236) = t8; -t1 = MEM_U8(t0 + 1); -//nop; -if (t1 != 0) {//nop; -goto L413fa0;} -//nop; -t4 = 0x10002130; -//nop; -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L413f80; -MEM_U32(sp + 16) = zero; -L413f80: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L413f98; -//nop; -L413f98: -// bdead 40060183 gp = MEM_U32(sp + 64); -//nop; -L413fa0: -t2 = MEM_U32(sp + 236); -at = 0x2c; -t3 = t2 + 0x1; -MEM_U32(sp + 232) = t3; -t9 = MEM_U8(t2 + 1); -//nop; -if (t9 == at) {//nop; -goto L413ff8;} -//nop; -if (t9 == 0) {//nop; -goto L413ff8;} -//nop; -L413fc8: -t6 = MEM_U32(sp + 232); -at = 0x2c; -t7 = t6 + 0x1; -MEM_U32(sp + 232) = t7; -t5 = MEM_U32(sp + 232); -//nop; -t8 = MEM_U8(t5 + 0); -//nop; -if (t8 == at) {//nop; -goto L413ff8;} -//nop; -if (t8 != 0) {//nop; -goto L413fc8;} -//nop; -L413ff8: -t0 = MEM_U32(sp + 232); -a1 = zero; -t1 = MEM_U8(t0 + 0); -//nop; -MEM_U8(sp + 231) = (uint8_t)t1; -MEM_U8(t0 + 0) = (uint8_t)zero; -//nop; -a0 = MEM_U32(sp + 236); -//nop; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L414020; -//nop; -L414020: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L414038; -a1 = s4; -L414038: -t4 = MEM_U8(sp + 231); -// bdead 40062183 gp = MEM_U32(sp + 64); -if (t4 == 0) {//nop; -goto L414058;} -//nop; -t3 = MEM_U8(sp + 231); -t2 = MEM_U32(sp + 232); -MEM_U8(t2 + 0) = (uint8_t)t3; -goto L413f38; -MEM_U8(t2 + 0) = (uint8_t)t3; -L414058: -a0 = 0x1000a5c4; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L41407c; -MEM_U32(sp + 16) = zero; -L41407c: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L414150;} -//nop; -t9 = 0x10000404; -t7 = 0x1000a1a0; -t9 = MEM_U32(t9 + 0); -at = 0x10000404; -t7 = MEM_U32(t7 + 0); -t6 = t9 + 0x1; -if (t7 != 0) {MEM_U32(at + 0) = t6; -goto L4140c8;} -MEM_U32(at + 0) = t6; -t5 = 0x1000a24c; -at = 0x65; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 == at) {at = 0x72; -goto L4140c8;} -at = 0x72; -if (t5 != at) {//nop; -goto L414114;} -//nop; -L4140c8: -t8 = 0x1000a24c; -at = 0x69; -t8 = MEM_U8(t8 + 0); -//nop; -if (t8 == at) {//nop; -goto L414114;} -//nop; -t1 = 0x10000240; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L414114;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41410c; -//nop; -L41410c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L414114: -t0 = 0x1000a150; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -t4 = t0 & 0x4; -if (t4 != 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L414144; -//nop; -L414144: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L414150: -t3 = 0x1000a150; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -t2 = t3 & 0x2; -if (t2 != 0) {//nop; -goto L414184;} -//nop; -//nop; -a0 = MEM_U32(sp + 248); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41417c; -//nop; -L41417c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L414184: -t9 = MEM_U32(sp + 252); -//nop; -if (t9 != 0) {//nop; -goto L414224;} -//nop; -t6 = 0x1000a1a0; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L4141d4;} -//nop; -t7 = 0x1000a24c; -at = 0x65; -t7 = MEM_U8(t7 + 0); -//nop; -if (t7 == at) {at = 0x72; -goto L4141d4;} -at = 0x72; -if (t7 == at) {at = 0x46; -goto L4141d4;} -at = 0x46; -if (t7 != at) {//nop; -goto L41425c;} -//nop; -L4141d4: -t5 = 0x1000a24c; -at = 0x69; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 == at) {//nop; -goto L41425c;} -//nop; -t8 = 0x10000240; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L41425c;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L414218; -//nop; -L414218: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41425c; -//nop; -L414224: -t1 = 0x1000a150; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -t0 = t1 & 0x4; -if (t0 != 0) {//nop; -goto L41425c;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L414254; -//nop; -L414254: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L41425c: -t2 = 0x100003a8; -t4 = MEM_U32(sp + 252); -t2 = MEM_U32(t2 + 0); -t3 = t4 + 0x1; -at = (int)t2 < (int)t3; -if (at != 0) {MEM_U32(sp + 252) = t3; -goto L41428c;} -MEM_U32(sp + 252) = t3; -t9 = 0x1000a1f4; -at = 0x1000a1f0; -t9 = MEM_U32(t9 + 0); -MEM_U32(at + 0) = t9; -goto L413808; -MEM_U32(at + 0) = t9; -L41428c: -t6 = 0x1000a1f4; -at = 0x1000a1f0; -t7 = 0x1000a1e6; -t6 = MEM_U32(t6 + 0); -t7 = MEM_U8(t7 + 0); -MEM_U32(at + 0) = t6; -at = 0x4b; -if (t7 == at) {at = 0x1000a560; -goto L41977c;} -L4142ac: -at = 0x1000a560; -a1 = 0x1000215c; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4142c8; -a1 = a1; -L4142c8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t5 = 0x1000a144; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L414300;} -//nop; -//nop; -a0 = 0x1000a560; -a1 = t5; -f_addstr(mem, sp, a0, a1); -goto L4142f8; -a1 = t5; -L4142f8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L414300: -t8 = 0x1000a140; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if ((int)t8 <= 0) {//nop; -goto L414334;} -//nop; -a1 = 0x10002164; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41432c; -a1 = a1; -L41432c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L414334: -t1 = 0x1000a150; -at = 0x10000; -t1 = MEM_U32(t1 + 0); -//nop; -t0 = t1 & at; -if (t0 == 0) {//nop; -goto L41436c;} -//nop; -a1 = 0x10002174; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L414364; -a1 = a1; -L414364: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L41436c: -t4 = 0x100003a4; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L4143a0;} -//nop; -a1 = 0x10002178; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L414398; -a1 = a1; -L414398: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4143a0: -t2 = 0x10000234; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L4143d4;} -//nop; -a1 = 0x10002184; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4143cc; -a1 = a1; -L4143cc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4143d4: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a330; -//nop; -f_addlist(mem, sp, a0, a1); -goto L4143e8; -//nop; -L4143e8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t3 = 0x10000124; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L414444;} -//nop; -a1 = 0x1000a1fc; -a0 = 0x10002188; -//nop; -a1 = MEM_U32(a1 + 0); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L414424; -a0 = a0; -L414424: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41443c; -a1 = s4; -L41443c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L414444: -t9 = 0x10000124; -s3 = zero; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L414484;} -//nop; -a1 = 0x1000218c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L414470; -a1 = a1; -L414470: -// bdead 40160003 gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = zero; -goto L414600; -MEM_U32(at + 0) = zero; -L414484: -t6 = 0x1000a1e6; -at = 0x66; -t6 = MEM_U8(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L414524;} -//nop; -t7 = 0x1000a520; -t5 = s0 << 2; -t7 = MEM_U32(t7 + 8); -//nop; -t8 = t7 + t5; -a0 = MEM_U32(t8 + 0); -a1 = 0x42; -v0 = f_mksuf(mem, sp, a0, a1); -goto L4144bc; -a1 = 0x42; -L4144bc: -// bdead 4016000b gp = MEM_U32(sp + 64); -//nop; -t1 = 0x10000278; -at = 0x1000a1f4; -t1 = MEM_U32(t1 + 0); -MEM_U32(at + 0) = v0; -if (t1 == 0) {//nop; -goto L414600;} -//nop; -a1 = 0x10002194; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4144f0; -a1 = a1; -L4144f0: -// bdead 40060003 gp = MEM_U32(sp + 64); -t4 = s0 << 2; -t0 = 0x1000a520; -//nop; -t0 = MEM_U32(t0 + 8); -a1 = 0x55; -t2 = t0 + t4; -a0 = MEM_U32(t2 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L414518; -//nop; -L414518: -// bdead 4006000b gp = MEM_U32(sp + 64); -s3 = v0; -goto L414600; -s3 = v0; -L414524: -t3 = 0x10000240; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L4145ec;} -//nop; -t9 = 0x1000a520; -t6 = s0 << 2; -t9 = MEM_U32(t9 + 8); -a1 = 0x42; -t7 = t9 + t6; -//nop; -a0 = MEM_U32(t7 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L414560; -//nop; -L414560: -// bdead 4016000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -a0 = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L414584; -//nop; -L414584: -// bdead 4016000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L414600;} -//nop; -t8 = 0x1000a1f4; -t5 = 0x10002198; -//nop; -t8 = MEM_U32(t8 + 0); -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t8; -f_error(mem, sp, a0, a1, a2, a3); -goto L4145c8; -MEM_U32(sp + 24) = t8; -L4145c8: -// bdead 40160003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4145e0; -//nop; -L4145e0: -// bdead 40160003 gp = MEM_U32(sp + 64); -//nop; -goto L414600; -//nop; -L4145ec: -t1 = 0x1000a380; -at = 0x1000a1f4; -t0 = MEM_U32(t1 + 12); -//nop; -MEM_U32(at + 0) = t0; -L414600: -t4 = 0x1000a1f4; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L414654;} -//nop; -a1 = 0x100021c4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41462c; -a1 = a1; -L41462c: -// bdead 40160003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41464c; -//nop; -L41464c: -// bdead 40160003 gp = MEM_U32(sp + 64); -//nop; -L414654: -t2 = 0x1000a1a0; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L4146a0;} -//nop; -t3 = 0x1000a24c; -at = 0x69; -t3 = MEM_U8(t3 + 0); -//nop; -if (t3 == at) {at = 0x6d; -goto L4146a0;} -at = 0x6d; -if (t3 == at) {//nop; -goto L4146a0;} -//nop; -s2 = 0x1000a1f0; -//nop; -s2 = MEM_U32(s2 + 0); -//nop; -goto L4146c0; -//nop; -L4146a0: -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4146b8; -//nop; -L4146b8: -// bdead 40160003 gp = MEM_U32(sp + 64); -s2 = zero; -L4146c0: -t9 = 0x1000a1f8; -a0 = 0x100000a8; -t9 = MEM_U32(t9 + 0); -a1 = 0x1000a560; -MEM_U32(sp + 16) = t9; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a2 = s2; -a3 = s3; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L4146ec; -a3 = s3; -L4146ec: -// bdead 4006018b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4149c8;} -//nop; -t6 = 0x100002a8; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L4148a8;} -//nop; -t7 = 0x1000a244; -t5 = 0x1000a248; -t7 = MEM_U32(t7 + 0); -t5 = MEM_U32(t5 + 0); -//nop; -at = (int)t7 < (int)t5; -if (at == 0) {//nop; -goto L41488c;} -//nop; -t1 = 0x1000a520; -at = 0x1000a244; -t1 = MEM_U32(t1 + 8); -a0 = 0x1000a23c; -t8 = t7 + 0x1; -t0 = s0 << 2; -//nop; -MEM_U32(at + 0) = t8; -t4 = t1 + t0; -a1 = MEM_U32(t4 + 0); -a0 = MEM_U32(a0 + 0); -a2 = 0x3; -v0 = f_edit_src(mem, sp, a0, a1, a2); -goto L414764; -a2 = 0x3; -L414764: -// bdead 4006008b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4147a4;} -//nop; -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -f_show_err(mem, sp, a0); -goto L414784; -//nop; -L414784: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41479c; -//nop; -L41479c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4147a4: -t2 = 0x1000a1a0; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L4147dc;} -//nop; -t3 = 0x1000a24c; -at = 0x65; -t3 = MEM_U8(t3 + 0); -//nop; -if (t3 == at) {at = 0x72; -goto L4147dc;} -at = 0x72; -if (t3 != at) {//nop; -goto L414818;} -//nop; -L4147dc: -t9 = 0x1000a24c; -at = 0x69; -t9 = MEM_U8(t9 + 0); -//nop; -if (t9 == at) {at = 0x66; -goto L414818;} -at = 0x66; -if (t9 == at) {//nop; -goto L414818;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L414810; -//nop; -L414810: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L414818: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41482c; -//nop; -L41482c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L414848; -//nop; -L414848: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L414864; -//nop; -L414864: -// bdead 40060103 gp = MEM_U32(sp + 64); -t5 = s0 << 2; -t6 = 0x1000a520; -at = 0x1000a1f0; -t6 = MEM_U32(t6 + 8); -//nop; -t7 = t6 + t5; -t8 = MEM_U32(t7 + 0); -MEM_U32(at + 0) = t8; -goto L40a8e0; -MEM_U32(at + 0) = t8; -L41488c: -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -f_show_err(mem, sp, a0); -goto L4148a0; -//nop; -L4148a0: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L4148a8: -t1 = 0x10000404; -t4 = 0x1000a1a0; -t1 = MEM_U32(t1 + 0); -at = 0x10000404; -t4 = MEM_U32(t4 + 0); -t0 = t1 + 0x1; -if (t4 != 0) {MEM_U32(at + 0) = t0; -goto L414904;} -MEM_U32(at + 0) = t0; -t2 = 0x1000a150; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -t3 = t2 & 0x1; -if (t3 != 0) {//nop; -goto L414904;} -//nop; -t9 = 0x1000a24c; -at = 0x65; -t9 = MEM_U8(t9 + 0); -//nop; -if (t9 == at) {at = 0x72; -goto L414904;} -at = 0x72; -if (t9 != at) {//nop; -goto L414974;} -//nop; -L414904: -t6 = 0x1000a24c; -at = 0x69; -t6 = MEM_U8(t6 + 0); -//nop; -if (t6 == at) {at = 0x6d; -goto L414974;} -at = 0x6d; -if (t6 == at) {//nop; -goto L414974;} -//nop; -t5 = 0x10000240; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L414974;} -//nop; -t7 = 0x1000a150; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -t8 = t7 & 0x4; -if (t8 != 0) {//nop; -goto L414974;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41496c; -//nop; -L41496c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L414974: -t1 = 0x10000240; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4149a0; -//nop; -L4149a0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4149bc; -//nop; -L4149bc: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L4149c8: -t0 = 0x100002a8; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L4149fc;} -//nop; -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4149f4; -//nop; -L4149f4: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L4149fc: -t4 = 0x10000124; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L414a4c;} -//nop; -t2 = 0x1000a1a0; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L414a40; -//nop; -L414a40: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L414a4c: -t3 = 0x1000a1a0; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L414ac0;} -//nop; -t9 = 0x1000a150; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -t6 = t9 & 0x1; -if (t6 != 0) {//nop; -goto L414ac0;} -//nop; -t5 = 0x1000043c; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L414ac0;} -//nop; -t7 = 0x1000a24c; -at = 0x65; -t7 = MEM_U8(t7 + 0); -//nop; -if (t7 == at) {at = 0x72; -goto L414ac0;} -at = 0x72; -if (t7 == at) {at = 0x46; -goto L414ac0;} -at = 0x46; -if (t7 != at) {//nop; -goto L414b30;} -//nop; -L414ac0: -t8 = 0x1000a24c; -at = 0x69; -t8 = MEM_U8(t8 + 0); -//nop; -if (t8 == at) {at = 0x6d; -goto L414b30;} -at = 0x6d; -if (t8 == at) {//nop; -goto L414b30;} -//nop; -t1 = 0x10000240; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L414b30;} -//nop; -t0 = 0x1000a150; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -t4 = t0 & 0x4; -if (t4 != 0) {//nop; -goto L414b30;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L414b28; -//nop; -L414b28: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L414b30: -t2 = 0x1000a1f4; -at = 0x1000a1f0; -t3 = 0x1000a1e6; -t2 = MEM_U32(t2 + 0); -t3 = MEM_U8(t3 + 0); -MEM_U32(at + 0) = t2; -at = 0x66; -if (t3 == at) {//nop; -goto L41977c;} -//nop; -L414b54: -t9 = 0x10000230; -at = 0x3; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == at) {at = 0x4; -goto L414bac;} -at = 0x4; -if (t9 == at) {//nop; -goto L414bac;} -//nop; -t6 = 0x10000224; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L414bac;} -//nop; -t5 = 0x10000374; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L4164f0;} -//nop; -//nop; -goto L416864; -//nop; -L414bac: -at = 0x1000a560; -a1 = 0x100021c8; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L414bc8; -a1 = a1; -L414bc8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t7 = 0x10000234; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L414c04;} -//nop; -a1 = 0x100021d0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L414bfc; -a1 = a1; -L414bfc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L414c04: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a438; -//nop; -f_addlist(mem, sp, a0, a1); -goto L414c18; -//nop; -L414c18: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t8 = 0x1000a1ec; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L414c70;} -//nop; -t1 = 0x10000224; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L414c70;} -//nop; -t0 = 0x1000a520; -at = 0x1; -t0 = MEM_U32(t0 + 4); -//nop; -if (t0 != at) {at = 0x1000a1f4; -goto L414c70;} -at = 0x1000a1f4; -MEM_U32(at + 0) = t8; -goto L414ca4; -MEM_U32(at + 0) = t8; -L414c70: -t4 = 0x1000a520; -t2 = s0 << 2; -t4 = MEM_U32(t4 + 8); -//nop; -t3 = t4 + t2; -a0 = MEM_U32(t3 + 0); -a1 = 0x75; -v0 = f_mksuf(mem, sp, a0, a1); -goto L414c90; -a1 = 0x75; -L414c90: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -L414ca4: -a1 = 0x100021d4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L414cb8; -a1 = a1; -L414cb8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L414cd8; -//nop; -L414cd8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L414cf8; -//nop; -L414cf8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1fc; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L414d18; -//nop; -L414d18: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000bc; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L414d40; -MEM_U32(sp + 16) = zero; -L414d40: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L414df4;} -//nop; -t9 = 0x10000404; -t5 = 0x10000240; -t9 = MEM_U32(t9 + 0); -at = 0x10000404; -t5 = MEM_U32(t5 + 0); -t6 = t9 + 0x1; -if (t5 != 0) {MEM_U32(at + 0) = t6; -goto L41977c;} -MEM_U32(at + 0) = t6; -t7 = 0x1000a24c; -at = 0x42; -t7 = MEM_U8(t7 + 0); -//nop; -if (t7 == at) {//nop; -goto L414da0;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L414d98; -//nop; -L414d98: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L414da0: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L414db4; -//nop; -L414db4: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t1 = 0x1000a250; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L414de8; -//nop; -L414de8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L414df4: -t0 = 0x10000228; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L414e2c;} -//nop; -t8 = 0x10000230; -at = 0x3; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == at) {at = 0x4; -goto L414e2c;} -at = 0x4; -if (t8 != at) {//nop; -goto L416864;} -//nop; -L414e2c: -t4 = 0x10000240; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L414eac;} -//nop; -t2 = 0x1000a24c; -at = 0x42; -t2 = MEM_U8(t2 + 0); -//nop; -if (t2 == at) {//nop; -goto L414e78;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L414e70; -//nop; -L414e70: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L414e78: -t3 = 0x1000a250; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L414eac;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L414ea4; -//nop; -L414ea4: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L414eac: -t9 = 0x1000a1f4; -at = 0x1000a1f0; -t9 = MEM_U32(t9 + 0); -MEM_U32(at + 0) = t9; -goto L41977c; -MEM_U32(at + 0) = t9; -L414ec0: -t6 = 0x10000324; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L414f18;} -//nop; -t5 = 0x1000031c; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L414f18;} -//nop; -a1 = 0x100021d8; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L414f04; -a1 = a1; -L414f04: -// bdead 40060003 gp = MEM_U32(sp + 64); -t7 = 0x1; -at = 0x1000031c; -//nop; -MEM_U32(at + 0) = t7; -L414f18: -at = 0x1000a560; -a1 = 0x100021e4; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L414f34; -a1 = a1; -L414f34: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t1 = 0x10000280; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L414f78;} -//nop; -a1 = 0x1000a25c; -a0 = 0x100021e8; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -v0 = wrapper_strcmp(mem, a0, a1); -goto L414f6c; -a0 = a0; -L414f6c: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L415080;} -//nop; -L414f78: -t0 = 0x10000260; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L415080;} -//nop; -a1 = 0x1000a25c; -a0 = 0x100021ec; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -v0 = wrapper_strcmp(mem, a0, a1); -goto L414fa8; -a0 = a0; -L414fa8: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L415080;} -//nop; -t8 = 0x10000324; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L415028;} -//nop; -t4 = 0x1000a32c; -a1 = 0x1000a25c; -a2 = 0x10000428; -a0 = 0x100021f0; -a3 = 0x100021f4; -//nop; -t4 = MEM_U32(t4 + 0); -a1 = MEM_U32(a1 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a0 = a0; -a3 = a3; -MEM_U32(sp + 16) = t4; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L415004; -MEM_U32(sp + 16) = t4; -L415004: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41501c; -a1 = s4; -L41501c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L415080; -//nop; -L415028: -t2 = 0x1000a32c; -a1 = 0x1000a25c; -a2 = 0x10000428; -a0 = 0x10002208; -a3 = 0x1000220c; -//nop; -t2 = MEM_U32(t2 + 0); -a1 = MEM_U32(a1 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a0 = a0; -a3 = a3; -MEM_U32(sp + 16) = t2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L415060; -MEM_U32(sp + 16) = t2; -L415060: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L415078; -a1 = s4; -L415078: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L415080: -t3 = 0x100002f0; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L415280;} -//nop; -t9 = MEM_U32(sp + 332); -//nop; -if (t9 != 0) {//nop; -goto L415280;} -//nop; -a1 = 0x1000a25c; -a0 = 0x10002218; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4150c0; -a0 = a0; -L4150c0: -// bdead 4006000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4151b4;} -//nop; -t6 = 0x10000324; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L41514c;} -//nop; -t5 = 0x1000a32c; -a1 = 0x1000a25c; -a2 = 0x10000428; -t7 = 0x1000222c; -a0 = 0x1000221c; -a3 = 0x10002220; -//nop; -t5 = MEM_U32(t5 + 0); -a1 = MEM_U32(a1 + 0); -a2 = MEM_U32(a2 + 0); -t7 = t7; -MEM_U32(sp + 20) = t7; -MEM_U32(sp + 24) = zero; -a0 = a0; -a3 = a3; -MEM_U32(sp + 16) = t5; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L415128; -MEM_U32(sp + 16) = t5; -L415128: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L415140; -a1 = s4; -L415140: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L415280; -//nop; -L41514c: -t1 = 0x1000a32c; -a1 = 0x1000a25c; -a2 = 0x10000428; -t0 = 0x1000224c; -a0 = 0x1000223c; -a3 = 0x10002240; -//nop; -t1 = MEM_U32(t1 + 0); -a1 = MEM_U32(a1 + 0); -a2 = MEM_U32(a2 + 0); -t0 = t0; -MEM_U32(sp + 20) = t0; -MEM_U32(sp + 24) = zero; -a0 = a0; -a3 = a3; -MEM_U32(sp + 16) = t1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L415190; -MEM_U32(sp + 16) = t1; -L415190: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L4151a8; -a1 = s4; -L4151a8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L415280; -//nop; -L4151b4: -t8 = 0x10000324; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L415228;} -//nop; -a1 = 0x10000428; -a3 = 0x1000a32c; -t4 = 0x10002264; -a0 = 0x10002254; -a2 = 0x10002258; -//nop; -a1 = MEM_U32(a1 + 0); -a3 = MEM_U32(a3 + 0); -t4 = t4; -MEM_U32(sp + 16) = t4; -MEM_U32(sp + 20) = zero; -a0 = a0; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L415204; -a2 = a2; -L415204: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41521c; -a1 = s4; -L41521c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L415280; -//nop; -L415228: -a1 = 0x10000428; -a3 = 0x1000a32c; -t2 = 0x10002284; -a0 = 0x10002274; -a2 = 0x10002278; -//nop; -a1 = MEM_U32(a1 + 0); -a3 = MEM_U32(a3 + 0); -t2 = t2; -MEM_U32(sp + 16) = t2; -MEM_U32(sp + 20) = zero; -a0 = a0; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L415260; -a2 = a2; -L415260: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L415278; -a1 = s4; -L415278: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L415280: -t3 = 0x10000370; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L415370;} -//nop; -t9 = 0x100003e4; -at = 0x1; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L4152e8;} -//nop; -a0 = 0x1000228c; -//nop; -a1 = zero; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4152c8; -a0 = a0; -L4152c8: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L4152e0; -a1 = s4; -L4152e0: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L4152e8: -a0 = 0x1000229c; -//nop; -a1 = zero; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L415300; -a0 = a0; -L415300: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L415318; -a1 = s4; -L415318: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t6 = 0x10000348; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L415370;} -//nop; -a1 = 0x100022ac; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41534c; -a1 = a1; -L41534c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100022c4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L415368; -a1 = a1; -L415368: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L415370: -t5 = 0x1000a1b8; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L4153d0;} -//nop; -t7 = MEM_U8(t5 + 0); -//nop; -if (t7 == 0) {//nop; -goto L4153d0;} -//nop; -a0 = 0x100022d8; -//nop; -a1 = t5; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4153b0; -a0 = a0; -L4153b0: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L4153c8; -a1 = s4; -L4153c8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4153d0: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a448; -//nop; -f_addlist(mem, sp, a0, a1); -goto L4153e4; -//nop; -L4153e4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a4e0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L415400; -//nop; -L415400: -// bdead 40060183 gp = MEM_U32(sp + 64); -//nop; -t1 = 0x10000424; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L4155bc;} -//nop; -a0 = 0x100022dc; -//nop; -a1 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L415434; -a0 = a0; -L415434: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41544c; -a1 = s4; -L41544c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t0 = 0x10000324; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L415514;} -//nop; -a0 = 0x100022e0; -a1 = 0x100022e4; -a2 = 0x100022f0; -//nop; -a3 = zero; -a0 = a0; -a1 = a1; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L415490; -a2 = a2; -L415490: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L4154a8; -a1 = s4; -L4154a8: -// bdead 40060003 gp = MEM_U32(sp + 64); -a3 = zero; -a0 = 0x1000a26c; -a2 = 0x1000a254; -a1 = 0x10002304; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4154d0; -a1 = a1; -L4154d0: -// bdead 4006000b gp = MEM_U32(sp + 64); -a3 = zero; -a0 = 0x1000a26c; -at = 0x10000164; -a1 = 0x10002318; -a2 = 0x1000232c; -//nop; -a0 = MEM_U32(a0 + 0); -MEM_U32(at + 0) = v0; -a1 = a1; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L415500; -a2 = a2; -L415500: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x10000168; -MEM_U32(at + 0) = v0; -goto L4155bc; -MEM_U32(at + 0) = v0; -L415514: -a0 = 0x10002334; -a1 = 0x10002338; -a2 = 0x10002344; -//nop; -a3 = zero; -a0 = a0; -a1 = a1; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L415538; -a2 = a2; -L415538: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L415550; -a1 = s4; -L415550: -// bdead 40060003 gp = MEM_U32(sp + 64); -a3 = zero; -a0 = 0x1000a26c; -a2 = 0x1000a254; -a1 = 0x10002350; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L415578; -a1 = a1; -L415578: -// bdead 4006000b gp = MEM_U32(sp + 64); -a3 = zero; -a0 = 0x1000a26c; -at = 0x10000164; -a1 = 0x1000235c; -a2 = 0x10002368; -//nop; -a0 = MEM_U32(a0 + 0); -MEM_U32(at + 0) = v0; -a1 = a1; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4155a8; -a2 = a2; -L4155a8: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x10000168; -//nop; -MEM_U32(at + 0) = v0; -L4155bc: -t8 = 0x10000228; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L415630;} -//nop; -a1 = 0x10000164; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4155ec; -//nop; -L4155ec: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t4 = 0x10000220; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L415680;} -//nop; -a1 = 0x100001d4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L415624; -//nop; -L415624: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L415680; -//nop; -L415630: -a1 = 0x10002370; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L415644; -a1 = a1; -L415644: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t2 = 0x1000033c; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L415680;} -//nop; -a1 = 0x10002380; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L415678; -a1 = a1; -L415678: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L415680: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a530; -a2 = 0x1000a540; -//nop; -f_adduldlist(mem, sp, a0, a1, a2); -goto L415698; -//nop; -L415698: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t3 = 0x10000228; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L415f5c;} -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a2e0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L4156cc; -//nop; -L4156cc: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x2; -t9 = 0x1000a36c; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == at) {//nop; -goto L415704;} -//nop; -t6 = 0x10000388; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L415858;} -//nop; -L415704: -a0 = 0x10000174; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_newstr(mem, sp, a0); -goto L415718; -//nop; -L415718: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addspacedstr(mem, sp, a0, a1); -goto L415730; -a1 = s4; -L415730: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x100001d8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_newstr(mem, sp, a0); -goto L41574c; -//nop; -L41574c: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addspacedstr(mem, sp, a0, a1); -goto L415764; -a1 = s4; -L415764: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x100001bc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_newstr(mem, sp, a0); -goto L415780; -//nop; -L415780: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addspacedstr(mem, sp, a0, a1); -goto L415798; -a1 = s4; -L415798: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x100001e4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_newstr(mem, sp, a0); -goto L4157b4; -//nop; -L4157b4: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addspacedstr(mem, sp, a0, a1); -goto L4157cc; -a1 = s4; -L4157cc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t7 = 0x10000384; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L415804;} -//nop; -t5 = 0x10000348; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L415858;} -//nop; -L415804: -t1 = 0x1000a27c; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L415858;} -//nop; -a1 = 0x10002394; -//nop; -a0 = t1; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L415830; -a1 = a1; -L415830: -// bdead 4006000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L415858;} -//nop; -a1 = 0x1000239c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addspacedstr(mem, sp, a0, a1); -goto L415850; -a1 = a1; -L415850: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L415858: -t0 = 0x1000a36c; -at = 0x3; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == at) {//nop; -goto L415888;} -//nop; -t8 = 0x1000038c; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L415a74;} -//nop; -L415888: -t4 = 0x1000a150; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L4158c0;} -//nop; -a1 = 0x1000a5c8; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4158b8; -//nop; -L4158b8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4158c0: -t2 = 0x10000324; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L4158f0;} -//nop; -t3 = 0x10000424; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L415928;} -//nop; -L4158f0: -a0 = 0x10000184; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_newstr(mem, sp, a0); -goto L415904; -//nop; -L415904: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addspacedstr(mem, sp, a0, a1); -goto L41591c; -a1 = s4; -L41591c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L415948; -//nop; -L415928: -a1 = 0x10000198; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L415940; -//nop; -L415940: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L415948: -t9 = 0x10000324; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L415978;} -//nop; -t6 = 0x10000424; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L4159ac;} -//nop; -L415978: -a0 = 0x1000018c; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_newstr(mem, sp, a0); -goto L41598c; -//nop; -L41598c: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addspacedstr(mem, sp, a0, a1); -goto L4159a4; -a1 = s4; -L4159a4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4159ac: -t7 = 0x10000324; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L4159dc;} -//nop; -t5 = 0x10000424; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L415a10;} -//nop; -L4159dc: -a0 = 0x10000194; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_newstr(mem, sp, a0); -goto L4159f0; -//nop; -L4159f0: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addspacedstr(mem, sp, a0, a1); -goto L415a08; -a1 = s4; -L415a08: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L415a10: -t1 = 0x10000324; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L415a40;} -//nop; -t0 = 0x10000424; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L415a74;} -//nop; -L415a40: -a0 = 0x100001a0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_newstr(mem, sp, a0); -goto L415a54; -//nop; -L415a54: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addspacedstr(mem, sp, a0, a1); -goto L415a6c; -a1 = s4; -L415a6c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L415a74: -t8 = 0x1000a36c; -at = 0x5; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L415b28;} -//nop; -a1 = 0x100001b4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L415aa4; -//nop; -L415aa4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100001d8; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L415ac4; -//nop; -L415ac4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100023a4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L415ae0; -a1 = a1; -L415ae0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100001bc; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L415b00; -//nop; -L415b00: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100001e4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L415b20; -//nop; -L415b20: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L415b28: -t4 = 0x1000a36c; -at = 0x2; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == at) {at = 0x3; -goto L415ba0;} -at = 0x3; -if (t4 == at) {//nop; -goto L415ba0;} -//nop; -t2 = 0x10000388; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L415ba0;} -//nop; -t3 = 0x1000038c; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L415ba0;} -//nop; -t9 = 0x1000a134; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {at = 0x5; -goto L415ba0;} -at = 0x5; -if (t4 == at) {at = 0x6; -goto L415ba0;} -at = 0x6; -if (t4 != at) {//nop; -goto L415bec;} -//nop; -L415ba0: -t6 = 0x1000a28c; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L415bec;} -//nop; -a0 = 0x1000017c; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_newstr(mem, sp, a0); -goto L415bcc; -//nop; -L415bcc: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addspacedstr(mem, sp, a0, a1); -goto L415be4; -a1 = s4; -L415be4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L415bec: -t7 = 0x10000220; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L415c38;} -//nop; -a0 = 0x100001d4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_newstr(mem, sp, a0); -goto L415c18; -//nop; -L415c18: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addspacedstr(mem, sp, a0, a1); -goto L415c30; -a1 = s4; -L415c30: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L415c38: -t5 = 0x1000a188; -at = 0x10000; -t5 = MEM_U32(t5 + 0); -//nop; -t1 = t5 & at; -if (t1 == 0) {//nop; -goto L415ca8;} -//nop; -a1 = 0x100001f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L415c6c; -//nop; -L415c6c: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x1; -t0 = 0x1000a36c; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L415ca8;} -//nop; -a1 = 0x100023b0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L415ca0; -a1 = a1; -L415ca0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L415ca8: -t8 = 0x1000043c; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L415cf4;} -//nop; -t2 = 0x1000a36c; -at = 0x1; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L415cf4;} -//nop; -a1 = 0x100023b8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L415cec; -a1 = a1; -L415cec: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L415cf4: -t3 = 0x1000a36c; -at = 0x3; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L415e1c;} -//nop; -t9 = 0x1000039c; -at = 0x2; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L415d60;} -//nop; -a1 = 0x100023c0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L415d38; -a1 = a1; -L415d38: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100023c8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L415d54; -a1 = a1; -L415d54: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L415e50; -//nop; -L415d60: -t4 = 0x10000424; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L415dac;} -//nop; -t6 = 0x1000a5b4; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L415dac;} -//nop; -a1 = 0x100023cc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L415da4; -a1 = a1; -L415da4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L415dac: -t7 = 0x1000a56c; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L415de4;} -//nop; -a1 = 0x100023d4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L415dd8; -a1 = a1; -L415dd8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L415e50; -//nop; -L415de4: -t5 = 0x1000a570; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L415e50;} -//nop; -a1 = 0x100023dc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L415e10; -a1 = a1; -L415e10: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L415e50; -//nop; -L415e1c: -t1 = 0x1000a56c; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L415e50;} -//nop; -a1 = 0x100023e4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L415e48; -a1 = a1; -L415e48: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L415e50: -t0 = 0x1000030c; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L415ed8;} -//nop; -a0 = 0x100001a8; -a1 = 0x100023ec; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_fopen(mem, a0, a1); -goto L415e80; -a1 = a1; -L415e80: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a234; -t8 = 0x1000a234; -MEM_U32(at + 0) = v0; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L415ed8;} -//nop; -a0 = 0x100001ac; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_newstr(mem, sp, a0); -goto L415eb8; -//nop; -L415eb8: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addspacedstr(mem, sp, a0, a1); -goto L415ed0; -a1 = s4; -L415ed0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L415ed8: -a1 = 0x100023f0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L415eec; -a1 = a1; -L415eec: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t2 = 0x100002a0; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L415f28;} -//nop; -a1 = 0x100023f4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L415f20; -a1 = a1; -L415f20: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L415f28: -t3 = 0x100002a4; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L415f5c;} -//nop; -a1 = 0x100023f8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L415f54; -a1 = a1; -L415f54: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L415f5c: -t9 = 0x10000228; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L415fac;} -//nop; -t4 = 0x100001e8; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L415fac;} -//nop; -a1 = 0x10000168; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L415fa4; -//nop; -L415fa4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L415fac: -t6 = 0x1000a30c; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L415fdc;} -//nop; -//nop; -a0 = 0x1000a560; -a1 = t6; -f_addstr(mem, sp, a0, a1); -goto L415fd4; -a1 = t6; -L415fd4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L415fdc: -a1 = 0x10002400; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L415ff0; -a1 = a1; -L415ff0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t7 = 0x1000a214; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {at = 0x1000a1f4; -goto L416018;} -at = 0x1000a1f4; -MEM_U32(at + 0) = t7; -goto L416090; -MEM_U32(at + 0) = t7; -L416018: -t5 = 0x1000a1e6; -at = 0x75; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 == at) {//nop; -goto L416048;} -//nop; -t1 = 0x10000240; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L41607c;} -//nop; -L416048: -t0 = 0x1000a520; -t8 = s0 << 2; -t0 = MEM_U32(t0 + 8); -//nop; -t2 = t0 + t8; -a0 = MEM_U32(t2 + 0); -a1 = 0x75; -v0 = f_mksuf(mem, sp, a0, a1); -goto L416068; -a1 = 0x75; -L416068: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L416090; -MEM_U32(at + 0) = v0; -L41607c: -t3 = 0x1000a380; -at = 0x1000a1f4; -t9 = MEM_U32(t3 + 16); -//nop; -MEM_U32(at + 0) = t9; -L416090: -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4160a8; -//nop; -L4160a8: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000c4; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L4160d0; -MEM_U32(sp + 16) = zero; -L4160d0: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L41611c;} -//nop; -t4 = 0x10000404; -t7 = 0x10000240; -t4 = MEM_U32(t4 + 0); -at = 0x10000404; -t7 = MEM_U32(t7 + 0); -t6 = t4 + 0x1; -if (t7 != 0) {MEM_U32(at + 0) = t6; -goto L41977c;} -MEM_U32(at + 0) = t6; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L416110; -//nop; -L416110: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L41611c: -t5 = 0x1000a1f4; -at = 0x1000a1f0; -t1 = 0x1000a530; -t5 = MEM_U32(t5 + 0); -t1 = MEM_U32(t1 + 4); -MEM_U32(at + 0) = t5; -at = 0x1; -if (t1 != at) {//nop; -goto L41619c;} -//nop; -t0 = 0x1000a520; -at = 0x2; -t0 = MEM_U32(t0 + 4); -//nop; -if (t0 != at) {//nop; -goto L41619c;} -//nop; -t8 = 0x10000230; -at = 0x3; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == at) {at = 0x4; -goto L416178;} -at = 0x4; -if (t8 != at) {//nop; -goto L41619c;} -//nop; -L416178: -t2 = 0x1000a530; -//nop; -t2 = MEM_U32(t2 + 8); -//nop; -a0 = MEM_U32(t2 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L416194; -//nop; -L416194: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L41619c: -t3 = 0x1000a1e6; -at = 0x75; -t3 = MEM_U8(t3 + 0); -//nop; -if (t3 == at) {at = 0x1000a560; -goto L41977c;} -L4161b0: -at = 0x1000a560; -a1 = 0x10002404; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4161cc; -a1 = a1; -L4161cc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t9 = 0x10000234; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L416208;} -//nop; -a1 = 0x1000240c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L416200; -a1 = a1; -L416200: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L416208: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a460; -//nop; -f_addlist(mem, sp, a0, a1); -goto L41621c; -//nop; -L41621c: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x73; -t4 = 0x1000a1e6; -//nop; -t4 = MEM_U8(t4 + 0); -//nop; -if (t4 == at) {//nop; -goto L416254;} -//nop; -t6 = 0x10000240; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L416300;} -//nop; -L416254: -t7 = 0x1000a520; -t5 = s0 << 2; -t7 = MEM_U32(t7 + 8); -//nop; -t1 = t7 + t5; -a0 = MEM_U32(t1 + 0); -a1 = 0x53; -v0 = f_mksuf(mem, sp, a0, a1); -goto L416274; -a1 = 0x53; -L416274: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -a0 = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L416298; -//nop; -L416298: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L416314;} -//nop; -t8 = 0x1000a1f4; -t0 = 0x10002410; -//nop; -t8 = MEM_U32(t8 + 0); -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t8; -f_error(mem, sp, a0, a1, a2, a3); -goto L4162dc; -MEM_U32(sp + 24) = t8; -L4162dc: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4162f4; -//nop; -L4162f4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L416314; -//nop; -L416300: -t2 = 0x1000a380; -at = 0x1000a1f4; -t3 = MEM_U32(t2 + 20); -//nop; -MEM_U32(at + 0) = t3; -L416314: -a1 = 0x1000243c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L416328; -a1 = a1; -L416328: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L416348; -//nop; -L416348: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10002440; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L416364; -a1 = a1; -L416364: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1fc; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L416384; -//nop; -L416384: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4163a4; -//nop; -L4163a4: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000c0; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L4163cc; -MEM_U32(sp + 16) = zero; -L4163cc: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L416468;} -//nop; -t9 = 0x10000404; -t6 = 0x10000240; -t9 = MEM_U32(t9 + 0); -at = 0x10000404; -t6 = MEM_U32(t6 + 0); -t4 = t9 + 0x1; -if (t6 != 0) {MEM_U32(at + 0) = t4; -goto L416430;} -MEM_U32(at + 0) = t4; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41640c; -//nop; -L41640c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L416428; -//nop; -L416428: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L416430: -t7 = 0x1000a250; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41645c; -//nop; -L41645c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L416468: -t5 = 0x10000240; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L4164cc;} -//nop; -t1 = 0x1000a24c; -at = 0x75; -t1 = MEM_U8(t1 + 0); -//nop; -if (t1 == at) {//nop; -goto L4164cc;} -//nop; -t0 = 0x1000a214; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L4164cc;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4164c4; -//nop; -L4164c4: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L4164cc: -t8 = 0x1000a1f4; -at = 0x1000a1f0; -t2 = 0x1000a1e6; -t8 = MEM_U32(t8 + 0); -t2 = MEM_U8(t2 + 0); -MEM_U32(at + 0) = t8; -at = 0x73; -if (t2 == at) {//nop; -goto L41977c;} -//nop; -L4164f0: -t3 = 0x10000230; -at = 0x3; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == at) {at = 0x4; -goto L416524;} -at = 0x4; -if (t3 == at) {//nop; -goto L416524;} -//nop; -t9 = 0x10000374; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {at = 0x1000a560; -goto L416864;} -L416524: -at = 0x1000a560; -a1 = 0x10002444; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L416540; -a1 = a1; -L416540: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t4 = 0x10000234; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L41657c;} -//nop; -a1 = 0x1000244c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L416574; -a1 = a1; -L416574: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L41657c: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a470; -//nop; -f_addlist(mem, sp, a0, a1); -goto L416590; -//nop; -L416590: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4165b0; -//nop; -L4165b0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10002450; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4165cc; -a1 = a1; -L4165cc: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x6d; -t6 = 0x1000a1e6; -//nop; -t6 = MEM_U8(t6 + 0); -//nop; -if (t6 == at) {//nop; -goto L416604;} -//nop; -t7 = 0x10000240; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L4166b0;} -//nop; -L416604: -t5 = 0x1000a520; -t1 = s0 << 2; -t5 = MEM_U32(t5 + 8); -//nop; -t0 = t5 + t1; -a0 = MEM_U32(t0 + 0); -a1 = 0x4d; -v0 = f_mksuf(mem, sp, a0, a1); -goto L416624; -a1 = 0x4d; -L416624: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -a0 = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L416648; -//nop; -L416648: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L4166c4;} -//nop; -t2 = 0x1000a1f4; -t8 = 0x10002454; -//nop; -t2 = MEM_U32(t2 + 0); -t8 = t8; -MEM_U32(sp + 20) = t8; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t2; -f_error(mem, sp, a0, a1, a2, a3); -goto L41668c; -MEM_U32(sp + 24) = t2; -L41668c: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4166a4; -//nop; -L4166a4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L4166c4; -//nop; -L4166b0: -t3 = 0x1000a380; -at = 0x1000a1f4; -t9 = MEM_U32(t3 + 24); -//nop; -MEM_U32(at + 0) = t9; -L4166c4: -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4166dc; -//nop; -L4166dc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10002480; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4166f8; -a1 = a1; -L4166f8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1fc; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L416718; -//nop; -L416718: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000c8; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L416740; -MEM_U32(sp + 16) = zero; -L416740: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4167f4;} -//nop; -t4 = 0x10000404; -t7 = 0x10000240; -t4 = MEM_U32(t4 + 0); -at = 0x10000404; -t7 = MEM_U32(t7 + 0); -t6 = t4 + 0x1; -if (t7 != 0) {MEM_U32(at + 0) = t6; -goto L41977c;} -MEM_U32(at + 0) = t6; -t5 = 0x1000a24c; -at = 0x53; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 == at) {//nop; -goto L4167a0;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L416798; -//nop; -L416798: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4167a0: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4167b4; -//nop; -L4167b4: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t1 = 0x1000a250; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4167e8; -//nop; -L4167e8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L4167f4: -t0 = 0x10000240; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L416840;} -//nop; -t8 = 0x1000a24c; -at = 0x53; -t8 = MEM_U8(t8 + 0); -//nop; -if (t8 == at) {//nop; -goto L416840;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L416838; -//nop; -L416838: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L416840: -t2 = 0x1000a1f4; -at = 0x1000a1f0; -t3 = 0x1000a1e6; -t2 = MEM_U32(t2 + 0); -t3 = MEM_U8(t3 + 0); -MEM_U32(at + 0) = t2; -at = 0x6d; -if (t3 == at) {//nop; -goto L41977c;} -//nop; -L416864: -t9 = 0x1000029c; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {at = 0x1000a560; -goto L416be8;} -at = 0x1000a560; -a1 = 0x10002484; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L416894; -a1 = a1; -L416894: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t4 = 0x10000234; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L4168d0;} -//nop; -a1 = 0x1000248c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4168c8; -a1 = a1; -L4168c8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4168d0: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a480; -//nop; -f_addlist(mem, sp, a0, a1); -goto L4168e4; -//nop; -L4168e4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L416904; -//nop; -L416904: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10002490; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L416920; -a1 = a1; -L416920: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x76; -t6 = 0x1000a1e6; -//nop; -t6 = MEM_U8(t6 + 0); -//nop; -if (t6 == at) {//nop; -goto L416958;} -//nop; -t7 = 0x10000240; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L416a48;} -//nop; -L416958: -t5 = 0x1000a1e6; -at = 0x76; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 == at) {//nop; -goto L416988;} -//nop; -t1 = 0x10000240; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L416a34;} -//nop; -L416988: -t0 = 0x1000a520; -t8 = s0 << 2; -t0 = MEM_U32(t0 + 8); -//nop; -t2 = t0 + t8; -a0 = MEM_U32(t2 + 0); -a1 = 0x56; -v0 = f_mksuf(mem, sp, a0, a1); -goto L4169a8; -a1 = 0x56; -L4169a8: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -a0 = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L4169cc; -//nop; -L4169cc: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L416a48;} -//nop; -t9 = 0x1000a1f4; -t3 = 0x10002494; -t9 = MEM_U32(t9 + 0); -t3 = t3; -MEM_U32(sp + 24) = t9; -//nop; -MEM_U32(sp + 20) = t3; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L416a10; -MEM_U32(sp + 16) = zero; -L416a10: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L416a28; -//nop; -L416a28: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L416a48; -//nop; -L416a34: -t4 = 0x1000a380; -at = 0x1000a1f4; -t6 = MEM_U32(t4 + 92); -//nop; -MEM_U32(at + 0) = t6; -L416a48: -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L416a60; -//nop; -L416a60: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100024c0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L416a7c; -a1 = a1; -L416a7c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1fc; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L416a9c; -//nop; -L416a9c: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000cc; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L416ac4; -MEM_U32(sp + 16) = zero; -L416ac4: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L416b78;} -//nop; -t7 = 0x10000404; -t1 = 0x10000240; -t7 = MEM_U32(t7 + 0); -at = 0x10000404; -t1 = MEM_U32(t1 + 0); -t5 = t7 + 0x1; -if (t1 != 0) {MEM_U32(at + 0) = t5; -goto L41977c;} -MEM_U32(at + 0) = t5; -t0 = 0x1000a24c; -at = 0x4d; -t0 = MEM_U8(t0 + 0); -//nop; -if (t0 == at) {//nop; -goto L416b24;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L416b1c; -//nop; -L416b1c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L416b24: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L416b38; -//nop; -L416b38: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t8 = 0x1000a250; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L416b6c; -//nop; -L416b6c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L416b78: -t2 = 0x10000240; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L416bc4;} -//nop; -t3 = 0x1000a24c; -at = 0x4d; -t3 = MEM_U8(t3 + 0); -//nop; -if (t3 == at) {//nop; -goto L416bc4;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L416bbc; -//nop; -L416bbc: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L416bc4: -t9 = 0x1000a1f4; -at = 0x1000a1f0; -t4 = 0x1000a1e6; -t9 = MEM_U32(t9 + 0); -t4 = MEM_U8(t4 + 0); -MEM_U32(at + 0) = t9; -at = 0x76; -if (t4 == at) {//nop; -goto L41977c;} -//nop; -L416be8: -t6 = 0x100002c4; -at = 0x1; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L417028;} -//nop; -t7 = 0x1000a36c; -at = 0x3; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L417028;} -//nop; -t5 = 0x10000230; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -at = (int)t5 < (int)0x2; -if (at != 0) {at = 0x1000a560; -goto L417028;} -at = 0x1000a560; -a1 = 0x100024c4; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L416c4c; -a1 = a1; -L416c4c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t1 = 0x10000234; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L416c88;} -//nop; -a1 = 0x100024cc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L416c80; -a1 = a1; -L416c80: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L416c88: -a1 = 0x100024d0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L416c9c; -a1 = a1; -L416c9c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000400; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L416cbc; -//nop; -L416cbc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a490; -//nop; -f_addlist(mem, sp, a0, a1); -goto L416cd8; -//nop; -L416cd8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L416cf8; -//nop; -L416cf8: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x71; -t0 = 0x1000a1e6; -//nop; -t0 = MEM_U8(t0 + 0); -//nop; -if (t0 == at) {//nop; -goto L416d30;} -//nop; -t8 = 0x10000240; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L416de4;} -//nop; -L416d30: -t2 = 0x1000a520; -t3 = s0 << 2; -t2 = MEM_U32(t2 + 8); -a1 = 0x51; -t9 = t2 + t3; -a0 = MEM_U32(t9 + 0); -//nop; -//nop; -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L416d58; -//nop; -L416d58: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -a0 = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L416d7c; -//nop; -L416d7c: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L416df8;} -//nop; -t6 = 0x1000a1f4; -t4 = 0x100024d4; -//nop; -t6 = MEM_U32(t6 + 0); -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t6; -f_error(mem, sp, a0, a1, a2, a3); -goto L416dc0; -MEM_U32(sp + 24) = t6; -L416dc0: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L416dd8; -//nop; -L416dd8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L416df8; -//nop; -L416de4: -t7 = 0x1000a380; -at = 0x1000a1f4; -t5 = MEM_U32(t7 + 112); -//nop; -MEM_U32(at + 0) = t5; -L416df8: -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L416e10; -//nop; -L416e10: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10002500; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L416e2c; -a1 = a1; -L416e2c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1fc; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L416e4c; -//nop; -L416e4c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t1 = 0x1000a380; -at = 0x1000a200; -t0 = MEM_U32(t1 + 116); -//nop; -a0 = 0x1000a560; -MEM_U32(at + 0) = t0; -a1 = t0; -f_addstr(mem, sp, a0, a1); -goto L416e74; -a1 = t0; -L416e74: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000d0; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L416e9c; -MEM_U32(sp + 16) = zero; -L416e9c: -// bdead 4006000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L416f84;} -//nop; -t8 = 0x10000404; -t3 = 0x10000240; -t8 = MEM_U32(t8 + 0); -at = 0x10000404; -t3 = MEM_U32(t3 + 0); -t2 = t8 + 0x1; -if (t3 != 0) {MEM_U32(at + 0) = t2; -goto L416f64;} -MEM_U32(at + 0) = t2; -t9 = 0x1000a24c; -at = 0x4d; -t9 = MEM_U8(t9 + 0); -//nop; -if (t9 == at) {at = 0x42; -goto L416f14;} -at = 0x42; -if (t9 == at) {at = 0x53; -goto L416f14;} -at = 0x53; -if (t9 == at) {at = 0x51; -goto L416f14;} -at = 0x51; -if (t9 == at) {//nop; -goto L416f14;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L416f0c; -//nop; -L416f0c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L416f14: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L416f28; -//nop; -L416f28: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t4 = 0x1000a250; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L416f64;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L416f5c; -//nop; -L416f5c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L416f64: -a0 = 0x1000a200; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L416f78; -//nop; -L416f78: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L416f84: -t6 = 0x10000240; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L416fe8;} -//nop; -t7 = 0x1000a24c; -at = 0x4d; -t7 = MEM_U8(t7 + 0); -//nop; -if (t7 == at) {at = 0x42; -goto L416fe8;} -at = 0x42; -if (t7 == at) {at = 0x53; -goto L416fe8;} -at = 0x53; -if (t7 == at) {at = 0x51; -goto L416fe8;} -at = 0x51; -if (t7 == at) {//nop; -goto L416fe8;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L416fe0; -//nop; -L416fe0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L416fe8: -a0 = 0x1000a200; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L416ffc; -//nop; -L416ffc: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t5 = 0x1000a1f4; -at = 0x1000a1f0; -t1 = 0x1000a1e6; -t5 = MEM_U32(t5 + 0); -t1 = MEM_U8(t1 + 0); -MEM_U32(at + 0) = t5; -at = 0x71; -if (t1 == at) {//nop; -goto L41977c;} -//nop; -L417028: -t0 = 0x100002c0; -at = 0x1; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L4174f4;} -//nop; -t8 = 0x1000a36c; -at = 0x3; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L4174f4;} -//nop; -t2 = 0x10000230; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -at = (int)t2 < (int)0x2; -if (at != 0) {at = 0x1000a560; -goto L4174f4;} -at = 0x1000a560; -a1 = 0x10002504; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41708c; -a1 = a1; -L41708c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t3 = 0x10000234; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L4170c8;} -//nop; -a1 = 0x1000250c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4170c0; -a1 = a1; -L4170c0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4170c8: -a1 = 0x10002510; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4170dc; -a1 = a1; -L4170dc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000400; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4170fc; -//nop; -L4170fc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a4a0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L417118; -//nop; -L417118: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L417138; -//nop; -L417138: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x64; -t9 = 0x1000a1e6; -//nop; -t9 = MEM_U8(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L417170;} -//nop; -t4 = 0x10000278; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L417188;} -//nop; -L417170: -t6 = 0x10000240; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L417234;} -//nop; -L417188: -t7 = 0x1000a520; -t5 = s0 << 2; -t7 = MEM_U32(t7 + 8); -//nop; -t1 = t7 + t5; -a0 = MEM_U32(t1 + 0); -a1 = 0x44; -v0 = f_mksuf(mem, sp, a0, a1); -goto L4171a8; -a1 = 0x44; -L4171a8: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -a0 = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L4171cc; -//nop; -L4171cc: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L417248;} -//nop; -t8 = 0x1000a1f4; -t0 = 0x10002514; -//nop; -t8 = MEM_U32(t8 + 0); -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t8; -f_error(mem, sp, a0, a1, a2, a3); -goto L417210; -MEM_U32(sp + 24) = t8; -L417210: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L417228; -//nop; -L417228: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L417248; -//nop; -L417234: -t2 = 0x1000a380; -at = 0x1000a1f4; -t3 = MEM_U32(t2 + 108); -//nop; -MEM_U32(at + 0) = t3; -L417248: -t9 = 0x10000360; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L417328;} -//nop; -a1 = 0x10002540; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L417274; -a1 = a1; -L417274: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x64; -t4 = 0x1000a1e6; -//nop; -t4 = MEM_U8(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L4172ac;} -//nop; -t6 = 0x10000278; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L4172c4;} -//nop; -L4172ac: -t7 = 0x10000240; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L417308;} -//nop; -L4172c4: -t5 = 0x1000a520; -t1 = s0 << 2; -t5 = MEM_U32(t5 + 8); -//nop; -t0 = t5 + t1; -a0 = MEM_U32(t0 + 0); -a1 = 0x45; -v0 = f_mksuf(mem, sp, a0, a1); -goto L4172e4; -a1 = 0x45; -L4172e4: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L4172fc; -a1 = s4; -L4172fc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L417328; -//nop; -L417308: -t8 = 0x1000a380; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(t8 + 104); -//nop; -f_addstr(mem, sp, a0, a1); -goto L417320; -//nop; -L417320: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L417328: -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L417340; -//nop; -L417340: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000d4; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L417368; -MEM_U32(sp + 16) = zero; -L417368: -// bdead 4006000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L417450;} -//nop; -t2 = 0x10000404; -t9 = 0x10000240; -t2 = MEM_U32(t2 + 0); -at = 0x10000404; -t9 = MEM_U32(t9 + 0); -t3 = t2 + 0x1; -if (t9 != 0) {MEM_U32(at + 0) = t3; -goto L417430;} -MEM_U32(at + 0) = t3; -t4 = 0x1000a24c; -at = 0x42; -t4 = MEM_U8(t4 + 0); -//nop; -if (t4 == at) {at = 0x53; -goto L4173e0;} -at = 0x53; -if (t4 == at) {at = 0x4d; -goto L4173e0;} -at = 0x4d; -if (t4 == at) {at = 0x51; -goto L4173e0;} -at = 0x51; -if (t4 == at) {//nop; -goto L4173e0;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4173d8; -//nop; -L4173d8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4173e0: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4173f4; -//nop; -L4173f4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t6 = 0x1000a250; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L417430;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L417428; -//nop; -L417428: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L417430: -a0 = 0x1000a204; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L417444; -//nop; -L417444: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L417450: -t7 = 0x10000240; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L4174b4;} -//nop; -t5 = 0x1000a24c; -at = 0x42; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 == at) {at = 0x53; -goto L4174b4;} -at = 0x53; -if (t5 == at) {at = 0x4d; -goto L4174b4;} -at = 0x4d; -if (t5 == at) {at = 0x51; -goto L4174b4;} -at = 0x51; -if (t5 == at) {//nop; -goto L4174b4;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4174ac; -//nop; -L4174ac: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4174b4: -a0 = 0x1000a204; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4174c8; -//nop; -L4174c8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t1 = 0x1000a1f4; -at = 0x1000a1f0; -t0 = 0x1000a1e6; -t1 = MEM_U32(t1 + 0); -t0 = MEM_U8(t0 + 0); -MEM_U32(at + 0) = t1; -at = 0x64; -if (t0 == at) {//nop; -goto L41977c;} -//nop; -L4174f4: -t8 = 0x10000230; -at = 0x2; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == at) {at = 0x3; -goto L417518;} -at = 0x3; -if (t8 == at) {at = 0x4; -goto L417518;} -at = 0x4; -if (t8 != at) {at = 0x1000a560; -goto L417c04;} -L417518: -at = 0x1000a560; -a1 = 0x10002544; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L417534; -a1 = a1; -L417534: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t2 = 0x10000234; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L417570;} -//nop; -a1 = 0x1000254c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L417568; -a1 = a1; -L417568: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L417570: -a1 = 0x10002550; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L417584; -a1 = a1; -L417584: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000400; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4175a4; -//nop; -L4175a4: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x10000; -t3 = 0x1000a150; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -t9 = t3 & at; -if (t9 == 0) {//nop; -goto L417604;} -//nop; -t4 = 0x1000a24c; -at = 0x66; -t4 = MEM_U8(t4 + 0); -//nop; -if (t4 == at) {at = 0x46; -goto L4175e8;} -at = 0x46; -if (t4 != at) {//nop; -goto L417604;} -//nop; -L4175e8: -a1 = 0x10002554; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4175fc; -a1 = a1; -L4175fc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L417604: -t6 = 0x10000424; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L417684;} -//nop; -t7 = 0x100002d0; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L417650;} -//nop; -a1 = 0x10002560; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L417648; -a1 = a1; -L417648: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L417650: -t5 = 0x100002d4; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L417684;} -//nop; -a1 = 0x1000256c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41767c; -a1 = a1; -L41767c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L417684: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a4b0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L417698; -//nop; -L417698: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4176b8; -//nop; -L4176b8: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x6f; -t1 = 0x1000a1e6; -//nop; -t1 = MEM_U8(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L4176f0;} -//nop; -t0 = 0x10000278; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L417708;} -//nop; -L4176f0: -t8 = 0x10000240; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L4177bc;} -//nop; -L417708: -t2 = 0x1000a520; -t3 = s0 << 2; -t2 = MEM_U32(t2 + 8); -a1 = 0x4f; -t9 = t2 + t3; -a0 = MEM_U32(t9 + 0); -//nop; -//nop; -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L417730; -//nop; -L417730: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -a0 = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L417754; -//nop; -L417754: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L4177d0;} -//nop; -t6 = 0x1000a1f4; -t4 = 0x10002578; -//nop; -t6 = MEM_U32(t6 + 0); -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t6; -f_error(mem, sp, a0, a1, a2, a3); -goto L417798; -MEM_U32(sp + 24) = t6; -L417798: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4177b0; -//nop; -L4177b0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L4177d0; -//nop; -L4177bc: -t7 = 0x1000a380; -at = 0x1000a1f4; -t5 = MEM_U32(t7 + 28); -//nop; -MEM_U32(at + 0) = t5; -L4177d0: -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4177e8; -//nop; -L4177e8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100025a4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L417804; -a1 = a1; -L417804: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1fc; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L417824; -//nop; -L417824: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t1 = 0x1000a380; -at = 0x1000a208; -t0 = MEM_U32(t1 + 32); -//nop; -a0 = 0x1000a560; -MEM_U32(at + 0) = t0; -a1 = t0; -f_addstr(mem, sp, a0, a1); -goto L41784c; -a1 = t0; -L41784c: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000d8; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L417874; -MEM_U32(sp + 16) = zero; -L417874: -// bdead 4006000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L41796c;} -//nop; -t8 = 0x10000404; -t3 = 0x10000240; -t8 = MEM_U32(t8 + 0); -at = 0x10000404; -t3 = MEM_U32(t3 + 0); -t2 = t8 + 0x1; -if (t3 != 0) {MEM_U32(at + 0) = t2; -goto L41794c;} -MEM_U32(at + 0) = t2; -t9 = 0x1000a24c; -at = 0x42; -t9 = MEM_U8(t9 + 0); -//nop; -if (t9 == at) {at = 0x53; -goto L4178fc;} -at = 0x53; -if (t9 == at) {at = 0x51; -goto L4178fc;} -at = 0x51; -if (t9 == at) {at = 0x44; -goto L4178fc;} -at = 0x44; -if (t9 == at) {at = 0x4d; -goto L4178fc;} -at = 0x4d; -if (t9 == at) {at = 0x56; -goto L4178fc;} -at = 0x56; -if (t9 == at) {//nop; -goto L4178fc;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4178f4; -//nop; -L4178f4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4178fc: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L417910; -//nop; -L417910: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t4 = 0x1000a250; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L41794c;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L417944; -//nop; -L417944: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L41794c: -a0 = 0x1000a208; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L417960; -//nop; -L417960: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L41796c: -t6 = 0x10000240; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L4179e0;} -//nop; -t7 = 0x1000a24c; -at = 0x42; -t7 = MEM_U8(t7 + 0); -//nop; -if (t7 == at) {at = 0x53; -goto L4179e0;} -at = 0x53; -if (t7 == at) {at = 0x51; -goto L4179e0;} -at = 0x51; -if (t7 == at) {at = 0x44; -goto L4179e0;} -at = 0x44; -if (t7 == at) {at = 0x4d; -goto L4179e0;} -at = 0x4d; -if (t7 == at) {at = 0x56; -goto L4179e0;} -at = 0x56; -if (t7 == at) {//nop; -goto L4179e0;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4179d8; -//nop; -L4179d8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4179e0: -a0 = 0x1000a208; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4179f4; -//nop; -L4179f4: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t5 = 0x1000a1f4; -at = 0x1000a1f0; -t1 = 0x1000a1e6; -t5 = MEM_U32(t5 + 0); -t1 = MEM_U8(t1 + 0); -MEM_U32(at + 0) = t5; -at = 0x6f; -if (t1 != at) {//nop; -goto L417bf0;} -//nop; -t0 = 0x10000278; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {at = 0x1000a560; -goto L417bf0;} -at = 0x1000a560; -a1 = 0x100025a8; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L417a50; -a1 = a1; -L417a50: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L417a70; -//nop; -L417a70: -// bdead 40060003 gp = MEM_U32(sp + 64); -t2 = s0 << 2; -t8 = 0x1000a520; -//nop; -t8 = MEM_U32(t8 + 8); -a1 = 0x55; -t3 = t8 + t2; -a0 = MEM_U32(t3 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L417a98; -//nop; -L417a98: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -a1 = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L417ac0; -//nop; -L417ac0: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000f4; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L417ae8; -MEM_U32(sp + 16) = zero; -L417ae8: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L417b84;} -//nop; -t9 = 0x10000404; -t6 = 0x10000240; -t9 = MEM_U32(t9 + 0); -at = 0x10000404; -t6 = MEM_U32(t6 + 0); -t4 = t9 + 0x1; -if (t6 != 0) {MEM_U32(at + 0) = t4; -goto L41977c;} -MEM_U32(at + 0) = t4; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L417b28; -//nop; -L417b28: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L417b44; -//nop; -L417b44: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t7 = 0x1000a250; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L417b78; -//nop; -L417b78: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L417b84: -t5 = 0x10000240; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L417bb0; -//nop; -L417bb0: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t1 = 0x1000a250; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L417be4; -//nop; -L417be4: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L417bf0: -t0 = 0x1000a1e6; -at = 0x6f; -t0 = MEM_U8(t0 + 0); -//nop; -if (t0 == at) {at = 0x1000a560; -goto L41977c;} -L417c04: -at = 0x1000a560; -a1 = 0x100025b0; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L417c20; -a1 = a1; -L417c20: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t8 = 0x10000234; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L417c5c;} -//nop; -a1 = 0x100025b8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L417c54; -a1 = a1; -L417c54: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L417c5c: -a1 = 0x100025bc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L417c70; -a1 = a1; -L417c70: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000400; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L417c90; -//nop; -L417c90: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t2 = 0x10000340; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L417d38;} -//nop; -t3 = 0x100002dc; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L417d38;} -//nop; -t9 = 0x10000424; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L417d38;} -//nop; -t4 = 0x10000230; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -at = (int)t4 < (int)0x3; -if (at != 0) {//nop; -goto L417d1c;} -//nop; -a1 = 0x100025c0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L417d10; -a1 = a1; -L417d10: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L417d38; -//nop; -L417d1c: -a1 = 0x100025c8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L417d30; -a1 = a1; -L417d30: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L417d38: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a4c0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L417d4c; -//nop; -L417d4c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L417d6c; -//nop; -L417d6c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t6 = 0x1000022c; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L417f18;} -//nop; -a1 = 0x100025d0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L417da0; -a1 = a1; -L417da0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t7 = 0x10000240; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L417e04;} -//nop; -t5 = 0x1000a520; -t1 = s0 << 2; -t5 = MEM_U32(t5 + 8); -//nop; -t0 = t5 + t1; -a0 = MEM_U32(t0 + 0); -a1 = 0x47; -v0 = f_mksuf(mem, sp, a0, a1); -goto L417de0; -a1 = 0x47; -L417de0: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L417df8; -a1 = s4; -L417df8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L417e2c; -//nop; -L417e04: -t8 = 0x1000a380; -at = 0x1000a210; -t2 = MEM_U32(t8 + 36); -//nop; -a0 = 0x1000a560; -MEM_U32(at + 0) = t2; -a1 = t2; -f_addstr(mem, sp, a0, a1); -goto L417e24; -a1 = t2; -L417e24: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L417e2c: -a1 = 0x100025d4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L417e40; -a1 = a1; -L417e40: -// bdead 40060003 gp = MEM_U32(sp + 64); -t9 = s0 << 2; -t3 = 0x1000a520; -a1 = 0x73; -t3 = MEM_U32(t3 + 8); -//nop; -t4 = t3 + t9; -//nop; -a0 = MEM_U32(t4 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L417e6c; -//nop; -L417e6c: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -a0 = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L417e90; -//nop; -L417e90: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L417ef4;} -//nop; -t7 = 0x1000a1f4; -t6 = 0x100025d8; -//nop; -t7 = MEM_U32(t7 + 0); -t6 = t6; -MEM_U32(sp + 20) = t6; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t7; -f_error(mem, sp, a0, a1, a2, a3); -goto L417ed4; -MEM_U32(sp + 24) = t7; -L417ed4: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L417eec; -//nop; -L417eec: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L417ef4: -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L417f0c; -//nop; -L417f0c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L4182f0; -//nop; -L417f18: -t5 = 0x1000a1e6; -at = 0x63; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L418018;} -//nop; -a1 = 0x10002604; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L417f44; -a1 = a1; -L417f44: -// bdead 40060003 gp = MEM_U32(sp + 64); -t0 = s0 << 2; -t1 = 0x1000a520; -//nop; -t1 = MEM_U32(t1 + 8); -a1 = 0x47; -t8 = t1 + t0; -a0 = MEM_U32(t8 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L417f6c; -//nop; -L417f6c: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -a0 = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L417f90; -//nop; -L417f90: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L417ff4;} -//nop; -t3 = 0x1000a1f4; -t2 = 0x10002608; -//nop; -t3 = MEM_U32(t3 + 0); -t2 = t2; -MEM_U32(sp + 20) = t2; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L417fd4; -MEM_U32(sp + 24) = t3; -L417fd4: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L417fec; -//nop; -L417fec: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L417ff4: -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41800c; -//nop; -L41800c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L4182f0; -//nop; -L418018: -t9 = 0x10000240; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L418234;} -//nop; -a1 = 0x10002634; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418044; -a1 = a1; -L418044: -// bdead 40060003 gp = MEM_U32(sp + 64); -t6 = s0 << 2; -t4 = 0x1000a520; -//nop; -t4 = MEM_U32(t4 + 8); -a1 = 0x47; -t7 = t4 + t6; -a0 = MEM_U32(t7 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L41806c; -//nop; -L41806c: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -a0 = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L418090; -//nop; -L418090: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L4180f4;} -//nop; -t1 = 0x1000a1f4; -t5 = 0x10002638; -//nop; -t1 = MEM_U32(t1 + 0); -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t1; -f_error(mem, sp, a0, a1, a2, a3); -goto L4180d4; -MEM_U32(sp + 24) = t1; -L4180d4: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4180ec; -//nop; -L4180ec: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4180f4: -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41810c; -//nop; -L41810c: -// bdead 40060003 gp = MEM_U32(sp + 64); -t8 = s0 << 2; -t0 = 0x1000a520; -//nop; -t0 = MEM_U32(t0 + 8); -a1 = 0x73; -t2 = t0 + t8; -a0 = MEM_U32(t2 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L418134; -//nop; -L418134: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = s4; -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L41814c; -//nop; -L41814c: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L4181d4;} -//nop; -t3 = 0x1000a520; -t9 = s0 << 2; -t3 = MEM_U32(t3 + 8); -a1 = 0x73; -t4 = t3 + t9; -//nop; -a0 = MEM_U32(t4 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L418180; -//nop; -L418180: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -t6 = 0x10002664; -//nop; -t6 = t6; -MEM_U32(sp + 20) = t6; -MEM_U32(sp + 24) = s4; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4181b4; -MEM_U32(sp + 16) = zero; -L4181b4: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4181cc; -//nop; -L4181cc: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4181d4: -a1 = 0x10002690; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4181e8; -a1 = a1; -L4181e8: -// bdead 40060003 gp = MEM_U32(sp + 64); -t5 = s0 << 2; -t7 = 0x1000a520; -//nop; -t7 = MEM_U32(t7 + 8); -a1 = 0x73; -t1 = t7 + t5; -a0 = MEM_U32(t1 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L418210; -//nop; -L418210: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L418228; -a1 = s4; -L418228: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L4182f0; -//nop; -L418234: -a1 = 0x10002694; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418248; -a1 = a1; -L418248: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t0 = 0x1000a380; -at = 0x1000a1f4; -t8 = MEM_U32(t0 + 40); -//nop; -MEM_U32(at + 0) = t8; -a0 = t8; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L41826c; -a0 = t8; -L41826c: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L4182d0;} -//nop; -t3 = 0x1000a1f4; -t2 = 0x10002698; -//nop; -t3 = MEM_U32(t3 + 0); -t2 = t2; -MEM_U32(sp + 20) = t2; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L4182b0; -MEM_U32(sp + 24) = t3; -L4182b0: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4182c8; -//nop; -L4182c8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4182d0: -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4182e8; -//nop; -L4182e8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4182f0: -a1 = 0x100026c4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418304; -a1 = a1; -L418304: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1fc; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L418324; -//nop; -L418324: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100026c8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418340; -a1 = a1; -L418340: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t9 = 0x1000a380; -at = 0x1000a20c; -t4 = MEM_U32(t9 + 60); -//nop; -a0 = 0x1000a560; -MEM_U32(at + 0) = t4; -a1 = t4; -f_addstr(mem, sp, a0, a1); -goto L418368; -a1 = t4; -L418368: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000dc; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L418390; -MEM_U32(sp + 16) = zero; -L418390: -// bdead 4006000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4184c0;} -//nop; -t6 = 0x10000404; -t5 = 0x10000240; -t6 = MEM_U32(t6 + 0); -at = 0x10000404; -t5 = MEM_U32(t5 + 0); -t7 = t6 + 0x1; -if (t5 != 0) {MEM_U32(at + 0) = t7; -goto L41846c;} -MEM_U32(at + 0) = t7; -t1 = 0x1000a24c; -at = 0x42; -t1 = MEM_U8(t1 + 0); -//nop; -if (t1 == at) {at = 0x4f; -goto L418418;} -at = 0x4f; -if (t1 == at) {at = 0x51; -goto L418418;} -at = 0x51; -if (t1 == at) {at = 0x44; -goto L418418;} -at = 0x44; -if (t1 == at) {at = 0x4d; -goto L418418;} -at = 0x4d; -if (t1 == at) {at = 0x56; -goto L418418;} -at = 0x56; -if (t1 == at) {//nop; -goto L418418;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L418410; -//nop; -L418410: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L418418: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41842c; -//nop; -L41842c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t0 = 0x1000a250; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L4184a0;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L418460; -//nop; -L418460: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L4184a0; -//nop; -L41846c: -t8 = 0x1000022c; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L4184a0;} -//nop; -a0 = 0x1000a210; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L418498; -//nop; -L418498: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4184a0: -a0 = 0x1000a20c; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4184b4; -//nop; -L4184b4: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L4184c0: -a0 = 0x1000a20c; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4184d4; -//nop; -L4184d4: -// bdead 40060103 gp = MEM_U32(sp + 64); -at = 0x42; -t2 = 0x1000a24c; -//nop; -t2 = MEM_U8(t2 + 0); -//nop; -if (t2 == at) {at = 0x53; -goto L41851c;} -at = 0x53; -if (t2 == at) {at = 0x51; -goto L41851c;} -at = 0x51; -if (t2 == at) {at = 0x44; -goto L41851c;} -at = 0x44; -if (t2 == at) {at = 0x4d; -goto L41851c;} -at = 0x4d; -if (t2 == at) {at = 0x56; -goto L41851c;} -at = 0x56; -if (t2 != at) {//nop; -goto L418538;} -//nop; -L41851c: -t3 = 0x10000230; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -at = (int)t3 < (int)0x2; -if (at != 0) {//nop; -goto L418584;} -//nop; -L418538: -t9 = 0x1000a24c; -at = 0x4f; -t9 = MEM_U8(t9 + 0); -//nop; -if (t9 == at) {//nop; -goto L418584;} -//nop; -t4 = 0x10000240; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L418584;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41857c; -//nop; -L41857c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L418584: -t6 = 0x1000022c; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L418608;} -//nop; -t7 = 0x10000240; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L41977c;} -//nop; -t5 = 0x1000a250; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L4185e8;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4185e0; -//nop; -L4185e0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4185e8: -a0 = 0x1000a210; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4185fc; -//nop; -L4185fc: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L418608: -t1 = 0x1000a1e6; -at = 0x63; -t1 = MEM_U8(t1 + 0); -//nop; -if (t1 == at) {//nop; -goto L41977c;} -//nop; -t0 = 0x1000a1f4; -at = 0x1000a1f0; -t0 = MEM_U32(t0 + 0); -//nop; -MEM_U32(at + 0) = t0; -L418634: -t8 = 0x1000a24c; -at = 0x73; -t8 = MEM_U8(t8 + 0); -//nop; -if (t8 != at) {at = 0x1000a560; -goto L418adc;} -at = 0x1000a560; -a1 = 0x100026d0; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418664; -a1 = a1; -L418664: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t2 = 0x10000234; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L4186a0;} -//nop; -a1 = 0x100026d4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418698; -a1 = a1; -L418698: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4186a0: -a1 = 0x100026d8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4186b4; -a1 = a1; -L4186b4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000400; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L4186d4; -//nop; -L4186d4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a4d0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L4186f0; -//nop; -L4186f0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L418710; -//nop; -L418710: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100026dc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41872c; -a1 = a1; -L41872c: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x61; -t3 = 0x1000a1e6; -//nop; -t3 = MEM_U8(t3 + 0); -//nop; -if (t3 == at) {//nop; -goto L418764;} -//nop; -t9 = 0x10000240; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L41889c;} -//nop; -L418764: -t4 = 0x1000a36c; -at = 0x4; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L4187e4;} -//nop; -t6 = 0x1000a520; -t7 = s0 << 2; -t6 = MEM_U32(t6 + 8); -//nop; -t5 = t6 + t7; -a0 = MEM_U32(t5 + 0); -//nop; -v0 = f_getsuf(mem, sp, a0); -goto L41879c; -//nop; -L41879c: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4187e4;} -//nop; -t1 = 0x1000a520; -t0 = s0 << 2; -t1 = MEM_U32(t1 + 8); -a1 = 0x100026e0; -//nop; -t8 = t1 + t0; -a0 = MEM_U32(t8 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4187d0; -a1 = a1; -L4187d0: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -MEM_U32(at + 0) = v0; -goto L418820; -MEM_U32(at + 0) = v0; -L4187e4: -t2 = 0x1000a520; -t3 = s0 << 2; -t2 = MEM_U32(t2 + 8); -a1 = 0x47; -t9 = t2 + t3; -a0 = MEM_U32(t9 + 0); -//nop; -//nop; -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L41880c; -//nop; -L41880c: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -L418820: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L418834; -//nop; -L418834: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L41891c;} -//nop; -t6 = 0x1000a1f4; -t4 = 0x100026e4; -//nop; -t6 = MEM_U32(t6 + 0); -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t6; -f_error(mem, sp, a0, a1, a2, a3); -goto L418878; -MEM_U32(sp + 24) = t6; -L418878: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L418890; -//nop; -L418890: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L41891c; -//nop; -L41889c: -t7 = 0x1000a380; -at = 0x1000a1f4; -t5 = MEM_U32(t7 + 44); -//nop; -MEM_U32(at + 0) = t5; -a0 = t5; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L4188b8; -a0 = t5; -L4188b8: -// bdead 4006000b gp = MEM_U32(sp + 64); -at = 0x1; -if (v0 != at) {//nop; -goto L41891c;} -//nop; -t0 = 0x1000a1f4; -t1 = 0x10002710; -//nop; -t0 = MEM_U32(t0 + 0); -t1 = t1; -MEM_U32(sp + 20) = t1; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t0; -f_error(mem, sp, a0, a1, a2, a3); -goto L4188fc; -MEM_U32(sp + 24) = t0; -L4188fc: -// bdead 40060003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L418914; -//nop; -L418914: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L41891c: -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L418934; -//nop; -L418934: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000273c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418950; -a1 = a1; -L418950: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1fc; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L418970; -//nop; -L418970: -// bdead 40060003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x100000e0; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L418998; -MEM_U32(sp + 16) = zero; -L418998: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L418a64;} -//nop; -t8 = 0x10000404; -t3 = 0x1000a1a0; -t8 = MEM_U32(t8 + 0); -at = 0x10000404; -t3 = MEM_U32(t3 + 0); -t2 = t8 + 0x1; -if (t3 != 0) {MEM_U32(at + 0) = t2; -goto L4189dc;} -MEM_U32(at + 0) = t2; -t9 = 0x10000268; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L4189f8;} -//nop; -L4189dc: -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4189f0; -//nop; -L4189f0: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L4189f8: -t4 = 0x10000240; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L418a24; -//nop; -L418a24: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -t6 = 0x1000a250; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L418a58; -//nop; -L418a58: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L418a64: -t7 = 0x1000a1a0; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L418a94;} -//nop; -t5 = 0x10000268; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L418ab0;} -//nop; -L418a94: -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L418aa8; -//nop; -L418aa8: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L418ab0: -t1 = 0x1000a1e6; -at = 0x61; -t1 = MEM_U8(t1 + 0); -//nop; -if (t1 == at) {//nop; -goto L41977c;} -//nop; -t0 = 0x1000a1f4; -at = 0x1000a1f0; -t0 = MEM_U32(t0 + 0); -//nop; -MEM_U32(at + 0) = t0; -L418adc: -at = 0x1000a560; -a1 = 0x10002740; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418af8; -a1 = a1; -L418af8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t8 = 0x10000378; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L418b34;} -//nop; -a1 = 0x10002744; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418b2c; -a1 = a1; -L418b2c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L418b34: -t2 = 0x1000a130; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L418b68;} -//nop; -a1 = 0x1000274c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418b60; -a1 = a1; -L418b60: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L418b68: -t3 = 0x1000a144; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L418b98;} -//nop; -//nop; -a0 = 0x1000a560; -a1 = t3; -f_addstr(mem, sp, a0, a1); -goto L418b90; -a1 = t3; -L418b90: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L418b98: -t9 = 0x1000a140; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if ((int)t9 <= 0) {//nop; -goto L418bcc;} -//nop; -a1 = 0x10002758; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418bc4; -a1 = a1; -L418bc4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L418bcc: -t4 = 0x1000a36c; -at = 0x4; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == at) {//nop; -goto L418bfc;} -//nop; -t6 = 0x1000a24c; -at = 0x73; -t6 = MEM_U8(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L418c48;} -//nop; -L418bfc: -t7 = 0x10000344; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L418c48;} -//nop; -t5 = 0x10000424; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L418c48;} -//nop; -a1 = 0x10002768; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418c40; -a1 = a1; -L418c40: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L418c48: -t1 = 0x100002dc; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L418c88;} -//nop; -a1 = 0x10002770; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418c74; -a1 = a1; -L418c74: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -at = 0x10000340; -MEM_U32(at + 0) = zero; -goto L418ddc; -MEM_U32(at + 0) = zero; -L418c88: -t0 = 0x10000340; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L418d70;} -//nop; -t8 = 0x10000424; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L418ddc;} -//nop; -t2 = 0x100002dc; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L418d48;} -//nop; -a1 = 0x10002778; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418ce4; -a1 = a1; -L418ce4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t3 = 0x10000230; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -at = (int)t3 < (int)0x3; -if (at != 0) {//nop; -goto L418d28;} -//nop; -a1 = 0x10002780; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418d1c; -a1 = a1; -L418d1c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L418ddc; -//nop; -L418d28: -a1 = 0x10002788; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418d3c; -a1 = a1; -L418d3c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L418ddc; -//nop; -L418d48: -a1 = 0x10002790; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418d5c; -a1 = a1; -L418d5c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -at = 0x10000340; -MEM_U32(at + 0) = zero; -goto L418ddc; -MEM_U32(at + 0) = zero; -L418d70: -t9 = 0x10000424; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L418ddc;} -//nop; -t4 = 0x100002dc; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L418dc0;} -//nop; -a1 = 0x10002798; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418db4; -a1 = a1; -L418db4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L418ddc; -//nop; -L418dc0: -a1 = 0x100027a0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418dd4; -a1 = a1; -L418dd4: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L418ddc: -t6 = 0x10000234; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L418e10;} -//nop; -a1 = 0x100027a8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418e08; -a1 = a1; -L418e08: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L418e10: -t7 = 0x10000314; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L418e78;} -//nop; -t5 = 0x1000a24c; -at = 0x73; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L418e78;} -//nop; -t1 = 0x10000230; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -at = (int)t1 < (int)0x2; -if (at != 0) {//nop; -goto L418e78;} -//nop; -a1 = 0x100027ac; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418e70; -a1 = a1; -L418e70: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L418e78: -a1 = 0x100027b8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418e8c; -a1 = a1; -L418e8c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000400; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L418eac; -//nop; -L418eac: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -s4 = 0x10000220; -//nop; -s4 = MEM_U32(s4 + 0); -//nop; -if (s4 == 0) {at = 0x1; -goto L418edc;} -at = 0x1; -if (s4 == at) {//nop; -goto L418efc;} -//nop; -//nop; -goto L418f18; -//nop; -L418edc: -a1 = 0x100027bc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418ef0; -a1 = a1; -L418ef0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L418f18; -//nop; -L418efc: -a1 = 0x100027c0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418f10; -a1 = a1; -L418f10: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L418f18: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a4d0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L418f2c; -//nop; -L418f2c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a4f0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L418f48; -//nop; -L418f48: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -t0 = 0x10000424; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L418f84;} -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a280; -//nop; -f_addlist(mem, sp, a0, a1); -goto L418f7c; -//nop; -L418f7c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L418f84: -a1 = 0x1000a1f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L418f9c; -//nop; -L418f9c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100027c4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L418fb8; -a1 = a1; -L418fb8: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x4; -t8 = 0x1000a36c; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L41900c;} -//nop; -t2 = 0x1000a1ec; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {at = 0x1000a1f4; -goto L418ff8;} -at = 0x1000a1f4; -MEM_U32(at + 0) = t2; -goto L419200; -MEM_U32(at + 0) = t2; -L418ff8: -t3 = 0x100027c8; -at = 0x1000a1f4; -t3 = t3; -MEM_U32(at + 0) = t3; -goto L419200; -MEM_U32(at + 0) = t3; -L41900c: -t9 = 0x1000a1ec; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L419080;} -//nop; -t4 = 0x10000228; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L419080;} -//nop; -t6 = 0x10000230; -at = 0x3; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == at) {//nop; -goto L41906c;} -//nop; -t7 = 0x1000a520; -at = 0x1; -t7 = MEM_U32(t7 + 4); -//nop; -if (t7 != at) {//nop; -goto L419080;} -//nop; -L41906c: -t5 = 0x1000a1ec; -at = 0x1000a1f4; -t5 = MEM_U32(t5 + 0); -MEM_U32(at + 0) = t5; -goto L419200; -MEM_U32(at + 0) = t5; -L419080: -t1 = 0x1000a24c; -at = 0x3f; -t1 = MEM_U8(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L419194;} -//nop; -t0 = 0x1000a1e6; -at = 0x62; -t0 = MEM_U8(t0 + 0); -//nop; -if (t0 == at) {//nop; -goto L419194;} -//nop; -t8 = 0x10000240; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L419194;} -//nop; -t2 = 0x10000228; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L419100;} -//nop; -t3 = 0x1000a380; -at = 0x1000a1f4; -t9 = MEM_U32(t3 + 48); -//nop; -MEM_U32(at + 0) = t9; -at = 0x10000410; -MEM_U32(at + 0) = t9; -goto L4191c8; -MEM_U32(at + 0) = t9; -L419100: -t4 = 0x1000a520; -at = 0x2; -t4 = MEM_U32(t4 + 4); -//nop; -if (t4 != at) {//nop; -goto L419154;} -//nop; -t6 = 0x1000a520; -//nop; -t6 = MEM_U32(t6 + 8); -a1 = 0x6f; -a0 = MEM_U32(t6 + 0); -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L419134; -//nop; -L419134: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -at = 0x10000410; -MEM_U32(at + 0) = zero; -goto L4191c8; -MEM_U32(at + 0) = zero; -L419154: -t7 = 0x1000a520; -t5 = s0 << 2; -t7 = MEM_U32(t7 + 8); -//nop; -t1 = t7 + t5; -a0 = MEM_U32(t1 + 0); -a1 = 0x6f; -v0 = f_mksuf(mem, sp, a0, a1); -goto L419174; -a1 = 0x6f; -L419174: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -at = 0x10000410; -MEM_U32(at + 0) = zero; -goto L4191c8; -MEM_U32(at + 0) = zero; -L419194: -t0 = 0x1000a520; -t8 = s0 << 2; -t0 = MEM_U32(t0 + 8); -//nop; -t2 = t0 + t8; -a0 = MEM_U32(t2 + 0); -a1 = 0x6f; -v0 = f_mksuf(mem, sp, a0, a1); -goto L4191b4; -a1 = 0x6f; -L4191b4: -// bdead 4006000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1f4; -//nop; -MEM_U32(at + 0) = v0; -L4191c8: -t3 = 0x1000040c; -at = 0xffffffff; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == at) {//nop; -goto L419200;} -//nop; -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a540; -a1 = MEM_U32(a1 + 0); -a2 = t3; -f_set_place(mem, sp, a0, a1, a2); -goto L4191f8; -a2 = t3; -L4191f8: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L419200: -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L419218; -//nop; -L419218: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100027d0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L419234; -a1 = a1; -L419234: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1fc; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L419254; -//nop; -L419254: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x1; -t9 = 0x100002c0; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L41938c;} -//nop; -t4 = 0x1000a36c; -at = 0x3; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L41938c;} -//nop; -t6 = 0x10000360; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L41938c;} -//nop; -t7 = 0x10000230; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -at = (int)t7 < (int)0x2; -if (at != 0) {//nop; -goto L41938c;} -//nop; -a1 = 0x100027d4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4192d4; -a1 = a1; -L4192d4: -// bdead 40060003 gp = MEM_U32(sp + 64); -at = 0x62; -t5 = 0x1000a1e6; -//nop; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L41930c;} -//nop; -t1 = 0x10000278; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L419324;} -//nop; -L41930c: -t0 = 0x10000240; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L419368;} -//nop; -L419324: -t8 = 0x1000a520; -t2 = s0 << 2; -t8 = MEM_U32(t8 + 8); -//nop; -t3 = t8 + t2; -a0 = MEM_U32(t3 + 0); -a1 = 0x45; -v0 = f_mksuf(mem, sp, a0, a1); -goto L419344; -a1 = 0x45; -L419344: -// bdead 4006000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41935c; -a1 = s4; -L41935c: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -goto L41938c; -//nop; -L419368: -t9 = 0x1000a380; -a0 = 0x1000a560; -a1 = MEM_U32(t9 + 104); -//nop; -//nop; -//nop; -f_addstr(mem, sp, a0, a1); -goto L419384; -//nop; -L419384: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L41938c: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_regular_not_writeable(mem, sp, a0); -goto L4193a0; -//nop; -L4193a0: -// bdead 4006000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4193c8;} -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4193c0; -//nop; -L4193c0: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L4193c8: -a0 = 0x100000e4; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L4193ec; -MEM_U32(sp + 16) = zero; -L4193ec: -// bdead 4006010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L41958c;} -//nop; -t4 = 0x10000404; -t7 = 0x10000240; -t4 = MEM_U32(t4 + 0); -at = 0x10000404; -t7 = MEM_U32(t7 + 0); -t6 = t4 + 0x1; -if (t7 != 0) {MEM_U32(at + 0) = t6; -goto L419558;} -MEM_U32(at + 0) = t6; -t5 = 0x1000a24c; -at = 0x47; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 == at) {//nop; -goto L41944c;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L419444; -//nop; -L419444: -// bdead 40060003 gp = MEM_U32(sp + 64); -//nop; -L41944c: -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = f_regular_file(mem, sp, a0); -goto L419460; -//nop; -L419460: -MEM_U32(sp + 224) = v0; -t1 = MEM_U32(sp + 224); -// bdead 40060403 gp = MEM_U32(sp + 64); -at = 0x1; -if (t1 != at) {//nop; -goto L419498;} -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41948c; -//nop; -L41948c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L419524; -//nop; -L419498: -t0 = MEM_U32(sp + 224); -//nop; -if (t0 == 0) {//nop; -goto L4194e8;} -//nop; -t2 = 0x1000a1f4; -t8 = 0x100027d8; -//nop; -t2 = MEM_U32(t2 + 0); -t8 = t8; -MEM_U32(sp + 20) = t8; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t2; -f_error(mem, sp, a0, a1, a2, a3); -goto L4194dc; -MEM_U32(sp + 24) = t2; -L4194dc: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L419524; -//nop; -L4194e8: -t9 = 0x1000a1f4; -t3 = 0x10002838; -t9 = MEM_U32(t9 + 0); -t3 = t3; -MEM_U32(sp + 24) = t9; -//nop; -MEM_U32(sp + 20) = t3; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41951c; -MEM_U32(sp + 16) = zero; -L41951c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L419524: -t4 = 0x1000a250; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L419558;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L419550; -//nop; -L419550: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L419558: -t6 = 0x10000410; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L41977c;} -//nop; -//nop; -a0 = t6; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L419580; -//nop; -L419580: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -goto L41977c; -//nop; -L41958c: -t7 = 0x100002c0; -at = 0x1; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L41960c;} -//nop; -t5 = 0x1000a36c; -at = 0x3; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L41960c;} -//nop; -t1 = 0x10000360; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L41960c;} -//nop; -t0 = 0x10000230; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -at = (int)t0 < (int)0x2; -if (at != 0) {//nop; -goto L41960c;} -//nop; -t8 = 0x1000a380; -//nop; -a0 = MEM_U32(t8 + 104); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L419604; -//nop; -L419604: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L41960c: -t2 = 0x1000a24c; -at = 0x47; -t2 = MEM_U8(t2 + 0); -//nop; -if (t2 == at) {//nop; -goto L419658;} -//nop; -t3 = 0x10000240; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L419658;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L419650; -//nop; -L419650: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L419658: -t9 = 0x1000a250; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L4196a4;} -//nop; -t4 = 0x10000240; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L4196a4;} -//nop; -a0 = 0x1000a1fc; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41969c; -//nop; -L41969c: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L4196a4: -t6 = 0x1000a36c; -at = 0x3; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L419710;} -//nop; -t7 = MEM_U32(sp + 284); -//nop; -if (t7 == 0) {//nop; -goto L419710;} -//nop; -t5 = 0x1000a24c; -at = 0x66; -t5 = MEM_U8(t5 + 0); -//nop; -if (t5 == at) {at = 0x46; -goto L419710;} -at = 0x46; -if (t5 == at) {at = 0x100001fc; -goto L419710;} -at = 0x100001fc; -a0 = 0x10002878; -//nop; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t7; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L419708; -a0 = a0; -L419708: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L419710: -t1 = 0x1000a36c; -at = 0x1; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L41977c;} -//nop; -t0 = 0x10000008; -at = 0x2; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == at) {at = 0x3; -goto L419748;} -at = 0x3; -if (t0 != at) {//nop; -goto L41977c;} -//nop; -L419748: -t8 = 0x10000110; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L41977c;} -//nop; -a0 = 0x1000a1f4; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -f_update_instantiation_info_file(mem, sp, a0); -goto L419774; -//nop; -L419774: -// bdead 40060103 gp = MEM_U32(sp + 64); -//nop; -L41977c: -t2 = 0x1000a520; -s0 = s0 + 0x1; -t2 = MEM_U32(t2 + 4); -//nop; -at = (int)s0 < (int)t2; -if (at != 0) {//nop; -goto L409e00;} -//nop; -t3 = 0x10000408; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L409e00;} -//nop; -L4197b0: -at = 0x1000a24c; -t9 = 0x1000a36c; -MEM_U8(at + 0) = (uint8_t)zero; -t9 = MEM_U32(t9 + 0); -at = 0x4; -if (t9 != at) {//nop; -goto L419818;} -//nop; -t4 = 0x10000404; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L419800;} -//nop; -//nop; -a0 = 0x1; -//nop; -wrapper_exit(mem, a0); -goto L4197f4; -//nop; -L4197f4: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L419818; -//nop; -L419800: -//nop; -a0 = zero; -//nop; -wrapper_exit(mem, a0); -goto L419810; -//nop; -L419810: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L419818: -t6 = 0x10000228; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L41bc40;} -//nop; -t5 = 0x1000022c; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L41bc40;} -//nop; -t7 = 0x10000214; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L41bc40;} -//nop; -t1 = 0x10000218; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L41bc40;} -//nop; -t0 = 0x10000224; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L41bc40;} -//nop; -t8 = 0x10000404; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L41bc40;} -//nop; -t2 = 0x1000a540; -//nop; -t2 = MEM_U32(t2 + 4); -//nop; -if (t2 == 0) {//nop; -goto L41bc40;} -//nop; -t3 = 0x1000a1e6; -//nop; -t3 = MEM_U8(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L41bc40;} -//nop; -t9 = 0x10000124; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L41bc40;} -//nop; -t4 = 0x10000318; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L419980;} -//nop; -t6 = 0x100002f0; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L419980;} -//nop; -t5 = 0x10000340; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L419980;} -//nop; -t7 = 0x1000287c; -//nop; -t7 = t7; -MEM_U32(sp + 20) = t7; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L419960; -MEM_U32(sp + 16) = zero; -L419960: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -at = 0x10000384; -//nop; -MEM_U32(at + 0) = zero; -at = 0x10000348; -//nop; -MEM_U32(at + 0) = zero; -L419980: -t1 = 0x10000318; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L419a00;} -//nop; -t0 = 0x100002f4; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L419a00;} -//nop; -t8 = 0x100028b4; -//nop; -t8 = t8; -MEM_U32(sp + 20) = t8; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4199d8; -MEM_U32(sp + 16) = zero; -L4199d8: -// bdead 40000003 gp = MEM_U32(sp + 64); -a0 = 0x2; -at = 0x10000384; -//nop; -MEM_U32(at + 0) = zero; -at = 0x10000348; -MEM_U32(at + 0) = zero; -wrapper_exit(mem, a0); -goto L4199f8; -MEM_U32(at + 0) = zero; -L4199f8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L419a00: -t2 = 0x10000318; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L419a80;} -//nop; -t3 = 0x100002dc; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L419a80;} -//nop; -t9 = 0x100028e0; -a0 = 0x1; -t9 = t9; -MEM_U32(sp + 20) = t9; -//nop; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L419a58; -MEM_U32(sp + 16) = zero; -L419a58: -// bdead 40000003 gp = MEM_U32(sp + 64); -a0 = 0x2; -at = 0x10000384; -//nop; -MEM_U32(at + 0) = zero; -at = 0x10000348; -MEM_U32(at + 0) = zero; -wrapper_exit(mem, a0); -goto L419a78; -MEM_U32(at + 0) = zero; -L419a78: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L419a80: -t4 = 0x10000318; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L419b00;} -//nop; -t6 = 0x1000034c; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L419b00;} -//nop; -t5 = 0x10002914; -//nop; -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L419ad8; -MEM_U32(sp + 16) = zero; -L419ad8: -// bdead 40000003 gp = MEM_U32(sp + 64); -a0 = 0x2; -at = 0x10000384; -//nop; -MEM_U32(at + 0) = zero; -at = 0x10000348; -MEM_U32(at + 0) = zero; -wrapper_exit(mem, a0); -goto L419af8; -MEM_U32(at + 0) = zero; -L419af8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L419b00: -t7 = 0x10000318; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L419b30;} -//nop; -t1 = 0x10000324; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L419b90;} -//nop; -L419b30: -t0 = 0x10000254; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L419b90;} -//nop; -t8 = 0x1000294c; -//nop; -t8 = t8; -MEM_U32(sp + 20) = t8; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L419b70; -MEM_U32(sp + 16) = zero; -L419b70: -// bdead 40000003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L419b88; -//nop; -L419b88: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L419b90: -t2 = 0x1000028c; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L419c08;} -//nop; -t3 = 0x10000254; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L419c08;} -//nop; -t9 = 0x10002970; -a0 = 0x1; -t9 = t9; -MEM_U32(sp + 20) = t9; -//nop; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L419be8; -MEM_U32(sp + 16) = zero; -L419be8: -// bdead 40000003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L419c00; -//nop; -L419c00: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L419c08: -t4 = 0x1000a36c; -at = 0x1; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L419d60;} -//nop; -t6 = 0x10000008; -at = 0x2; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == at) {at = 0x3; -goto L419c40;} -at = 0x3; -if (t6 != at) {//nop; -goto L419d60;} -//nop; -L419c40: -t5 = 0x10000110; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {at = 0x1000a560; -goto L419d60;} -at = 0x1000a560; -a1 = 0x10002990; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L419c70; -a1 = a1; -L419c70: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000299c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L419c8c; -a1 = a1; -L419c8c: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a300; -//nop; -f_addlist(mem, sp, a0, a1); -goto L419ca8; -//nop; -L419ca8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -t7 = 0x10000234; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L419ce0;} -//nop; -t1 = 0x1000011c; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L419cfc;} -//nop; -L419ce0: -a1 = 0x100029a4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L419cf4; -a1 = a1; -L419cf4: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L419cfc: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a540; -//nop; -f_add_prelinker_objects(mem, sp, a0, a1); -goto L419d10; -//nop; -L419d10: -// bdead 40000003 gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x10000104; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L419d38; -MEM_U32(sp + 16) = zero; -L419d38: -// bdead 4000000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L419d60;} -//nop; -t0 = 0x10000404; -at = 0x10000404; -t0 = MEM_U32(t0 + 0); -//nop; -t8 = t0 + 0x1; -MEM_U32(at + 0) = t8; -goto L41b960; -MEM_U32(at + 0) = t8; -L419d60: -at = 0x1000a560; -a1 = 0x100029a8; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L419d7c; -a1 = a1; -L419d7c: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -t2 = 0x10000340; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L419de8;} -//nop; -t3 = 0x10000424; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L419de8;} -//nop; -t9 = 0x100002dc; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L419de8;} -//nop; -a1 = 0x100029ac; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L419de0; -a1 = a1; -L419de0: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L419de8: -t4 = 0x10000324; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L419e70;} -//nop; -t6 = 0x1000031c; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L419e70;} -//nop; -t5 = 0x100002f0; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L419f2c;} -//nop; -t7 = 0x100002f4; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L419f2c;} -//nop; -a1 = 0x100029b4; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L419e5c; -a1 = a1; -L419e5c: -// bdead 40000003 gp = MEM_U32(sp + 64); -t1 = 0x1; -at = 0x1000031c; -MEM_U32(at + 0) = t1; -goto L419f2c; -MEM_U32(at + 0) = t1; -L419e70: -t0 = 0x10000348; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L419f2c;} -//nop; -t8 = 0x1000032c; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L419ec0;} -//nop; -a1 = 0x100029c0; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L419eb4; -a1 = a1; -L419eb4: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L419f2c; -//nop; -L419ec0: -t2 = 0x10000330; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L419ef8;} -//nop; -a1 = 0x100029d4; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L419eec; -a1 = a1; -L419eec: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L419f2c; -//nop; -L419ef8: -t3 = 0x10000334; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L419f2c;} -//nop; -a1 = 0x100029ec; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L419f24; -a1 = a1; -L419f24: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L419f2c: -t9 = 0x10000338; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L419f60;} -//nop; -a1 = 0x10002a00; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L419f58; -a1 = a1; -L419f58: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L419f60: -t4 = 0x100002d8; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L419fac;} -//nop; -t6 = 0x100002dc; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L419fac;} -//nop; -a1 = 0x10002a14; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L419fa4; -a1 = a1; -L419fa4: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L419fac: -t5 = 0x10000378; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L419fe0;} -//nop; -a1 = 0x10002a1c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L419fd8; -a1 = a1; -L419fd8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L419fe0: -t7 = 0x1000a36c; -at = 0x1; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L41a02c;} -//nop; -t1 = 0x10000008; -at = 0x3; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L41a02c;} -//nop; -a1 = 0x10002a30; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41a024; -a1 = a1; -L41a024: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41a02c: -t0 = 0x1000028c; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L41a08c;} -//nop; -a1 = 0x10002a38; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41a058; -a1 = a1; -L41a058: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -t8 = 0x1000a380; -at = 0x1000a1f4; -t2 = MEM_U32(t8 + 88); -//nop; -a0 = 0x1000a560; -MEM_U32(at + 0) = t2; -a1 = t2; -f_addstr(mem, sp, a0, a1); -goto L41a080; -a1 = t2; -L41a080: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L41a0e0; -//nop; -L41a08c: -t3 = 0x1000a1ec; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L41a0e0;} -//nop; -a1 = 0x10002a3c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41a0b8; -a1 = a1; -L41a0b8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1ec; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41a0d8; -//nop; -L41a0d8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41a0e0: -//nop; -//nop; -//nop; -v0 = f_gethostsex(mem, sp); -goto L41a0f0; -//nop; -L41a0f0: -// bdead 4000000b gp = MEM_U32(sp + 64); -//nop; -t9 = 0x1000041c; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (v0 == t9) {//nop; -goto L41a154;} -//nop; -if (t9 != 0) {//nop; -goto L41a138;} -//nop; -a1 = 0x10002a40; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41a12c; -a1 = a1; -L41a12c: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L41a154; -//nop; -L41a138: -a1 = 0x10002a44; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41a14c; -a1 = a1; -L41a14c: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41a154: -a1 = 0x1000a25c; -a0 = 0x10002a48; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41a16c; -a0 = a0; -L41a16c: -// bdead 4000018b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L41a2e8;} -//nop; -t4 = 0x10000260; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L41a37c;} -//nop; -t6 = 0x1000a36c; -at = 0x1; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L41a218;} -//nop; -t5 = 0x10000008; -at = 0x3; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L41a218;} -//nop; -t7 = 0x1000a32c; -a1 = 0x1000a25c; -a2 = 0x10000428; -a0 = 0x10002a4c; -a3 = 0x10002a50; -//nop; -t7 = MEM_U32(t7 + 0); -a1 = MEM_U32(a1 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a0 = a0; -a3 = a3; -MEM_U32(sp + 16) = t7; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41a1f8; -MEM_U32(sp + 16) = t7; -L41a1f8: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41a210; -a1 = s4; -L41a210: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41a218: -t1 = 0x10000324; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L41a28c;} -//nop; -t0 = 0x1000a32c; -a1 = 0x1000a25c; -a2 = 0x10000428; -a0 = 0x10002a5c; -a3 = 0x10002a60; -//nop; -t0 = MEM_U32(t0 + 0); -a1 = MEM_U32(a1 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a0 = a0; -a3 = a3; -MEM_U32(sp + 16) = t0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41a268; -MEM_U32(sp + 16) = t0; -L41a268: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41a280; -a1 = s4; -L41a280: -// bdead 40000183 gp = MEM_U32(sp + 64); -//nop; -goto L41a37c; -//nop; -L41a28c: -t8 = 0x1000a32c; -a1 = 0x1000a25c; -a2 = 0x10000428; -a0 = 0x10002a74; -a3 = 0x10002a78; -//nop; -t8 = MEM_U32(t8 + 0); -a1 = MEM_U32(a1 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a0 = a0; -a3 = a3; -MEM_U32(sp + 16) = t8; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41a2c4; -MEM_U32(sp + 16) = t8; -L41a2c4: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41a2dc; -a1 = s4; -L41a2dc: -// bdead 40000183 gp = MEM_U32(sp + 64); -//nop; -goto L41a37c; -//nop; -L41a2e8: -t2 = 0x10000260; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L41a37c;} -//nop; -t3 = 0x1000a36c; -at = 0x1; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L41a37c;} -//nop; -t9 = 0x10000008; -at = 0x3; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L41a37c;} -//nop; -a1 = 0x10000428; -a3 = 0x1000a32c; -a0 = 0x10002a84; -a2 = 0x10002a88; -//nop; -a1 = MEM_U32(a1 + 0); -a3 = MEM_U32(a3 + 0); -MEM_U32(sp + 16) = zero; -a0 = a0; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41a35c; -a2 = a2; -L41a35c: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41a374; -a1 = s4; -L41a374: -// bdead 40000183 gp = MEM_U32(sp + 64); -//nop; -L41a37c: -t4 = 0x10000254; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L41a3b0;} -//nop; -a1 = 0x10002a94; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41a3a8; -a1 = a1; -L41a3a8: -// bdead 40000183 gp = MEM_U32(sp + 64); -//nop; -L41a3b0: -t6 = 0x10000424; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L41a564;} -//nop; -a0 = 0x10002a9c; -//nop; -a1 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41a3dc; -a0 = a0; -L41a3dc: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41a3f4; -a1 = s4; -L41a3f4: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -t5 = 0x10000324; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L41a4bc;} -//nop; -a0 = 0x10002aa0; -a1 = 0x10002aa4; -a2 = 0x10002ab0; -//nop; -a3 = zero; -a0 = a0; -a1 = a1; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41a438; -a2 = a2; -L41a438: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41a450; -a1 = s4; -L41a450: -// bdead 40000003 gp = MEM_U32(sp + 64); -a3 = zero; -a0 = 0x1000a26c; -a2 = 0x1000a254; -a1 = 0x10002ac4; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41a478; -a1 = a1; -L41a478: -// bdead 4000000b gp = MEM_U32(sp + 64); -a3 = zero; -a0 = 0x1000a26c; -at = 0x10000164; -a1 = 0x10002ad8; -a2 = 0x10002aec; -//nop; -a0 = MEM_U32(a0 + 0); -MEM_U32(at + 0) = v0; -a1 = a1; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41a4a8; -a2 = a2; -L41a4a8: -// bdead 4000010b gp = MEM_U32(sp + 64); -//nop; -at = 0x10000168; -MEM_U32(at + 0) = v0; -goto L41a564; -MEM_U32(at + 0) = v0; -L41a4bc: -a0 = 0x10002af4; -a1 = 0x10002af8; -a2 = 0x10002b04; -//nop; -a3 = zero; -a0 = a0; -a1 = a1; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41a4e0; -a2 = a2; -L41a4e0: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41a4f8; -a1 = s4; -L41a4f8: -// bdead 40000003 gp = MEM_U32(sp + 64); -a3 = zero; -a0 = 0x1000a26c; -a2 = 0x1000a254; -a1 = 0x10002b10; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41a520; -a1 = a1; -L41a520: -// bdead 4000000b gp = MEM_U32(sp + 64); -a3 = zero; -a0 = 0x1000a26c; -at = 0x10000164; -a1 = 0x10002b1c; -a2 = 0x10002b28; -//nop; -a0 = MEM_U32(a0 + 0); -MEM_U32(at + 0) = v0; -a1 = a1; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41a550; -a2 = a2; -L41a550: -// bdead 4000010b gp = MEM_U32(sp + 64); -//nop; -at = 0x10000168; -//nop; -MEM_U32(at + 0) = v0; -L41a564: -t7 = 0x10000370; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L41a718;} -//nop; -t1 = 0x100003e4; -at = 0x1; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L41a5cc;} -//nop; -a0 = 0x10002b30; -//nop; -a1 = zero; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41a5ac; -a0 = a0; -L41a5ac: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41a5c4; -a1 = s4; -L41a5c4: -// bdead 40000103 gp = MEM_U32(sp + 64); -//nop; -L41a5cc: -a0 = 0x10002b40; -//nop; -a1 = zero; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41a5e4; -a0 = a0; -L41a5e4: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41a5fc; -a1 = s4; -L41a5fc: -// bdead 40000103 gp = MEM_U32(sp + 64); -//nop; -t0 = 0x10000348; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L41a718;} -//nop; -a1 = 0x10002b50; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41a630; -a1 = a1; -L41a630: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10002b68; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41a64c; -a1 = a1; -L41a64c: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -t8 = 0x100002f8; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L41a68c;} -//nop; -a1 = 0x10002b7c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41a680; -a1 = a1; -L41a680: -// bdead 40000103 gp = MEM_U32(sp + 64); -//nop; -goto L41a718; -//nop; -L41a68c: -t2 = 0x100002fc; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L41a6c4;} -//nop; -a1 = 0x10002b90; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41a6b8; -a1 = a1; -L41a6b8: -// bdead 40000103 gp = MEM_U32(sp + 64); -//nop; -goto L41a718; -//nop; -L41a6c4: -t3 = 0x10000420; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L41a6fc;} -//nop; -a1 = 0x10002ba0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41a6f0; -a1 = a1; -L41a6f0: -// bdead 40000103 gp = MEM_U32(sp + 64); -//nop; -goto L41a718; -//nop; -L41a6fc: -a1 = 0x10002bb4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41a710; -a1 = a1; -L41a710: -// bdead 40000103 gp = MEM_U32(sp + 64); -//nop; -L41a718: -t9 = 0x10000280; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L41a76c;} -//nop; -a1 = 0x10000428; -a0 = 0x10002bc4; -//nop; -a1 = MEM_U32(a1 + 0); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41a74c; -a0 = a0; -L41a74c: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41a764; -a1 = s4; -L41a764: -// bdead 40000103 gp = MEM_U32(sp + 64); -//nop; -L41a76c: -t4 = 0x1000a1b8; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L41a7cc;} -//nop; -t6 = MEM_U8(t4 + 0); -//nop; -if (t6 == 0) {//nop; -goto L41a7cc;} -//nop; -a0 = 0x10002bc8; -//nop; -a1 = t4; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41a7ac; -a0 = a0; -L41a7ac: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41a7c4; -a1 = s4; -L41a7c4: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41a7cc: -t5 = 0x1000028c; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L41a838;} -//nop; -a1 = 0x10002bcc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41a7f8; -a1 = a1; -L41a7f8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10002bd0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41a814; -a1 = a1; -L41a814: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10002bd4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41a830; -a1 = a1; -L41a830: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41a838: -t7 = 0x10000424; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L41a870;} -//nop; -a1 = 0x10002bd8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41a864; -a1 = a1; -L41a864: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L41a8b4; -//nop; -L41a870: -a0 = 0x10002bdc; -a1 = 0x10002be0; -a2 = 0x10002be4; -//nop; -a3 = zero; -a0 = a0; -a1 = a1; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41a894; -a2 = a2; -L41a894: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41a8ac; -a1 = s4; -L41a8ac: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41a8b4: -a1 = 0x10000400; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41a8cc; -//nop; -L41a8cc: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a4e0; -//nop; -f_addlist(mem, sp, a0, a1); -goto L41a8e8; -//nop; -L41a8e8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -t1 = 0x100002f0; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L41aaf0;} -//nop; -t0 = MEM_U32(sp + 332); -//nop; -if (t0 != 0) {//nop; -goto L41aaf0;} -//nop; -a1 = 0x1000a25c; -a0 = 0x10002be8; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41a930; -a0 = a0; -L41a930: -// bdead 4000000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L41aa24;} -//nop; -t8 = 0x10000324; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L41a9bc;} -//nop; -t2 = 0x1000a32c; -a1 = 0x1000a25c; -a2 = 0x10000428; -t3 = 0x10002bfc; -a0 = 0x10002bec; -a3 = 0x10002bf0; -//nop; -t2 = MEM_U32(t2 + 0); -a1 = MEM_U32(a1 + 0); -a2 = MEM_U32(a2 + 0); -t3 = t3; -MEM_U32(sp + 20) = t3; -MEM_U32(sp + 24) = zero; -a0 = a0; -a3 = a3; -MEM_U32(sp + 16) = t2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41a998; -MEM_U32(sp + 16) = t2; -L41a998: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41a9b0; -a1 = s4; -L41a9b0: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L41aaf0; -//nop; -L41a9bc: -t9 = 0x1000a32c; -a1 = 0x1000a25c; -t9 = MEM_U32(t9 + 0); -a2 = 0x10000428; -t6 = 0x10002c1c; -MEM_U32(sp + 16) = t9; -//nop; -a0 = 0x10002c0c; -a3 = 0x10002c10; -a1 = MEM_U32(a1 + 0); -a2 = MEM_U32(a2 + 0); -t6 = t6; -MEM_U32(sp + 20) = t6; -MEM_U32(sp + 24) = zero; -a0 = a0; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41aa00; -a3 = a3; -L41aa00: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41aa18; -a1 = s4; -L41aa18: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L41aaf0; -//nop; -L41aa24: -t4 = 0x10000324; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L41aa98;} -//nop; -a1 = 0x10000428; -a3 = 0x1000a32c; -t5 = 0x10002c34; -a0 = 0x10002c24; -a2 = 0x10002c28; -//nop; -a1 = MEM_U32(a1 + 0); -a3 = MEM_U32(a3 + 0); -t5 = t5; -MEM_U32(sp + 16) = t5; -MEM_U32(sp + 20) = zero; -a0 = a0; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41aa74; -a2 = a2; -L41aa74: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41aa8c; -a1 = s4; -L41aa8c: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L41aaf0; -//nop; -L41aa98: -a1 = 0x10000428; -a3 = 0x1000a32c; -t7 = 0x10002c54; -a0 = 0x10002c44; -a2 = 0x10002c48; -//nop; -a1 = MEM_U32(a1 + 0); -a3 = MEM_U32(a3 + 0); -t7 = t7; -MEM_U32(sp + 16) = t7; -MEM_U32(sp + 20) = zero; -a0 = a0; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41aad0; -a2 = a2; -L41aad0: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41aae8; -a1 = s4; -L41aae8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41aaf0: -t1 = 0x10000254; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L41ac58;} -//nop; -t0 = 0x1000a36c; -at = 0x1; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L41ab78;} -//nop; -t8 = 0x10000008; -at = 0x2; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == at) {at = 0x3; -goto L41ab40;} -at = 0x3; -if (t8 != at) {//nop; -goto L41ab78;} -//nop; -L41ab40: -//nop; -//nop; -//nop; -f_add_cxx_symbol_options(mem, sp); -goto L41ab50; -//nop; -L41ab50: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000016c; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ab70; -//nop; -L41ab70: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41ab78: -t2 = 0x1000a36c; -at = 0x1; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L41abc8;} -//nop; -t3 = 0x10000008; -at = 0x3; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L41abc8;} -//nop; -a1 = 0x10000170; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41abc0; -//nop; -L41abc0: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41abc8: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a540; -//nop; -f_addlist(mem, sp, a0, a1); -goto L41abdc; -//nop; -L41abdc: -// bdead 40000003 gp = MEM_U32(sp + 64); -at = 0x1; -t9 = 0x1000a36c; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L41ac38;} -//nop; -t6 = 0x10000008; -at = 0x2; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == at) {at = 0x3; -goto L41ac1c;} -at = 0x3; -if (t6 != at) {//nop; -goto L41ac38;} -//nop; -L41ac1c: -a1 = 0x10002c5c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41ac30; -a1 = a1; -L41ac30: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41ac38: -a1 = 0x10002c60; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41ac4c; -a1 = a1; -L41ac4c: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L41b6c8; -//nop; -L41ac58: -a1 = 0x10002c64; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41ac6c; -a1 = a1; -L41ac6c: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000164; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ac8c; -//nop; -L41ac8c: -// bdead 40000003 gp = MEM_U32(sp + 64); -at = 0x1; -t4 = 0x1000a36c; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L41ad04;} -//nop; -t5 = 0x10000008; -at = 0x2; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == at) {at = 0x3; -goto L41accc;} -at = 0x3; -if (t5 != at) {//nop; -goto L41ad04;} -//nop; -L41accc: -//nop; -//nop; -//nop; -f_add_cxx_symbol_options(mem, sp); -goto L41acdc; -//nop; -L41acdc: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000016c; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41acfc; -//nop; -L41acfc: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41ad04: -t7 = 0x1000a36c; -at = 0x1; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L41ad54;} -//nop; -t1 = 0x10000008; -at = 0x3; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L41ad54;} -//nop; -a1 = 0x10000170; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ad4c; -//nop; -L41ad4c: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41ad54: -t0 = 0x10000220; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L41ad8c;} -//nop; -a1 = 0x100001d4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ad84; -//nop; -L41ad84: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41ad8c: -a1 = 0x10002c70; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41ada0; -a1 = a1; -L41ada0: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a540; -//nop; -f_addlist(mem, sp, a0, a1); -goto L41adbc; -//nop; -L41adbc: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a5a8; -//nop; -f_addlist(mem, sp, a0, a1); -goto L41add8; -//nop; -L41add8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -t8 = 0x10000004; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L41ae2c;} -//nop; -t2 = 0x1000a36c; -at = 0x1; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L41ae2c;} -//nop; -a1 = 0x10002c78; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41ae24; -a1 = a1; -L41ae24: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41ae2c: -a1 = 0x10002c80; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41ae40; -a1 = a1; -L41ae40: -// bdead 40000003 gp = MEM_U32(sp + 64); -at = 0x2; -t3 = 0x1000a36c; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == at) {//nop; -goto L41ae78;} -//nop; -t9 = 0x10000388; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L41aef8;} -//nop; -L41ae78: -a1 = 0x10000174; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L41ae90; -//nop; -L41ae90: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100001d8; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L41aeb0; -//nop; -L41aeb0: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100001bc; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L41aed0; -//nop; -L41aed0: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100001e4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L41aef0; -//nop; -L41aef0: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41aef8: -t6 = 0x1000a36c; -at = 0x3; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == at) {//nop; -goto L41af28;} -//nop; -t4 = 0x1000038c; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L41b12c;} -//nop; -L41af28: -t5 = 0x1000a150; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L41af60;} -//nop; -a1 = 0x1000a5c8; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L41af58; -//nop; -L41af58: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41af60: -t7 = 0x10000324; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L41af90;} -//nop; -t1 = 0x10000424; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L41b0ec;} -//nop; -L41af90: -a1 = 0x10000184; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L41afa8; -//nop; -L41afa8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000017c; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L41afc8; -//nop; -L41afc8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10000194; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L41afe8; -//nop; -L41afe8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -t0 = 0x1000039c; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L41b0a8;} -//nop; -a0 = 0x1000018c; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_strlen(mem, a0); -goto L41b01c; -//nop; -L41b01c: -// bdead 4000000b gp = MEM_U32(sp + 64); -MEM_U32(sp + 220) = v0; -a0 = MEM_U32(sp + 220); -//nop; -a0 = a0 + 0x2; -//nop; -v0 = wrapper_malloc(mem, a0); -goto L41b038; -//nop; -L41b038: -// bdead 4000000b gp = MEM_U32(sp + 64); -MEM_U32(sp + 216) = v0; -a1 = 0x1000018c; -//nop; -a0 = MEM_U32(sp + 216); -a2 = MEM_U32(sp + 220); -a1 = MEM_U32(a1 + 0); -//nop; -v0 = wrapper_memcpy(mem, a0, a1, a2); -goto L41b05c; -//nop; -L41b05c: -t2 = MEM_U32(sp + 216); -t3 = MEM_U32(sp + 220); -// bdead 40001803 gp = MEM_U32(sp + 64); -t8 = 0x5f; -t9 = t2 + t3; -MEM_U8(t9 + 0) = (uint8_t)t8; -t4 = MEM_U32(sp + 216); -t5 = MEM_U32(sp + 220); -t6 = 0x73; -t7 = t4 + t5; -MEM_U8(t7 + 1) = (uint8_t)t6; -t1 = MEM_U32(sp + 216); -t0 = MEM_U32(sp + 220); -at = 0x1000018c; -t2 = t1 + t0; -MEM_U8(t2 + 2) = (uint8_t)zero; -t3 = MEM_U32(sp + 216); -//nop; -MEM_U32(at + 0) = t3; -L41b0a8: -a1 = 0x1000018c; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L41b0c0; -//nop; -L41b0c0: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100001a0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L41b0e0; -//nop; -L41b0e0: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L41b12c; -//nop; -L41b0ec: -a1 = 0x10000198; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L41b104; -//nop; -L41b104: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000017c; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L41b124; -//nop; -L41b124: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b12c: -t8 = 0x1000a36c; -at = 0x5; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L41b1e0;} -//nop; -a1 = 0x100001b4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41b15c; -//nop; -L41b15c: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100001d8; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L41b17c; -//nop; -L41b17c: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10002c8c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41b198; -a1 = a1; -L41b198: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100001bc; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L41b1b8; -//nop; -L41b1b8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100001e4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L41b1d8; -//nop; -L41b1d8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b1e0: -t9 = 0x1000a36c; -at = 0x2; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == at) {//nop; -goto L41b268;} -//nop; -t4 = 0x1000038c; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {at = 0x3; -goto L41b218;} -at = 0x3; -if (t9 != at) {//nop; -goto L41b268;} -//nop; -L41b218: -t5 = 0x10000388; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L41b268;} -//nop; -t6 = 0x1000a134; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L41b268;} -//nop; -t7 = 0x1000a36c; -at = 0x5; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == at) {at = 0x6; -goto L41b268;} -at = 0x6; -if (t7 != at) {//nop; -goto L41b288;} -//nop; -L41b268: -a1 = 0x1000017c; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L41b280; -//nop; -L41b280: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b288: -t1 = 0x10000220; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L41b2c0;} -//nop; -a1 = 0x100001d4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L41b2b8; -//nop; -L41b2b8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b2c0: -t0 = 0x1000030c; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L41b334;} -//nop; -a0 = 0x100001a8; -a1 = 0x10002c98; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_fopen(mem, a0, a1); -goto L41b2f0; -a1 = a1; -L41b2f0: -// bdead 4000000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a234; -t2 = 0x1000a234; -MEM_U32(at + 0) = v0; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L41b334;} -//nop; -a1 = 0x100001ac; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addspacedstr(mem, sp, a0, a1); -goto L41b32c; -//nop; -L41b32c: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b334: -t3 = 0x1000a188; -at = 0x10000; -t3 = MEM_U32(t3 + 0); -//nop; -t8 = t3 & at; -if (t8 == 0) {//nop; -goto L41b3a4;} -//nop; -a1 = 0x100001f0; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41b368; -//nop; -L41b368: -// bdead 40000003 gp = MEM_U32(sp + 64); -at = 0x1; -t4 = 0x1000a36c; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L41b3a4;} -//nop; -a1 = 0x10002c9c; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41b39c; -a1 = a1; -L41b39c: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b3a4: -t9 = 0x1000043c; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L41b3f0;} -//nop; -t5 = 0x1000a36c; -at = 0x1; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L41b3f0;} -//nop; -a1 = 0x10002ca4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41b3e8; -a1 = a1; -L41b3e8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b3f0: -t6 = 0x1000a36c; -at = 0x3; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L41b534;} -//nop; -t7 = 0x1000039c; -at = 0x2; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L41b45c;} -//nop; -a1 = 0x10002cac; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41b434; -a1 = a1; -L41b434: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10002cb4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41b450; -a1 = a1; -L41b450: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L41b660; -//nop; -L41b45c: -t1 = 0x10000424; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L41b4a8;} -//nop; -t0 = 0x1000a5b4; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L41b4a8;} -//nop; -a1 = 0x10002cb8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41b4a0; -a1 = a1; -L41b4a0: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b4a8: -t2 = 0x1000a56c; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L41b4e0;} -//nop; -a1 = 0x10002cc0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41b4d4; -a1 = a1; -L41b4d4: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L41b514; -//nop; -L41b4e0: -t3 = 0x1000a570; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L41b514;} -//nop; -a1 = 0x10002cc8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41b50c; -a1 = a1; -L41b50c: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b514: -a1 = 0x10002cd0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41b528; -a1 = a1; -L41b528: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L41b660; -//nop; -L41b534: -t8 = 0x10000424; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L41b584;} -//nop; -t4 = 0x1000a188; -at = 0x10000; -t4 = MEM_U32(t4 + 0); -//nop; -t9 = t4 & at; -if (t9 == 0) {//nop; -goto L41b584;} -//nop; -a1 = 0x10002cd4; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41b57c; -a1 = a1; -L41b57c: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b584: -t5 = 0x1000a36c; -at = 0x1; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L41b5d8;} -//nop; -t6 = 0x10000008; -at = 0x2; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == at) {at = 0x3; -goto L41b5bc;} -at = 0x3; -if (t6 != at) {//nop; -goto L41b5d8;} -//nop; -L41b5bc: -a1 = 0x10002cdc; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41b5d0; -a1 = a1; -L41b5d0: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b5d8: -t7 = 0x1000a56c; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L41b610;} -//nop; -a1 = 0x10002ce0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41b604; -a1 = a1; -L41b604: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L41b644; -//nop; -L41b610: -t1 = 0x1000a570; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L41b644;} -//nop; -a1 = 0x10002ce8; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41b63c; -a1 = a1; -L41b63c: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b644: -a1 = 0x10002cf0; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41b658; -a1 = a1; -L41b658: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b660: -t0 = 0x100001e8; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L41b698;} -//nop; -a1 = 0x10000168; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41b690; -//nop; -L41b690: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b698: -t2 = 0x1000a30c; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L41b6c8;} -//nop; -//nop; -a0 = 0x1000a560; -a1 = t2; -f_addstr(mem, sp, a0, a1); -goto L41b6c0; -a1 = t2; -L41b6c0: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b6c8: -at = 0x1000a1f0; -t3 = 0x1000a380; -a0 = 0x100000e8; -a1 = 0x1000a560; -MEM_U32(at + 0) = zero; -//nop; -t8 = MEM_U32(t3 + 128); -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = t8; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L41b6fc; -MEM_U32(sp + 16) = t8; -L41b6fc: -// bdead 4000000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L41b7a8;} -//nop; -t4 = 0x10000404; -t5 = 0x10000240; -t4 = MEM_U32(t4 + 0); -at = 0x10000404; -t5 = MEM_U32(t5 + 0); -t9 = t4 + 0x1; -if (t5 != 0) {MEM_U32(at + 0) = t9; -goto L41b7a8;} -MEM_U32(at + 0) = t9; -t6 = 0x1000a1ec; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L41b75c;} -//nop; -//nop; -a0 = t6; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41b750; -//nop; -L41b750: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L41b778; -//nop; -L41b75c: -a0 = 0x10002cf4; -//nop; -a0 = a0; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41b770; -//nop; -L41b770: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b778: -t7 = 0x10000410; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L41b7a8;} -//nop; -//nop; -a0 = t7; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41b7a0; -//nop; -L41b7a0: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b7a8: -t1 = 0x1000a380; -//nop; -t0 = MEM_U32(t1 + 128); -//nop; -if (t0 == 0) {//nop; -goto L41b854;} -//nop; -//nop; -a0 = t0; -a1 = sp + 0x50; -v0 = wrapper_stat(mem, a0, a1); -goto L41b7d0; -a1 = sp + 0x50; -L41b7d0: -// bdead 4000000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41b838;} -//nop; -t2 = MEM_U32(sp + 128); -//nop; -if ((int)t2 <= 0) {at = 0x1000a560; -goto L41b838;} -at = 0x1000a560; -a1 = 0x10002cfc; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41b804; -a1 = a1; -L41b804: -// bdead 40000003 gp = MEM_U32(sp + 64); -a3 = zero; -a0 = 0x10000100; -a1 = 0x1000a560; -t3 = 0x1000a380; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a2 = MEM_U32(t3 + 128); -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L41b830; -MEM_U32(sp + 16) = zero; -L41b830: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b838: -t8 = 0x1000a380; -//nop; -a0 = MEM_U32(t8 + 128); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41b84c; -//nop; -L41b84c: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b854: -t4 = 0x10000404; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L41b960;} -//nop; -t9 = 0x1000a36c; -at = 0x1; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L41b960;} -//nop; -t5 = 0x10000008; -at = 0x2; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == at) {at = 0x3; -goto L41b8a4;} -at = 0x3; -if (t5 != at) {//nop; -goto L41b960;} -//nop; -L41b8a4: -a1 = 0x100000fc; -at = 0x1000a560; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -MEM_U32(at + 4) = zero; -f_addstr(mem, sp, a0, a1); -goto L41b8c0; -MEM_U32(at + 4) = zero; -L41b8c0: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -t6 = 0x1000a1ec; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L41b8fc;} -//nop; -//nop; -a0 = 0x1000a560; -a1 = t6; -f_addstr(mem, sp, a0, a1); -goto L41b8f0; -a1 = t6; -L41b8f0: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L41b918; -//nop; -L41b8fc: -a1 = 0x10002d04; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41b910; -a1 = a1; -L41b910: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b918: -a0 = 0x100000fc; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L41b93c; -MEM_U32(sp + 16) = zero; -L41b93c: -// bdead 4000000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L41b960;} -//nop; -t7 = 0x10000404; -at = 0x10000404; -t7 = MEM_U32(t7 + 0); -//nop; -t1 = t7 + 0x1; -MEM_U32(at + 0) = t1; -L41b960: -t0 = 0x1000028c; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L41bb9c;} -//nop; -t2 = 0x10000404; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {at = 0x1000a560; -goto L41bb9c;} -at = 0x1000a560; -a1 = 0x10002d0c; -//nop; -a0 = 0x1000a560; -MEM_U32(at + 4) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41b9a8; -a1 = a1; -L41b9a8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -t3 = 0x10000234; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L41b9e4;} -//nop; -a1 = 0x10002d14; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41b9dc; -a1 = a1; -L41b9dc: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41b9e4: -//nop; -a0 = 0x1000a560; -a1 = 0x1000a510; -//nop; -f_addlist(mem, sp, a0, a1); -goto L41b9f8; -//nop; -L41b9f8: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -t8 = 0x1000a1ec; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {at = 0x1000a1f4; -goto L41ba20;} -at = 0x1000a1f4; -MEM_U32(at + 0) = t8; -goto L41ba30; -MEM_U32(at + 0) = t8; -L41ba20: -t4 = 0x10002d18; -at = 0x1000a1f4; -t4 = t4; -MEM_U32(at + 0) = t4; -L41ba30: -a1 = 0x10002d20; -//nop; -a0 = 0x1000a560; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41ba44; -a1 = a1; -L41ba44: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1f4; -//nop; -a0 = 0x1000a560; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ba64; -//nop; -L41ba64: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -t9 = 0x1000a380; -a0 = 0x1000a560; -a1 = MEM_U32(t9 + 88); -//nop; -//nop; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ba88; -//nop; -L41ba88: -// bdead 40000103 gp = MEM_U32(sp + 64); -//nop; -t5 = 0x1000a550; -//nop; -t5 = MEM_U32(t5 + 4); -//nop; -if (t5 == 0) {//nop; -goto L41bac8;} -//nop; -//nop; -a0 = 0x1000a560; -a1 = 0x1000a550; -//nop; -f_addlist(mem, sp, a0, a1); -goto L41babc; -//nop; -L41babc: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L41bb04; -//nop; -L41bac8: -a0 = 0x1000a1f4; -a1 = 0x10002d24; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41bae4; -a1 = a1; -L41bae4: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a560; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41bafc; -a1 = s4; -L41bafc: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41bb04: -a0 = 0x100000f0; -a1 = 0x1000a560; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -v0 = f_run(mem, sp, a0, a1, a2, a3); -goto L41bb28; -MEM_U32(sp + 16) = zero; -L41bb28: -// bdead 4000000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L41bb80;} -//nop; -t6 = 0x10000404; -a0 = 0x1000a1f4; -t6 = MEM_U32(t6 + 0); -at = 0x10000404; -//nop; -a0 = MEM_U32(a0 + 0); -t7 = t6 + 0x1; -MEM_U32(at + 0) = t7; -v0 = wrapper_unlink(mem, a0); -goto L41bb58; -MEM_U32(at + 0) = t7; -L41bb58: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -t1 = 0x1000a380; -//nop; -a0 = MEM_U32(t1 + 88); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41bb74; -//nop; -L41bb74: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -goto L41bb9c; -//nop; -L41bb80: -t0 = 0x1000a380; -//nop; -a0 = MEM_U32(t0 + 88); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41bb94; -//nop; -L41bb94: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41bb9c: -t2 = 0x10000404; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L41bc40;} -//nop; -t3 = 0x1000a520; -at = 0x1; -t3 = MEM_U32(t3 + 4); -//nop; -if (t3 != at) {//nop; -goto L41bc40;} -//nop; -t8 = 0x10000418; -at = 0x1; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L41bc40;} -//nop; -t4 = 0x10000240; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L41bc40;} -//nop; -t9 = 0x1000a520; -a1 = 0x6f; -t9 = MEM_U32(t9 + 8); -//nop; -a0 = MEM_U32(t9 + 0); -//nop; -//nop; -//nop; -v0 = f_mksuf(mem, sp, a0, a1); -goto L41bc20; -//nop; -L41bc20: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = s4; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41bc38; -//nop; -L41bc38: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41bc40: -t5 = 0x10000410; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L41bc70;} -//nop; -//nop; -a0 = t5; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41bc68; -//nop; -L41bc68: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41bc70: -t6 = 0x100002a8; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L41bcd8;} -//nop; -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41bc9c; -//nop; -L41bc9c: -// bdead 40000003 gp = MEM_U32(sp + 64); -at = 0x2; -t7 = 0x100002a8; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L41bcd8;} -//nop; -t1 = 0x1000a380; -//nop; -a0 = MEM_U32(t1 + 100); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41bcd0; -//nop; -L41bcd0: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41bcd8: -t0 = 0x1000a36c; -at = 0x1; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L41bd28;} -//nop; -t2 = 0x1000021c; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -at = (int)t2 < (int)0x2; -if (at != 0) {//nop; -goto L41bd28;} -//nop; -t3 = 0x1000a380; -//nop; -a0 = MEM_U32(t3 + 132); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L41bd20; -//nop; -L41bd20: -// bdead 40000003 gp = MEM_U32(sp + 64); -//nop; -L41bd28: -t8 = 0x10000404; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L41bd58;} -//nop; -//nop; -a0 = 0x1; -//nop; -wrapper_exit(mem, a0); -goto L41bd50; -//nop; -L41bd50: -// bdead 3 gp = MEM_U32(sp + 64); -//nop; -L41bd58: -// bdead 3 ra = MEM_U32(sp + 68); -// bdead 3 s0 = MEM_U32(sp + 40); -// bdead 3 s1 = MEM_U32(sp + 44); -// bdead 3 s2 = MEM_U32(sp + 48); -// bdead 3 s3 = MEM_U32(sp + 52); -// bdead 3 s4 = MEM_U32(sp + 56); -// bdead 3 s5 = MEM_U32(sp + 60); -// bdead 3 sp = sp + 0x160; -v0 = zero; -return v0; -v0 = zero; -} - -static void f_process_config(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L41bd80: -//process_config: -//nop; -//nop; -//nop; -sp = sp + 0xffffeeb0; -t6 = 0x1000a25c; -MEM_U32(sp + 4432) = a0; -t7 = MEM_U32(sp + 4432); -// fdead 4001806b MEM_U32(sp + 28) = s0; -t6 = MEM_U32(t6 + 0); -s0 = 0x1; -at = (int)s0 < (int)t7; -// fdead 4003806f MEM_U32(sp + 44) = ra; -// fdead 4003806f MEM_U32(sp + 40) = gp; -MEM_U32(sp + 4436) = a1; -// fdead 4003806f MEM_U32(sp + 36) = s2; -// fdead 4003806f MEM_U32(sp + 32) = s1; -if (at == 0) {MEM_U32(sp + 4420) = t6; -goto L41c074;} -MEM_U32(sp + 4420) = t6; -L41bdc8: -t8 = MEM_U32(sp + 4436); -t9 = s0 << 2; -t0 = t8 + t9; -//nop; -a1 = 0x10002d28; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41bde8; -a1 = a1; -L41bde8: -// bdead 4002000b gp = MEM_U32(sp + 40); -if (v0 != 0) {//nop; -goto L41c060;} -//nop; -t1 = MEM_U32(sp + 4432); -s0 = s0 + 0x1; -at = (int)s0 < (int)t1; -if (at != 0) {//nop; -goto L41be50;} -//nop; -t2 = 0x10002d34; -//nop; -t2 = t2; -MEM_U32(sp + 20) = t2; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41be30; -MEM_U32(sp + 16) = zero; -L41be30: -// bdead 40020003 gp = MEM_U32(sp + 40); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41be48; -//nop; -L41be48: -// bdead 40020003 gp = MEM_U32(sp + 40); -//nop; -L41be50: -at = 0x1000035c; -t4 = MEM_U32(sp + 4436); -t3 = 0x1; -t5 = s0 << 2; -MEM_U32(at + 0) = t3; -t6 = t4 + t5; -t7 = MEM_U32(t6 + 0); -at = 0x1000a27c; -a1 = 0x10002d54; -//nop; -a0 = t7; -MEM_U32(at + 0) = t7; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41be88; -a1 = a1; -L41be88: -// bdead 4000000b gp = MEM_U32(sp + 40); -if (v0 != 0) {at = 0x10000370; -goto L41bea0;} -at = 0x10000370; -t8 = 0x1; -MEM_U32(at + 0) = t8; -goto L41bee8; -MEM_U32(at + 0) = t8; -L41bea0: -t9 = 0x10002d5c; -a0 = 0x1; -t9 = t9; -MEM_U32(sp + 20) = t9; -//nop; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41bec8; -MEM_U32(sp + 16) = zero; -L41bec8: -// bdead 40000003 gp = MEM_U32(sp + 40); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41bee0; -//nop; -L41bee0: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L41bee8: -a0 = 0x1000a27c; -a1 = 0x10002d78; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41bf00; -a1 = a1; -L41bf00: -// bdead 4000000b gp = MEM_U32(sp + 40); -if (v0 == 0) {//nop; -goto L41c018;} -//nop; -a0 = 0x1000a27c; -a1 = 0x10002d80; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41bf24; -a1 = a1; -L41bf24: -// bdead 4000000b gp = MEM_U32(sp + 40); -if (v0 == 0) {//nop; -goto L41c018;} -//nop; -a0 = 0x1000a27c; -a1 = 0x10002d88; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41bf48; -a1 = a1; -L41bf48: -// bdead 4000000b gp = MEM_U32(sp + 40); -if (v0 == 0) {//nop; -goto L41c018;} -//nop; -a0 = 0x1000a27c; -a1 = 0x10002d90; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41bf6c; -a1 = a1; -L41bf6c: -// bdead 4000000b gp = MEM_U32(sp + 40); -if (v0 == 0) {//nop; -goto L41c018;} -//nop; -a1 = 0x1000a27c; -a0 = 0x10002d98; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -v0 = wrapper_strcat(mem, a0, a1); -goto L41bf90; -a0 = a0; -L41bf90: -// bdead 4000000b gp = MEM_U32(sp + 40); -s2 = v0; -a1 = 0x10002d9c; -//nop; -a0 = s2; -a1 = a1; -v0 = wrapper_fopen(mem, a0, a1); -goto L41bfac; -a1 = a1; -L41bfac: -// bdead 4000000b gp = MEM_U32(sp + 40); -if (v0 != 0) {//nop; -goto L41c018;} -//nop; -t0 = 0x1000036c; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L41c018;} -//nop; -t1 = 0x10002da0; -//nop; -t1 = t1; -MEM_U32(sp + 20) = t1; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41bff8; -MEM_U32(sp + 16) = zero; -L41bff8: -// bdead 40000003 gp = MEM_U32(sp + 40); -t2 = 0x1; -at = 0x1000036c; -t3 = 0x10002de8; -MEM_U32(at + 0) = t2; -at = 0x1000a27c; -t3 = t3; -MEM_U32(at + 0) = t3; -L41c018: -t4 = 0x10000370; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L41c074;} -//nop; -a0 = 0x1000a25c; -a1 = 0x1000a27c; -a2 = 0x10002df0; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 0); -a3 = zero; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41c054; -a2 = a2; -L41c054: -// bdead 4000000b gp = MEM_U32(sp + 40); -MEM_U32(sp + 4420) = v0; -goto L41c074; -MEM_U32(sp + 4420) = v0; -L41c060: -t5 = MEM_U32(sp + 4432); -s0 = s0 + 0x1; -at = (int)s0 < (int)t5; -if (at != 0) {//nop; -goto L41bdc8;} -//nop; -L41c074: -t6 = 0x1000035c; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L41c0b8;} -//nop; -a0 = 0x1000a25c; -a1 = 0x1000a27c; -a2 = 0x10002df4; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 0); -a3 = zero; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41c0b0; -a2 = a2; -L41c0b0: -// bdead 4000000b gp = MEM_U32(sp + 40); -MEM_U32(sp + 4420) = v0; -L41c0b8: -a2 = 0x1000a32c; -at = 0x1000035c; -a1 = 0x10002df8; -a3 = 0x10002e04; -//nop; -a0 = MEM_U32(sp + 4420); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 16) = zero; -MEM_U32(at + 0) = zero; -a1 = a1; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41c0e8; -a3 = a3; -L41c0e8: -// bdead 4000000b gp = MEM_U32(sp + 40); -MEM_U32(sp + 4416) = v0; -a1 = 0x10002e10; -//nop; -a0 = MEM_U32(sp + 4416); -a1 = a1; -v0 = wrapper_fopen(mem, a0, a1); -goto L41c104; -a1 = a1; -L41c104: -MEM_U32(sp + 4412) = v0; -t7 = MEM_U32(sp + 4412); -// bdead 40010003 gp = MEM_U32(sp + 40); -if (t7 == 0) {//nop; -goto L41c2d8;} -//nop; -//nop; -a2 = MEM_U32(sp + 4412); -a0 = sp + 0x13c; -a1 = 0x1000; -v0 = wrapper_fgets(mem, a0, a1, a2); -goto L41c12c; -a1 = 0x1000; -L41c12c: -// bdead 4000000b gp = MEM_U32(sp + 40); -if (v0 == 0) {//nop; -goto L41c2d8;} -//nop; -//nop; -a0 = sp + 0x13c; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L41c148; -//nop; -L41c148: -s2 = v0; -t8 = sp + 0x13c; -t9 = s2 + t8; -t0 = MEM_U8(t9 + -1); -// bdead 42000203 gp = MEM_U32(sp + 40); -at = 0xa; -if (t0 != at) {//nop; -goto L41c18c;} -//nop; -//nop; -a0 = t8; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L41c178; -//nop; -L41c178: -s2 = v0; -t1 = sp + 0x13c; -t2 = s2 + t1; -// bdead 40000803 gp = MEM_U32(sp + 40); -MEM_U8(t2 + -1) = (uint8_t)zero; -L41c18c: -s1 = sp + 0x13c; -MEM_U32(sp + 312) = zero; -t3 = MEM_U8(s1 + 0); -// bdead 40041003 s0 = zero; -if (t3 == 0) {//nop; -goto L41c2c0;} -//nop; -L41c1a4: -t4 = MEM_U8(s1 + 0); -//nop; -if (t4 == 0) {//nop; -goto L41c204;} -//nop; -t5 = MEM_U8(s1 + 0); -at = 0x20; -if (t5 == at) {//nop; -goto L41c1d4;} -//nop; -t6 = MEM_U8(s1 + 0); -at = 0x9; -if (t6 != at) {//nop; -goto L41c204;} -//nop; -L41c1d4: -t7 = MEM_U8(s1 + 1); -s1 = s1 + 0x1; -if (t7 == 0) {//nop; -goto L41c204;} -//nop; -t9 = MEM_U8(s1 + 0); -at = 0x20; -if (t9 == at) {//nop; -goto L41c1d4;} -//nop; -t0 = MEM_U8(s1 + 0); -at = 0x9; -if (t0 == at) {//nop; -goto L41c1d4;} -//nop; -L41c204: -t8 = MEM_U8(s1 + 0); -//nop; -if (t8 == 0) {//nop; -goto L41c238;} -//nop; -t1 = MEM_U32(sp + 312); -t3 = sp + 0x38; -t2 = t1 << 2; -t4 = t2 + t3; -MEM_U32(t4 + 0) = s1; -t5 = MEM_U32(sp + 312); -//nop; -t6 = t5 + 0x1; -MEM_U32(sp + 312) = t6; -L41c238: -t7 = MEM_U8(s1 + 0); -//nop; -if (t7 == 0) {//nop; -goto L41c298;} -//nop; -t9 = MEM_U8(s1 + 0); -at = 0x20; -if (t9 == at) {//nop; -goto L41c298;} -//nop; -t0 = MEM_U8(s1 + 0); -at = 0x9; -if (t0 == at) {//nop; -goto L41c298;} -//nop; -L41c268: -t8 = MEM_U8(s1 + 1); -s1 = s1 + 0x1; -if (t8 == 0) {//nop; -goto L41c298;} -//nop; -t1 = MEM_U8(s1 + 0); -at = 0x20; -if (t1 == at) {//nop; -goto L41c298;} -//nop; -t2 = MEM_U8(s1 + 0); -at = 0x9; -if (t2 != at) {//nop; -goto L41c268;} -//nop; -L41c298: -t3 = MEM_U8(s1 + 0); -//nop; -if (t3 == 0) {//nop; -goto L41c2b0;} -//nop; -MEM_U8(s1 + 0) = (uint8_t)zero; -s1 = s1 + 0x1; -L41c2b0: -t4 = MEM_U8(s1 + 0); -//nop; -if (t4 != 0) {//nop; -goto L41c1a4;} -//nop; -L41c2c0: -//nop; -a0 = MEM_U32(sp + 312); -a1 = sp + 0x38; -f_parse_command(mem, sp, a0, a1); -goto L41c2d0; -a1 = sp + 0x38; -L41c2d0: -// bdead 1 gp = MEM_U32(sp + 40); -//nop; -L41c2d8: -// bdead 1 ra = MEM_U32(sp + 44); -// bdead 1 s0 = MEM_U32(sp + 28); -// bdead 1 s1 = MEM_U32(sp + 32); -// bdead 1 s2 = MEM_U32(sp + 36); -// bdead 1 sp = sp + 0x1150; -return; -// bdead 1 sp = sp + 0x1150; -} - -static void f_add_info(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L41c2f0: -//add_info: -//nop; -//nop; -//nop; -sp = sp + 0xffffffe0; -MEM_U32(sp + 32) = a0; -//nop; -// fdead 4000002b MEM_U32(sp + 28) = ra; -a1 = MEM_U32(sp + 32); -a0 = 0x1000a320; -// fdead 4000006b MEM_U32(sp + 24) = gp; -f_addstr(mem, sp, a0, a1); -goto L41c31c; -// fdead 4000006b MEM_U32(sp + 24) = gp; -L41c31c: -// bdead 40000001 gp = MEM_U32(sp + 24); -a1 = MEM_U32(sp + 32); -//nop; -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41c334; -//nop; -L41c334: -// bdead 40000001 gp = MEM_U32(sp + 24); -a1 = MEM_U32(sp + 32); -//nop; -a0 = 0x1000a428; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41c34c; -//nop; -L41c34c: -// bdead 40000001 gp = MEM_U32(sp + 24); -a1 = MEM_U32(sp + 32); -//nop; -a0 = 0x1000a490; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41c364; -//nop; -L41c364: -// bdead 40000001 gp = MEM_U32(sp + 24); -a1 = MEM_U32(sp + 32); -//nop; -a0 = 0x1000a4a0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41c37c; -//nop; -L41c37c: -// bdead 40000001 gp = MEM_U32(sp + 24); -a1 = MEM_U32(sp + 32); -//nop; -a0 = 0x1000a4b0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41c394; -//nop; -L41c394: -// bdead 40000001 gp = MEM_U32(sp + 24); -a1 = MEM_U32(sp + 32); -//nop; -a0 = 0x1000a470; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41c3ac; -//nop; -L41c3ac: -// bdead 40000001 gp = MEM_U32(sp + 24); -a1 = MEM_U32(sp + 32); -//nop; -a0 = 0x1000a480; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41c3c4; -//nop; -L41c3c4: -// bdead 40000001 gp = MEM_U32(sp + 24); -a1 = MEM_U32(sp + 32); -//nop; -a0 = 0x1000a4c0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41c3dc; -//nop; -L41c3dc: -// bdead 40000001 gp = MEM_U32(sp + 24); -a1 = MEM_U32(sp + 32); -//nop; -a0 = 0x1000a4d0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41c3f4; -//nop; -L41c3f4: -// bdead 40000001 gp = MEM_U32(sp + 24); -a1 = MEM_U32(sp + 32); -//nop; -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41c40c; -//nop; -L41c40c: -// bdead 1 ra = MEM_U32(sp + 28); -// bdead 1 gp = MEM_U32(sp + 24); -// bdead 1 sp = sp + 0x20; -return; -// bdead 1 sp = sp + 0x20; -} - -static void f_parse_command(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L41c41c: -//parse_command: -//nop; -//nop; -//nop; -sp = sp + 0xfffffeb0; -MEM_U32(sp + 336) = a0; -a0 = 0x10002e14; -//nop; -// fdead 4000006b MEM_U32(sp + 68) = ra; -t6 = 0x1; -// fdead 4000806b MEM_U32(sp + 64) = gp; -MEM_U32(sp + 340) = a1; -// fdead 4000806b MEM_U32(sp + 60) = s5; -// fdead 4000806b MEM_U32(sp + 56) = s4; -// fdead 4000806b MEM_U32(sp + 52) = s3; -// fdead 4000806b MEM_U32(sp + 48) = s2; -// fdead 4000806b MEM_U32(sp + 44) = s1; -// fdead 4000806b MEM_U32(sp + 40) = s0; -MEM_U32(sp + 316) = zero; -MEM_U32(sp + 312) = zero; -MEM_U32(sp + 308) = zero; -MEM_U32(sp + 304) = t6; -a0 = a0; -v0 = wrapper_getenv(mem, a0); -goto L41c478; -a0 = a0; -L41c478: -MEM_U32(sp + 300) = v0; -t7 = MEM_U32(sp + 300); -// bdead 40010103 gp = MEM_U32(sp + 64); -if (t7 == 0) {at = 0x10000424; -goto L41c534;} -at = 0x10000424; -t8 = 0x1; -t9 = 0x10002e20; -MEM_U32(at + 0) = t8; -at = 0x1000a26c; -t9 = t9; -t0 = 0x10002e2c; -MEM_U32(at + 0) = t9; -at = 0x1000a27c; -t0 = t0; -MEM_U32(at + 0) = t0; -at = 0x100002d8; -t1 = 0x10002e30; -MEM_U32(at + 0) = zero; -at = 0x10000370; -t1 = t1; -MEM_U32(at + 0) = zero; -at = 0x10000348; -t2 = 0x10002e34; -MEM_U32(at + 0) = zero; -at = 0x10000324; -//nop; -MEM_U32(at + 0) = zero; -at = 0x10000318; -a0 = 0x10002e40; -MEM_U32(at + 0) = zero; -at = 0x10000384; -t2 = t2; -MEM_U32(at + 0) = zero; -at = 0x10000400; -a1 = zero; -MEM_U32(at + 0) = t1; -at = 0x10000340; -a2 = zero; -MEM_U32(at + 0) = zero; -at = 0x100003e0; -a0 = a0; -MEM_U32(at + 0) = zero; -at = 0x10000428; -MEM_U32(at + 0) = t2; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L41c52c; -MEM_U32(at + 0) = t2; -L41c52c: -// bdead 40000103 gp = MEM_U32(sp + 64); -//nop; -L41c534: -t3 = MEM_U32(sp + 336); -s0 = zero; -at = (int)s0 < (int)t3; -if (at == 0) {//nop; -goto L42a948;} -//nop; -L41c548: -t4 = MEM_U32(sp + 340); -t5 = s0 << 2; -t6 = t4 + t5; -t7 = MEM_U32(t6 + 0); -at = 0x2d; -t8 = MEM_U8(t7 + 0); -//nop; -if (t8 != at) {//nop; -goto L42a008;} -//nop; -t9 = s0 << 2; -t0 = t4 + t9; -t1 = MEM_U32(t0 + 0); -//nop; -t2 = MEM_U8(t1 + 1); -//nop; -t3 = t2 + 0xffffffdd; -at = t3 < 0x58; -if (at == 0) {//nop; -goto L42a880;} -//nop; -//nop; -//nop; -//nop; -//nop; -//nop; -;static void *const Lswitch100072ac[] = { -&&L41c5b0, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L428d3c, -&&L42a880, -&&L42a880, -&&L42a880, -&&L41c5e4, -&&L42a880, -&&L41c650, -&&L42a880, -&&L41c6c0, -&&L41c814, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L41c944, -&&L41cb38, -&&L41ccb8, -&&L41ce08, -&&L41d0ac, -&&L41d2a0, -&&L41d380, -&&L41d6b4, -&&L41d818, -&&L41da24, -&&L41da50, -&&L41e3b8, -&&L41e4cc, -&&L41e7e4, -&&L41e894, -&&L41edf0, -&&L41ee78, -&&L41eefc, -&&L41ef60, -&&L41f004, -&&L41f190, -&&L41f268, -&&L41f390, -&&L4200bc, -&&L42a880, -&&L428788, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42050c, -&&L420efc, -&&L42104c, -&&L421d84, -&&L42228c, -&&L422c78, -&&L423300, -&&L42341c, -&&L4237c0, -&&L423e54, -&&L423f4c, -&&L424190, -&&L424310, -&&L425040, -&&L425c48, -&&L4260fc, -&&L426af4, -&&L426b8c, -&&L426f60, -&&L428504, -&&L428e60, -&&L4292c8, -&&L4295c8, -&&L429e7c, -&&L429e30, -&&L429fbc, -}; -dest = Lswitch100072ac[t3]; -//nop; -goto *dest; -//nop; -L41c5b0: -t5 = 0x10002e54; -//nop; -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41c5d8; -MEM_U32(sp + 16) = zero; -L41c5d8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41c5e4: -t6 = 0x1000a36c; -at = 0x3; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L42a880;} -//nop; -t7 = MEM_U32(sp + 340); -t8 = s0 << 2; -t4 = t7 + t8; -t9 = MEM_U32(t4 + 0); -//nop; -t0 = MEM_U8(t9 + 2); -//nop; -if (t0 != 0) {at = 0x1000a154; -goto L42a880;} -at = 0x1000a154; -t1 = 0x1; -t2 = s0 << 2; -//nop; -t3 = t7 + t2; -MEM_U32(at + 0) = t1; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41c644; -//nop; -L41c644: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41c650: -t5 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10002e88; -//nop; -t8 = t5 + t6; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41c670; -a1 = a1; -L41c670: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L41c6a4;} -//nop; -t4 = MEM_U32(sp + 340); -t9 = s0 << 2; -t0 = t4 + t9; -//nop; -a1 = 0x10002e90; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41c69c; -a1 = a1; -L41c69c: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000310; -goto L42a934;} -L41c6a4: -at = 0x10000310; -t1 = 0x1; -MEM_U32(at + 0) = t1; -at = 0x100003e0; -t7 = 0x1; -MEM_U32(at + 0) = t7; -goto L42a934; -MEM_U32(at + 0) = t7; -L41c6c0: -t2 = 0x10002e94; -//nop; -t2 = t2; -MEM_U32(sp + 20) = t2; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41c6e8; -MEM_U32(sp + 16) = zero; -L41c6e8: -t3 = MEM_U32(sp + 340); -t5 = s0 << 2; -t6 = t3 + t5; -t8 = MEM_U32(t6 + 0); -// bdead 42020103 gp = MEM_U32(sp + 64); -t4 = MEM_U8(t8 + 2); -//nop; -if (t4 != 0) {//nop; -goto L42a880;} -//nop; -t9 = 0x1000027c; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L41c788;} -//nop; -t0 = 0x10000280; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L42a934;} -//nop; -t1 = 0x10002ea8; -//nop; -t1 = t1; -MEM_U32(sp + 20) = t1; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41c764; -MEM_U32(sp + 16) = zero; -L41c764: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41c77c; -//nop; -L41c77c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41c788: -t7 = 0x10000280; -a0 = 0x1000a25c; -t7 = MEM_U32(t7 + 0); -at = 0x10000280; -a1 = 0x10002ec8; -//nop; -a0 = MEM_U32(a0 + 0); -t2 = t7 + 0x1; -a2 = zero; -MEM_U32(at + 0) = t2; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41c7b8; -a1 = a1; -L41c7b8: -// bdead 4002000b gp = MEM_U32(sp + 64); -//nop; -t3 = 0x1000a1b4; -at = 0x10000084; -t3 = MEM_U32(t3 + 0); -MEM_U32(at + 0) = v0; -if (t3 == 0) {//nop; -goto L41c7f8;} -//nop; -a0 = 0x10002ed8; -//nop; -a1 = zero; -a2 = t3; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L41c7f0; -a0 = a0; -L41c7f0: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L41c7f8: -//nop; -//nop; -//nop; -f_newrunlib(mem, sp); -goto L41c808; -//nop; -L41c808: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41c814: -t5 = 0x1000a36c; -at = 0x3; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L41c884;} -//nop; -t6 = MEM_U32(sp + 340); -t8 = s0 << 2; -a1 = 0x10002edc; -//nop; -t4 = t6 + t8; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41c84c; -a1 = a1; -L41c84c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41c884;} -//nop; -t9 = MEM_U32(sp + 340); -t0 = s0 << 2; -t1 = t9 + t0; -//nop; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41c878; -//nop; -L41c878: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41c884: -t7 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x10002ee0; -//nop; -t3 = t7 + t2; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41c8a4; -a1 = a1; -L41c8a4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -t5 = 0x10002ee8; -//nop; -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41c8d8; -MEM_U32(sp + 16) = zero; -L41c8d8: -// bdead 40020103 gp = MEM_U32(sp + 64); -t6 = 0x1; -t8 = 0x10000300; -at = 0x10000308; -t8 = MEM_U32(t8 + 0); -MEM_U32(at + 0) = t6; -if (t8 == 0) {//nop; -goto L42a934;} -//nop; -t4 = 0x10002f18; -//nop; -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41c920; -MEM_U32(sp + 16) = zero; -L41c920: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41c938; -//nop; -L41c938: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41c944: -t9 = MEM_U32(sp + 340); -t0 = s0 << 2; -t1 = t9 + t0; -t7 = MEM_U32(t1 + 0); -//nop; -t2 = MEM_U8(t7 + 2); -//nop; -if (t2 != 0) {//nop; -goto L41ca08;} -//nop; -t3 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t3; -if (at == 0) {//nop; -goto L41c9c0;} -//nop; -a1 = 0x10002f40; -//nop; -a0 = 0x1000a540; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41c990; -a1 = a1; -L41c990: -// bdead 40020003 gp = MEM_U32(sp + 64); -t5 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t8 = t5 + t6; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41c9b4; -//nop; -L41c9b4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41c9c0: -t4 = 0x10002f44; -//nop; -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41c9e8; -MEM_U32(sp + 16) = zero; -L41c9e8: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41ca00; -//nop; -L41ca00: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L41ca08: -t9 = MEM_U32(sp + 340); -t0 = s0 << 2; -t1 = t9 + t0; -//nop; -a1 = 0x10002f68; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41ca28; -a1 = a1; -L41ca28: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41ca94;} -//nop; -t7 = MEM_U32(sp + 340); -t2 = s0 << 2; -//nop; -t3 = t7 + t2; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a448; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ca54; -//nop; -L41ca54: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x10000400; -a1 = 0x10002f74; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41ca74; -a1 = a1; -L41ca74: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42a934;} -//nop; -t5 = 0x10002f78; -at = 0x10000400; -t5 = t5; -MEM_U32(at + 0) = t5; -goto L42a934; -MEM_U32(at + 0) = t5; -L41ca94: -t6 = MEM_U32(sp + 340); -t8 = s0 << 2; -t4 = t6 + t8; -t9 = MEM_U32(t4 + 0); -at = 0x41; -t0 = MEM_U8(t9 + 1); -//nop; -if (t0 != at) {//nop; -goto L41cae0;} -//nop; -t1 = s0 << 2; -//nop; -t7 = t6 + t1; -a1 = MEM_U32(t7 + 0); -a0 = 0x1000a270; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41cad4; -//nop; -L41cad4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41cae0: -t2 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x10002f7c; -//nop; -t5 = t2 + t3; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41cb00; -a1 = a1; -L41cb00: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -t8 = MEM_U32(sp + 340); -t4 = s0 << 2; -t9 = t8 + t4; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a270; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41cb2c; -//nop; -L41cb2c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41cb38: -t0 = MEM_U32(sp + 340); -t6 = s0 << 2; -t1 = t0 + t6; -t7 = MEM_U32(t1 + 0); -//nop; -t2 = MEM_U8(t7 + 2); -//nop; -if (t2 != 0) {//nop; -goto L41cc48;} -//nop; -t3 = MEM_U32(sp + 336); -//nop; -t5 = t3 + 0xffffffff; -at = (int)s0 < (int)t5; -if (at == 0) {//nop; -goto L41cc48;} -//nop; -t8 = s0 << 2; -a1 = 0x10002f80; -//nop; -t4 = t0 + t8; -a0 = MEM_U32(t4 + 4); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41cb90; -a1 = a1; -L41cb90: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L41cbf4;} -//nop; -t9 = MEM_U32(sp + 340); -t6 = s0 << 2; -t1 = t9 + t6; -//nop; -a1 = 0x10002f88; -a0 = MEM_U32(t1 + 4); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41cbbc; -a1 = a1; -L41cbbc: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L41cbf4;} -//nop; -t7 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x10002f90; -//nop; -t3 = t7 + t2; -a0 = MEM_U32(t3 + 4); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41cbe8; -a1 = a1; -L41cbe8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41cc48;} -//nop; -L41cbf4: -t5 = MEM_U32(sp + 340); -t0 = s0 << 2; -//nop; -t8 = t5 + t0; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41cc14; -//nop; -L41cc14: -t4 = MEM_U32(sp + 340); -s0 = s0 + 0x1; -// bdead 40022003 gp = MEM_U32(sp + 64); -t9 = s0 << 2; -t6 = t4 + t9; -//nop; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41cc3c; -//nop; -L41cc3c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41cc48: -at = 0x1000027c; -t7 = MEM_U32(sp + 340); -t1 = 0x1; -t2 = s0 << 2; -MEM_U32(at + 0) = t1; -t3 = t7 + t2; -t5 = MEM_U32(t3 + 0); -a0 = 0x1000a1ac; -a1 = 0x1000a1b0; -//nop; -t0 = t5 + 0x2; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 0); -MEM_U32(sp + 296) = t0; -a2 = t0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L41cc88; -a2 = t0; -L41cc88: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -t8 = 0x1000a1ac; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L42a934;} -//nop; -t4 = MEM_U32(sp + 296); -at = 0x1000a1b4; -MEM_U32(at + 0) = t4; -goto L42a934; -MEM_U32(at + 0) = t4; -L41ccb8: -t9 = MEM_U32(sp + 340); -t6 = s0 << 2; -t1 = t9 + t6; -t7 = MEM_U32(t1 + 0); -//nop; -t2 = MEM_U8(t7 + 2); -//nop; -if (t2 != 0) {//nop; -goto L41cda4;} -//nop; -t3 = 0x1000a36c; -at = 0x3; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L41cd1c;} -//nop; -t5 = s0 << 2; -t0 = t9 + t5; -//nop; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41cd10; -//nop; -L41cd10: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41cd1c: -t8 = 0x1000a36c; -at = 0x2; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L41cd60;} -//nop; -t4 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t1 = t4 + t6; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a320; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41cd54; -//nop; -L41cd54: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41cd60: -t7 = 0x1000a36c; -at = 0x1; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L41cda4;} -//nop; -t2 = MEM_U32(sp + 340); -t3 = s0 << 2; -t9 = t2 + t3; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a270; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41cd98; -//nop; -L41cd98: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41cda4: -t5 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x10002f9c; -//nop; -t8 = t5 + t0; -a0 = MEM_U32(t8 + 0); -a2 = 0x5; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L41cdc8; -a1 = a1; -L41cdc8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -t4 = 0x10002fa8; -//nop; -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41cdfc; -MEM_U32(sp + 16) = zero; -L41cdfc: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41ce08: -t6 = MEM_U32(sp + 340); -t1 = s0 << 2; -t7 = t6 + t1; -t2 = MEM_U32(t7 + 0); -//nop; -t3 = MEM_U8(t2 + 2); -//nop; -if (t3 != 0) {//nop; -goto L41d060;} -//nop; -t9 = 0x10000420; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L41cea4;} -//nop; -t5 = s0 << 2; -a0 = 0x10002fc8; -//nop; -t0 = t6 + t5; -a1 = MEM_U32(t0 + 4); -a0 = a0; -v0 = wrapper_strcat(mem, a0, a1); -goto L41ce60; -a0 = a0; -L41ce60: -// bdead 4002000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a260; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41ce78; -a1 = s4; -L41ce78: -// bdead 40020003 gp = MEM_U32(sp + 64); -t8 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t1 = t8 + t4; -a0 = MEM_U32(t1 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L41ce98; -//nop; -L41ce98: -// bdead 40020103 gp = MEM_U32(sp + 64); -s0 = s0 + 0x1; -goto L42a934; -s0 = s0 + 0x1; -L41cea4: -t7 = MEM_U32(sp + 336); -t2 = s0 + 0x1; -at = (int)t2 < (int)t7; -if (at == 0) {//nop; -goto L41cfc0;} -//nop; -t3 = MEM_U32(sp + 340); -t9 = s0 << 2; -t6 = t3 + t9; -//nop; -a0 = MEM_U32(t6 + 4); -a1 = sp + 0x120; -a2 = 0x10; -v0 = wrapper_strtoul(mem, a0, a1, a2); -goto L41ced8; -a2 = 0x10; -L41ced8: -// bdead 4002000b gp = MEM_U32(sp + 64); -t5 = MEM_U32(sp + 340); -t0 = s0 << 2; -//nop; -MEM_U32(sp + 292) = v0; -t8 = t5 + t0; -a0 = MEM_U32(t8 + 4); -//nop; -v0 = wrapper_strlen(mem, a0); -goto L41cefc; -//nop; -L41cefc: -t4 = MEM_U32(sp + 340); -t1 = s0 << 2; -t7 = t4 + t1; -t2 = MEM_U32(t7 + 4); -t3 = MEM_U32(sp + 288); -// bdead 4002380b gp = MEM_U32(sp + 64); -t9 = t3 - t2; -if (v0 != t9) {//nop; -goto L41cf8c;} -//nop; -t6 = MEM_U32(sp + 292); -//nop; -if (t6 != 0) {//nop; -goto L41cf48;} -//nop; -t5 = s0 << 2; -t0 = t4 + t5; -t8 = MEM_U32(t0 + 4); -//nop; -if (t8 == t3) {//nop; -goto L41cf8c;} -//nop; -L41cf48: -t1 = MEM_U32(sp + 340); -t7 = s0 << 2; -t2 = t1 + t7; -t9 = MEM_U32(t2 + 4); -at = 0x2d; -t6 = MEM_U8(t9 + 0); -//nop; -if (t6 == at) {//nop; -goto L41cf8c;} -//nop; -t4 = s0 << 2; -t5 = t1 + t4; -t0 = MEM_U32(t5 + 4); -at = 0x2b; -t8 = MEM_U8(t0 + 0); -//nop; -if (t8 != at) {//nop; -goto L41cfc0;} -//nop; -L41cf8c: -t3 = 0x10002fcc; -//nop; -t3 = t3; -MEM_U32(sp + 20) = t3; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41cfb4; -MEM_U32(sp + 16) = zero; -L41cfb4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41cfc0: -t7 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t7; -if (at == 0) {//nop; -goto L41d018;} -//nop; -a1 = 0x10002ffc; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41cfe8; -a1 = a1; -L41cfe8: -t2 = MEM_U32(sp + 340); -// bdead 40020803 gp = MEM_U32(sp + 64); -t9 = s0 << 2; -t6 = t2 + t9; -//nop; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41d00c; -//nop; -L41d00c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41d018: -t1 = 0x10003000; -//nop; -t1 = t1; -MEM_U32(sp + 20) = t1; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41d040; -MEM_U32(sp + 16) = zero; -L41d040: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41d058; -//nop; -L41d058: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L41d060: -t4 = MEM_U32(sp + 340); -t5 = s0 << 2; -//nop; -t0 = t4 + t5; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a260; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41d080; -//nop; -L41d080: -// bdead 40020003 gp = MEM_U32(sp + 64); -t8 = MEM_U32(sp + 340); -t3 = s0 << 2; -//nop; -t7 = t8 + t3; -a0 = MEM_U32(t7 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L41d0a0; -//nop; -L41d0a0: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41d0ac: -t2 = MEM_U32(sp + 340); -t9 = s0 << 2; -t6 = t2 + t9; -t1 = MEM_U32(t6 + 0); -//nop; -t4 = MEM_U8(t1 + 2); -//nop; -if (t4 != 0) {//nop; -goto L41d0f4;} -//nop; -t5 = 0x10000214; -at = 0x10000214; -t5 = MEM_U32(t5 + 0); -t8 = 0x1; -t0 = t5 + 0x1; -MEM_U32(at + 0) = t0; -at = 0x1000a1a0; -MEM_U32(at + 0) = t8; -goto L42a934; -MEM_U32(at + 0) = t8; -L41d0f4: -t3 = MEM_U32(sp + 340); -t7 = s0 << 2; -t2 = t3 + t7; -t9 = MEM_U32(t2 + 0); -//nop; -t6 = MEM_U8(t9 + 3); -//nop; -if (t6 != 0) {//nop; -goto L42a880;} -//nop; -t1 = s0 << 2; -t4 = t3 + t1; -t5 = MEM_U32(t4 + 0); -at = 0x42; -t0 = MEM_U8(t5 + 2); -//nop; -if (t0 == at) {//nop; -goto L41d158;} -//nop; -t8 = s0 << 2; -t7 = t3 + t8; -t2 = MEM_U32(t7 + 0); -at = 0x4c; -t9 = MEM_U8(t2 + 2); -//nop; -if (t9 != at) {//nop; -goto L42a880;} -//nop; -L41d158: -t6 = MEM_U32(sp + 340); -t1 = s0 << 2; -t4 = t6 + t1; -t5 = MEM_U32(t4 + 0); -at = 0x42; -t0 = MEM_U8(t5 + 2); -//nop; -if (t0 != at) {//nop; -goto L41d200;} -//nop; -t3 = 0x1000027c; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L41d1f4;} -//nop; -t8 = 0x1000041c; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L41d1f4;} -//nop; -t7 = 0x10003024; -//nop; -t7 = t7; -MEM_U32(sp + 20) = t7; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41d1d4; -MEM_U32(sp + 16) = zero; -L41d1d4: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41d1ec; -//nop; -L41d1ec: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L41d1f4: -at = 0x1000041c; -MEM_U32(at + 0) = zero; -goto L41d284; -MEM_U32(at + 0) = zero; -L41d200: -t2 = 0x1000027c; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L41d278;} -//nop; -t9 = 0x1000041c; -at = 0x1; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == at) {//nop; -goto L41d278;} -//nop; -t6 = 0x1000304c; -//nop; -t6 = t6; -MEM_U32(sp + 20) = t6; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41d258; -MEM_U32(sp + 16) = zero; -L41d258: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41d270; -//nop; -L41d270: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L41d278: -at = 0x1000041c; -t1 = 0x1; -MEM_U32(at + 0) = t1; -L41d284: -//nop; -//nop; -//nop; -f_newrunlib(mem, sp); -goto L41d294; -//nop; -L41d294: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41d2a0: -t4 = MEM_U32(sp + 340); -t5 = s0 << 2; -t0 = t4 + t5; -t3 = MEM_U32(t0 + 0); -//nop; -t8 = MEM_U8(t3 + 2); -//nop; -if (t8 != 0) {//nop; -goto L42a880;} -//nop; -t7 = 0x1000a36c; -at = 0x3; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L41d2f8;} -//nop; -t2 = 0x1000026c; -at = 0x1000026c; -t2 = MEM_U32(t2 + 0); -//nop; -t9 = t2 + 0x1; -MEM_U32(at + 0) = t9; -goto L42a934; -MEM_U32(at + 0) = t9; -L41d2f8: -t6 = 0x1000a36c; -at = 0x1; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L41d354;} -//nop; -t1 = 0x10000008; -at = 0x2; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == at) {at = 0x3; -goto L41d32c;} -at = 0x3; -if (t1 != at) {at = 0x10000228; -goto L41d354;} -L41d32c: -at = 0x10000228; -t4 = 0x1; -MEM_U32(at + 0) = t4; -at = 0x1000026c; -t5 = 0x1; -MEM_U32(at + 0) = t5; -at = 0x1000a184; -t0 = 0x1; -MEM_U32(at + 0) = t0; -goto L42a934; -MEM_U32(at + 0) = t0; -L41d354: -t3 = MEM_U32(sp + 340); -t8 = s0 << 2; -//nop; -t7 = t3 + t8; -a1 = MEM_U32(t7 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41d374; -//nop; -L41d374: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41d380: -t2 = MEM_U32(sp + 340); -t9 = s0 << 2; -t6 = t2 + t9; -//nop; -a1 = 0x10003074; -a0 = MEM_U32(t6 + 0); -a2 = 0x5; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L41d3a4; -a1 = a1; -L41d3a4: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41d3e4;} -//nop; -t1 = 0x1000307c; -//nop; -t1 = t1; -MEM_U32(sp + 20) = t1; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41d3d8; -MEM_U32(sp + 16) = zero; -L41d3d8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41d3e4: -t4 = MEM_U32(sp + 340); -t5 = s0 << 2; -t0 = t4 + t5; -t3 = MEM_U32(t0 + 0); -//nop; -t8 = MEM_U8(t3 + 2); -//nop; -if (t8 != 0) {//nop; -goto L41d560;} -//nop; -t7 = 0x10000420; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L41d4b8;} -//nop; -t2 = 0x100003f4; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L41d480;} -//nop; -t9 = 0x10003098; -a0 = 0x1; -t9 = t9; -MEM_U32(sp + 20) = t9; -//nop; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41d460; -MEM_U32(sp + 16) = zero; -L41d460: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41d478; -//nop; -L41d478: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L41d480: -at = 0x100003f0; -t1 = MEM_U32(sp + 340); -t6 = 0x1; -t4 = s0 << 2; -//nop; -MEM_U32(at + 0) = t6; -t5 = t1 + t4; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41d4ac; -//nop; -L41d4ac: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41d4b8: -t0 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t0; -if (at != 0) {//nop; -goto L41d514;} -//nop; -t3 = 0x100030b8; -//nop; -t3 = t3; -MEM_U32(sp + 20) = t3; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41d4f4; -MEM_U32(sp + 16) = zero; -L41d4f4: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41d50c; -//nop; -L41d50c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -L41d514: -t8 = 0x10000230; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -at = (int)t8 < (int)0x3; -if (at == 0) {//nop; -goto L41d54c;} -//nop; -t7 = MEM_U32(sp + 340); -t2 = s0 << 2; -t9 = t7 + t2; -t6 = MEM_U32(t9 + 0); -at = 0x10000400; -MEM_U32(at + 0) = t6; -goto L41d5c4; -MEM_U32(at + 0) = t6; -L41d54c: -t1 = 0x100030e0; -at = 0x10000400; -t1 = t1; -MEM_U32(at + 0) = t1; -goto L41d5c4; -MEM_U32(at + 0) = t1; -L41d560: -t4 = 0x10000420; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L42a934;} -//nop; -t5 = 0x10000230; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -at = (int)t5 < (int)0x3; -if (at == 0) {//nop; -goto L41d5b4;} -//nop; -t0 = MEM_U32(sp + 340); -t3 = s0 << 2; -t8 = t0 + t3; -t7 = MEM_U32(t8 + 0); -at = 0x10000400; -t2 = t7 + 0x2; -MEM_U32(at + 0) = t2; -goto L41d5c4; -MEM_U32(at + 0) = t2; -L41d5b4: -t9 = 0x100030e4; -at = 0x10000400; -t9 = t9; -MEM_U32(at + 0) = t9; -L41d5c4: -s2 = 0x10000400; -//nop; -s2 = MEM_U32(s2 + 0); -//nop; -t6 = MEM_U8(s2 + 0); -//nop; -if (t6 == 0) {//nop; -goto L41d66c;} -//nop; -L41d5e4: -t1 = MEM_U8(s2 + 0); -t4 = 0xfb504f0; -//nop; -t5 = t1 + t4; -t0 = MEM_U8(t5 + 1); -//nop; -t3 = t0 & 0x4; -if (t3 != 0) {//nop; -goto L41d65c;} -//nop; -t7 = 0x10000400; -t8 = 0x100030e8; -//nop; -t7 = MEM_U32(t7 + 0); -t8 = t8; -MEM_U32(sp + 20) = t8; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t7; -f_error(mem, sp, a0, a1, a2, a3); -goto L41d63c; -MEM_U32(sp + 24) = t7; -L41d63c: -// bdead 400a0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41d654; -//nop; -L41d654: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -L41d65c: -t2 = MEM_U8(s2 + 1); -s2 = s2 + 0x1; -if (t2 != 0) {//nop; -goto L41d5e4;} -//nop; -L41d66c: -t9 = 0x10000328; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L42a934;} -//nop; -a0 = 0x1000a1ac; -a1 = 0x1000a1b0; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 0); -a2 = zero; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L41d6a0; -a2 = zero; -L41d6a0: -// bdead 40020103 gp = MEM_U32(sp + 64); -t6 = 0x1; -at = 0x10000328; -MEM_U32(at + 0) = t6; -goto L42a934; -MEM_U32(at + 0) = t6; -L41d6b4: -t1 = MEM_U32(sp + 340); -t4 = s0 << 2; -t5 = t1 + t4; -t0 = MEM_U32(t5 + 0); -//nop; -t3 = MEM_U8(t0 + 2); -//nop; -if (t3 != 0) {//nop; -goto L41d718;} -//nop; -t8 = s0 << 2; -//nop; -t7 = t1 + t8; -a1 = MEM_U32(t7 + 0); -a0 = 0x1000a270; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41d6f4; -//nop; -L41d6f4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -t2 = 0x10000214; -at = 0x10000214; -t2 = MEM_U32(t2 + 0); -//nop; -t9 = t2 + 0x1; -MEM_U32(at + 0) = t9; -goto L42a934; -MEM_U32(at + 0) = t9; -L41d718: -t6 = MEM_U32(sp + 340); -t4 = s0 << 2; -t5 = t6 + t4; -t0 = MEM_U32(t5 + 0); -//nop; -t3 = MEM_U8(t0 + 3); -//nop; -if (t3 != 0) {//nop; -goto L42a880;} -//nop; -t1 = MEM_U32(sp + 340); -t8 = s0 << 2; -t7 = t1 + t8; -t2 = MEM_U32(t7 + 0); -at = 0x1000a1e6; -s2 = 0x10003108; -t9 = MEM_U8(t2 + 2); -s2 = s2; -MEM_U8(at + 0) = (uint8_t)t9; -t6 = MEM_U8(s2 + 0); -//nop; -if (t6 == 0) {//nop; -goto L41d7a8;} -//nop; -t4 = MEM_U8(s2 + 0); -//nop; -if (t4 == t9) {//nop; -goto L41d7a8;} -//nop; -L41d780: -t5 = MEM_U8(s2 + 1); -s2 = s2 + 0x1; -if (t5 == 0) {//nop; -goto L41d7a8;} -//nop; -t3 = 0x1000a1e6; -t0 = MEM_U8(s2 + 0); -t3 = MEM_U8(t3 + 0); -//nop; -if (t0 != t3) {//nop; -goto L41d780;} -//nop; -L41d7a8: -t1 = MEM_U8(s2 + 0); -//nop; -if (t1 != 0) {//nop; -goto L42a934;} -//nop; -t8 = 0x10003118; -t7 = MEM_U32(sp + 340); -t2 = s0 << 2; -t8 = t8; -MEM_U32(sp + 20) = t8; -MEM_U32(sp + 16) = zero; -t6 = t7 + t2; -t4 = MEM_U32(t6 + 0); -//nop; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t4; -f_error(mem, sp, a0, a1, a2, a3); -goto L41d7f4; -MEM_U32(sp + 24) = t4; -L41d7f4: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41d80c; -//nop; -L41d80c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41d818: -t9 = MEM_U32(sp + 340); -t5 = s0 << 2; -t0 = t9 + t5; -t3 = MEM_U32(t0 + 0); -//nop; -t1 = MEM_U8(t3 + 2); -//nop; -if (t1 != 0) {//nop; -goto L41d978;} -//nop; -t8 = s0 << 2; -t7 = t9 + t8; -t2 = MEM_U32(t7 + 4); -//nop; -if (t2 == 0) {//nop; -goto L41d874;} -//nop; -t6 = s0 << 2; -t4 = t9 + t6; -t5 = MEM_U32(t4 + 4); -at = 0x2d; -t0 = MEM_U8(t5 + 0); -//nop; -if (t0 == at) {//nop; -goto L41d89c;} -//nop; -L41d874: -t3 = MEM_U32(sp + 340); -t1 = s0 << 2; -//nop; -t8 = t3 + t1; -a0 = MEM_U32(t8 + 4); -//nop; -v0 = f_isdir(mem, sp, a0); -goto L41d890; -//nop; -L41d890: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41d8b8;} -//nop; -L41d89c: -t7 = 0x10000288; -at = 0x10000288; -t7 = MEM_U32(t7 + 0); -//nop; -t2 = t7 + 0x1; -MEM_U32(at + 0) = t2; -goto L42a934; -MEM_U32(at + 0) = t2; -L41d8b8: -t9 = MEM_U32(sp + 340); -s0 = s0 + 0x1; -t6 = s0 << 2; -t4 = t9 + t6; -//nop; -a0 = 0x10003134; -a1 = MEM_U32(t4 + 0); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41d8e0; -a0 = a0; -L41d8e0: -// bdead 4002000b gp = MEM_U32(sp + 64); -MEM_U32(sp + 284) = v0; -//nop; -a1 = MEM_U32(sp + 284); -a0 = 0x1000a270; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41d8fc; -//nop; -L41d8fc: -// bdead 40020003 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 284); -//nop; -a0 = 0x1000a2d0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41d914; -//nop; -L41d914: -// bdead 40020003 gp = MEM_U32(sp + 64); -t5 = MEM_U32(sp + 340); -t0 = s0 << 2; -//nop; -t3 = t5 + t0; -a0 = MEM_U32(t3 + 0); -//nop; -v0 = f_full_path(mem, sp, a0); -goto L41d934; -//nop; -L41d934: -// bdead 4002010b gp = MEM_U32(sp + 64); -s5 = v0; -a0 = 0x10003138; -//nop; -a1 = s5; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41d954; -a0 = a0; -L41d954: -// bdead 4002000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = s4; -//nop; -f_add_static_opt(mem, sp, a0); -goto L41d96c; -//nop; -L41d96c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41d978: -t1 = MEM_U32(sp + 340); -t8 = s0 << 2; -//nop; -t7 = t1 + t8; -a1 = MEM_U32(t7 + 0); -a0 = 0x1000a270; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41d998; -//nop; -L41d998: -t2 = MEM_U32(sp + 340); -// bdead 40020803 gp = MEM_U32(sp + 64); -t9 = s0 << 2; -t6 = t2 + t9; -//nop; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a2d0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41d9bc; -//nop; -L41d9bc: -t4 = MEM_U32(sp + 340); -// bdead 40022003 gp = MEM_U32(sp + 64); -t5 = s0 << 2; -t0 = t4 + t5; -a0 = MEM_U32(t0 + 0); -//nop; -a0 = a0 + 0x2; -//nop; -v0 = f_full_path(mem, sp, a0); -goto L41d9e0; -//nop; -L41d9e0: -// bdead 4002010b gp = MEM_U32(sp + 64); -s5 = v0; -a0 = 0x1000313c; -//nop; -a1 = s5; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41da00; -a0 = a0; -L41da00: -// bdead 4002000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = s4; -//nop; -f_add_static_opt(mem, sp, a0); -goto L41da18; -//nop; -L41da18: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41da24: -t3 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x10003140; -//nop; -t8 = t3 + t1; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41da44; -a1 = a1; -L41da44: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42a934;} -//nop; -L41da50: -t7 = 0x10000420; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L41de60;} -//nop; -t2 = MEM_U32(sp + 340); -t9 = s0 << 2; -t6 = t2 + t9; -t4 = MEM_U32(t6 + 0); -at = 0x1000a1dc; -t5 = t4 + 0x2; -MEM_U32(at + 0) = t5; -t0 = MEM_U8(t5 + 0); -//nop; -if (t0 != 0) {//nop; -goto L41daac;} -//nop; -t3 = s0 << 2; -t1 = t2 + t3; -t8 = MEM_U32(t1 + 0); -at = 0x1000a1dc; -t7 = t8 + 0x3; -MEM_U32(at + 0) = t7; -L41daac: -t9 = 0x1000a1dc; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -t6 = MEM_U8(t9 + 0); -//nop; -if (t6 != 0) {at = 0x2c; -goto L41dad4;} -at = 0x2c; -if (t6 != at) {//nop; -goto L42a934;} -//nop; -L41dad4: -s2 = 0x1000a1dc; -at = 0x1000a1a8; -s2 = MEM_U32(s2 + 0); -MEM_U32(at + 0) = zero; -t4 = MEM_U8(s2 + 0); -at = 0x2c; -if (t4 == at) {//nop; -goto L41db50;} -//nop; -t5 = MEM_U8(s2 + 0); -//nop; -if (t5 == 0) {//nop; -goto L41db50;} -//nop; -L41db04: -t2 = 0x1000a1a8; -t3 = 0x1000a1e0; -t2 = MEM_U32(t2 + 0); -t0 = MEM_U8(s2 + 0); -t8 = 0x1000a1a8; -t1 = t2 + t3; -MEM_U8(t1 + 0) = (uint8_t)t0; -t8 = MEM_U32(t8 + 0); -at = 0x1000a1a8; -t7 = t8 + 0x1; -MEM_U32(at + 0) = t7; -t9 = MEM_U8(s2 + 1); -at = 0x2c; -if (t9 == at) {s2 = s2 + 0x1; -goto L41db50;} -s2 = s2 + 0x1; -t6 = MEM_U8(s2 + 0); -//nop; -if (t6 != 0) {//nop; -goto L41db04;} -//nop; -L41db50: -at = 0x1000a1dc; -a1 = 0x10003148; -//nop; -a0 = 0x1000a1e0; -a2 = 0x6; -MEM_U32(at + 0) = s2; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L41db70; -a1 = a1; -L41db70: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x100002cc; -goto L41db88;} -at = 0x100002cc; -t4 = 0x1; -MEM_U32(at + 0) = t4; -goto L41dd28; -MEM_U32(at + 0) = t4; -L41db88: -a1 = 0x10003150; -//nop; -a0 = 0x1000a1e0; -a2 = 0x3; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L41dba0; -a1 = a1; -L41dba0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41dbcc;} -//nop; -a1 = 0x10003154; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41dbc0; -a1 = a1; -L41dbc0: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -goto L41dd28; -//nop; -L41dbcc: -a1 = 0x1000315c; -//nop; -a0 = 0x1000a1e0; -a2 = 0x2; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L41dbe4; -a1 = a1; -L41dbe4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41dc10;} -//nop; -a1 = 0x10003160; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41dc04; -a1 = a1; -L41dc04: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -goto L41dd28; -//nop; -L41dc10: -a1 = 0x10003168; -//nop; -a0 = 0x1000a1e0; -a2 = 0x2; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L41dc28; -a1 = a1; -L41dc28: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41dc54;} -//nop; -a1 = 0x1000316c; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41dc48; -a1 = a1; -L41dc48: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -goto L41dd28; -//nop; -L41dc54: -a1 = 0x10003174; -//nop; -a0 = 0x1000a1e0; -a2 = 0x3; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L41dc6c; -a1 = a1; -L41dc6c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41dc98;} -//nop; -a1 = 0x10003178; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41dc8c; -a1 = a1; -L41dc8c: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -goto L41dd28; -//nop; -L41dc98: -a1 = 0x10003180; -//nop; -a0 = 0x1000a1e0; -a2 = 0x3; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L41dcb0; -a1 = a1; -L41dcb0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -t5 = 0x10000324; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L41dd10;} -//nop; -t2 = 0x10003184; -//nop; -t2 = t2; -MEM_U32(sp + 20) = t2; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41dcfc; -MEM_U32(sp + 16) = zero; -L41dcfc: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -at = 0x10000340; -MEM_U32(at + 0) = zero; -goto L41dd28; -MEM_U32(at + 0) = zero; -L41dd10: -at = 0x10000340; -t3 = 0x1; -MEM_U32(at + 0) = t3; -at = 0x10000344; -t0 = 0x1; -MEM_U32(at + 0) = t0; -L41dd28: -at = 0x1000a1a8; -//nop; -a0 = 0x1000a1e0; -MEM_U32(at + 0) = zero; -v0 = wrapper_strlen(mem, a0); -goto L41dd3c; -MEM_U32(at + 0) = zero; -L41dd3c: -// bdead 4002010b gp = MEM_U32(sp + 64); -//nop; -t1 = 0x1000a1a8; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -at = t1 < v0; -if (at == 0) {//nop; -goto L41ddbc;} -//nop; -L41dd60: -t7 = 0x1000a1a8; -t9 = 0x1000a1e0; -t7 = MEM_U32(t7 + 0); -t4 = 0x1000a1a8; -t8 = 0x20; -t6 = t7 + t9; -MEM_U8(t6 + 0) = (uint8_t)t8; -t4 = MEM_U32(t4 + 0); -//nop; -at = 0x1000a1a8; -a0 = 0x1000a1e0; -t5 = t4 + 0x1; -MEM_U32(at + 0) = t5; -v0 = wrapper_strlen(mem, a0); -goto L41dd98; -MEM_U32(at + 0) = t5; -L41dd98: -// bdead 4002010b gp = MEM_U32(sp + 64); -//nop; -t2 = 0x1000a1a8; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -at = t2 < v0; -if (at != 0) {//nop; -goto L41dd60;} -//nop; -L41ddbc: -t3 = 0x1000a1dc; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L41de2c;} -//nop; -t0 = MEM_U8(t3 + 0); -at = 0x2c; -if (t0 != at) {//nop; -goto L41de2c;} -//nop; -if (t0 == 0) {//nop; -goto L41de2c;} -//nop; -L41ddec: -t1 = 0x1000a1dc; -at = 0x1000a1dc; -t1 = MEM_U32(t1 + 0); -t9 = 0x1000a1dc; -t7 = t1 + 0x1; -MEM_U32(at + 0) = t7; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L41de2c;} -//nop; -t8 = MEM_U8(t9 + 0); -at = 0x2c; -if (t8 != at) {//nop; -goto L41de2c;} -//nop; -if (t8 != 0) {//nop; -goto L41ddec;} -//nop; -L41de2c: -t6 = 0x1000a1dc; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -t4 = MEM_U8(t6 + 0); -//nop; -if (t4 != 0) {//nop; -goto L41dad4;} -//nop; -at = 0x2c; -if (t4 == at) {//nop; -goto L41dad4;} -//nop; -//nop; -goto L42a934; -//nop; -L41de60: -t5 = 0x10000370; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L41e290;} -//nop; -t2 = MEM_U32(sp + 340); -t3 = s0 << 2; -t0 = t2 + t3; -t1 = MEM_U32(t0 + 0); -at = 0x1000a1dc; -t7 = t1 + 0x2; -MEM_U32(at + 0) = t7; -t9 = MEM_U8(t7 + 0); -//nop; -if (t9 != 0) {//nop; -goto L41dedc;} -//nop; -t8 = 0x10000240; -at = 0x10000240; -t8 = MEM_U32(t8 + 0); -t4 = s0 << 2; -t6 = t8 + 0x1; -//nop; -t5 = t2 + t4; -MEM_U32(at + 0) = t6; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ded4; -//nop; -L41ded4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -L41dedc: -t3 = 0x1000a1dc; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -t0 = MEM_U8(t3 + 0); -//nop; -if (t0 != 0) {at = 0x2c; -goto L41df04;} -at = 0x2c; -if (t0 != at) {//nop; -goto L42a934;} -//nop; -L41df04: -s2 = 0x1000a1dc; -at = 0x1000a1a8; -s2 = MEM_U32(s2 + 0); -MEM_U32(at + 0) = zero; -t1 = MEM_U8(s2 + 0); -at = 0x2c; -if (t1 == at) {//nop; -goto L41df80;} -//nop; -t7 = MEM_U8(s2 + 0); -//nop; -if (t7 == 0) {//nop; -goto L41df80;} -//nop; -L41df34: -t8 = 0x1000a1a8; -t6 = 0x1000a1e0; -t8 = MEM_U32(t8 + 0); -t9 = MEM_U8(s2 + 0); -t4 = 0x1000a1a8; -t2 = t8 + t6; -MEM_U8(t2 + 0) = (uint8_t)t9; -t4 = MEM_U32(t4 + 0); -at = 0x1000a1a8; -t5 = t4 + 0x1; -MEM_U32(at + 0) = t5; -t3 = MEM_U8(s2 + 1); -at = 0x2c; -if (t3 == at) {s2 = s2 + 0x1; -goto L41df80;} -s2 = s2 + 0x1; -t0 = MEM_U8(s2 + 0); -//nop; -if (t0 != 0) {//nop; -goto L41df34;} -//nop; -L41df80: -at = 0x1000a1dc; -a1 = 0x100031bc; -//nop; -a0 = 0x1000a1e0; -a2 = 0x6; -MEM_U32(at + 0) = s2; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L41dfa0; -a1 = a1; -L41dfa0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x100002cc; -goto L41dfb8;} -at = 0x100002cc; -t1 = 0x1; -MEM_U32(at + 0) = t1; -goto L41e158; -MEM_U32(at + 0) = t1; -L41dfb8: -a1 = 0x100031c4; -//nop; -a0 = 0x1000a1e0; -a2 = 0x3; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L41dfd0; -a1 = a1; -L41dfd0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41dffc;} -//nop; -a1 = 0x100031c8; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41dff0; -a1 = a1; -L41dff0: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -goto L41e158; -//nop; -L41dffc: -a1 = 0x100031d0; -//nop; -a0 = 0x1000a1e0; -a2 = 0x2; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L41e014; -a1 = a1; -L41e014: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41e040;} -//nop; -a1 = 0x100031d4; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41e034; -a1 = a1; -L41e034: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -goto L41e158; -//nop; -L41e040: -a1 = 0x100031dc; -//nop; -a0 = 0x1000a1e0; -a2 = 0x2; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L41e058; -a1 = a1; -L41e058: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41e084;} -//nop; -a1 = 0x100031e0; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41e078; -a1 = a1; -L41e078: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -goto L41e158; -//nop; -L41e084: -a1 = 0x100031e8; -//nop; -a0 = 0x1000a1e0; -a2 = 0x3; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L41e09c; -a1 = a1; -L41e09c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41e0c8;} -//nop; -a1 = 0x100031ec; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41e0bc; -a1 = a1; -L41e0bc: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -goto L41e158; -//nop; -L41e0c8: -a1 = 0x100031f4; -//nop; -a0 = 0x1000a1e0; -a2 = 0x3; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L41e0e0; -a1 = a1; -L41e0e0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -t7 = 0x10000324; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L41e140;} -//nop; -t8 = 0x100031f8; -//nop; -t8 = t8; -MEM_U32(sp + 20) = t8; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41e12c; -MEM_U32(sp + 16) = zero; -L41e12c: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -at = 0x10000340; -MEM_U32(at + 0) = zero; -goto L41e158; -MEM_U32(at + 0) = zero; -L41e140: -at = 0x10000340; -t6 = 0x1; -MEM_U32(at + 0) = t6; -at = 0x10000344; -t9 = 0x1; -MEM_U32(at + 0) = t9; -L41e158: -at = 0x1000a1a8; -//nop; -a0 = 0x1000a1e0; -MEM_U32(at + 0) = zero; -v0 = wrapper_strlen(mem, a0); -goto L41e16c; -MEM_U32(at + 0) = zero; -L41e16c: -// bdead 4002010b gp = MEM_U32(sp + 64); -//nop; -t2 = 0x1000a1a8; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -at = t2 < v0; -if (at == 0) {//nop; -goto L41e1ec;} -//nop; -L41e190: -t5 = 0x1000a1a8; -t3 = 0x1000a1e0; -t5 = MEM_U32(t5 + 0); -t1 = 0x1000a1a8; -t4 = 0x20; -t0 = t5 + t3; -MEM_U8(t0 + 0) = (uint8_t)t4; -t1 = MEM_U32(t1 + 0); -//nop; -at = 0x1000a1a8; -a0 = 0x1000a1e0; -t7 = t1 + 0x1; -MEM_U32(at + 0) = t7; -v0 = wrapper_strlen(mem, a0); -goto L41e1c8; -MEM_U32(at + 0) = t7; -L41e1c8: -// bdead 4002010b gp = MEM_U32(sp + 64); -//nop; -t8 = 0x1000a1a8; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -at = t8 < v0; -if (at != 0) {//nop; -goto L41e190;} -//nop; -L41e1ec: -t6 = 0x1000a1dc; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L41e25c;} -//nop; -t9 = MEM_U8(t6 + 0); -at = 0x2c; -if (t9 != at) {//nop; -goto L41e25c;} -//nop; -if (t9 == 0) {//nop; -goto L41e25c;} -//nop; -L41e21c: -t2 = 0x1000a1dc; -at = 0x1000a1dc; -t2 = MEM_U32(t2 + 0); -t3 = 0x1000a1dc; -t5 = t2 + 0x1; -MEM_U32(at + 0) = t5; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L41e25c;} -//nop; -t4 = MEM_U8(t3 + 0); -at = 0x2c; -if (t4 != at) {//nop; -goto L41e25c;} -//nop; -if (t4 != 0) {//nop; -goto L41e21c;} -//nop; -L41e25c: -t0 = 0x1000a1dc; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -t1 = MEM_U8(t0 + 0); -//nop; -if (t1 != 0) {//nop; -goto L41df04;} -//nop; -at = 0x2c; -if (t1 == at) {//nop; -goto L41df04;} -//nop; -//nop; -goto L42a934; -//nop; -L41e290: -t7 = MEM_U32(sp + 340); -t8 = s0 << 2; -t6 = t7 + t8; -t9 = MEM_U32(t6 + 0); -//nop; -t2 = MEM_U8(t9 + 2); -//nop; -if (t2 == 0) {//nop; -goto L41e378;} -//nop; -t5 = s0 << 2; -a1 = 0x10003230; -//nop; -t3 = t7 + t5; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41e2d0; -a1 = a1; -L41e2d0: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41e34c;} -//nop; -t4 = 0x10000324; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L41e330;} -//nop; -t0 = 0x10003238; -//nop; -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41e31c; -MEM_U32(sp + 16) = zero; -L41e31c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -at = 0x10000340; -MEM_U32(at + 0) = zero; -goto L42a934; -MEM_U32(at + 0) = zero; -L41e330: -at = 0x10000340; -t1 = 0x1; -MEM_U32(at + 0) = t1; -at = 0x10000344; -t8 = 0x1; -MEM_U32(at + 0) = t8; -goto L42a934; -MEM_U32(at + 0) = t8; -L41e34c: -t6 = MEM_U32(sp + 340); -t9 = s0 << 2; -t2 = t6 + t9; -//nop; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41e36c; -//nop; -L41e36c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41e378: -t7 = 0x10000240; -at = 0x10000240; -t7 = MEM_U32(t7 + 0); -t3 = MEM_U32(sp + 340); -t4 = s0 << 2; -t5 = t7 + 0x1; -//nop; -MEM_U32(at + 0) = t5; -t0 = t3 + t4; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41e3ac; -//nop; -L41e3ac: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41e3b8: -t1 = MEM_U32(sp + 340); -t8 = s0 << 2; -t6 = t1 + t8; -t9 = MEM_U32(t6 + 0); -//nop; -t2 = MEM_U8(t9 + 2); -//nop; -if (t2 != 0) {//nop; -goto L41e494;} -//nop; -t7 = MEM_U32(sp + 336); -t5 = s0 + 0x1; -at = (int)t5 < (int)t7; -if (at == 0) {//nop; -goto L41e494;} -//nop; -t3 = s0 << 2; -t4 = t1 + t3; -t0 = MEM_U32(t4 + 4); -at = 0x2d; -t8 = MEM_U8(t0 + 0); -//nop; -if (t8 == at) {//nop; -goto L41e494;} -//nop; -t6 = s0 << 2; -t9 = t1 + t6; -a0 = MEM_U32(t9 + 4); -//nop; -//nop; -//nop; -v0 = f_isdir(mem, sp, a0); -goto L41e42c; -//nop; -L41e42c: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L41e494;} -//nop; -t2 = MEM_U32(sp + 340); -s0 = s0 + 0x1; -t7 = s0 << 2; -t3 = s0 << 2; -//nop; -t4 = t2 + t3; -t5 = t2 + t7; -a0 = MEM_U32(t5 + -4); -a1 = MEM_U32(t4 + 0); -a2 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41e464; -a2 = zero; -L41e464: -// bdead 4002000b gp = MEM_U32(sp + 64); -MEM_U32(sp + 280) = v0; -//nop; -a1 = MEM_U32(sp + 280); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41e480; -//nop; -L41e480: -// bdead 40020103 gp = MEM_U32(sp + 64); -t0 = 0x1; -at = 0x10000260; -MEM_U32(at + 0) = t0; -goto L42a934; -MEM_U32(at + 0) = t0; -L41e494: -at = 0x10000260; -t1 = MEM_U32(sp + 340); -t8 = 0x1; -t6 = s0 << 2; -MEM_U32(at + 0) = t8; -t9 = t1 + t6; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41e4c0; -//nop; -L41e4c0: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41e4cc: -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -t2 = t7 + t5; -t3 = MEM_U32(t2 + 0); -at = 0x44; -t4 = MEM_U8(t3 + 2); -//nop; -if (t4 != at) {//nop; -goto L41e76c;} -//nop; -t0 = s0 << 2; -t8 = t7 + t0; -a0 = MEM_U32(t8 + 0); -a1 = 0x10003270; -//nop; -a0 = a0 + 0x3; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41e510; -a1 = a1; -L41e510: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41e534;} -//nop; -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -t9 = t1 + t6; -t5 = MEM_U32(t9 + 4); -MEM_U32(sp + 316) = t5; -goto L41e6f8; -MEM_U32(sp + 316) = t5; -L41e534: -t2 = MEM_U32(sp + 340); -t3 = s0 << 2; -t4 = t2 + t3; -a0 = MEM_U32(t4 + 0); -a1 = 0x10003278; -//nop; -a0 = a0 + 0x3; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41e558; -a1 = a1; -L41e558: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41e5b4;} -//nop; -t7 = MEM_U32(sp + 340); -t0 = s0 << 2; -//nop; -t8 = t7 + t0; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41e584; -//nop; -L41e584: -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -// bdead 40028403 gp = MEM_U32(sp + 64); -t9 = t1 + t6; -a1 = MEM_U32(t9 + 4); -//nop; -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41e5a8; -//nop; -L41e5a8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L41e6f8; -//nop; -L41e5b4: -t5 = MEM_U32(sp + 340); -t2 = s0 << 2; -t3 = t5 + t2; -a0 = MEM_U32(t3 + 0); -a1 = 0x10003280; -//nop; -a0 = a0 + 0x3; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41e5d8; -a1 = a1; -L41e5d8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41e634;} -//nop; -t4 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t0 = t4 + t7; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41e604; -//nop; -L41e604: -// bdead 40020003 gp = MEM_U32(sp + 64); -t8 = MEM_U32(sp + 340); -t1 = s0 << 2; -//nop; -t6 = t8 + t1; -a1 = MEM_U32(t6 + 4); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41e628; -//nop; -L41e628: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L41e6f8; -//nop; -L41e634: -t9 = MEM_U32(sp + 340); -t5 = s0 << 2; -t2 = t9 + t5; -a0 = MEM_U32(t2 + 0); -//nop; -a1 = 0x1000328c; -a0 = a0 + 0x3; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41e658; -a1 = a1; -L41e658: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -t3 = 0x1000a36c; -at = 0x1; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L41e6ac;} -//nop; -t4 = 0x10000008; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L41e6ac;} -//nop; -t7 = MEM_U32(sp + 340); -t0 = s0 << 2; -t8 = t7 + t0; -t1 = MEM_U32(t8 + 4); -MEM_U32(sp + 308) = t1; -goto L41e6f8; -MEM_U32(sp + 308) = t1; -L41e6ac: -t6 = MEM_U32(sp + 340); -t9 = s0 << 2; -t5 = t6 + t9; -//nop; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a270; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41e6cc; -//nop; -L41e6cc: -// bdead 40020003 gp = MEM_U32(sp + 64); -t2 = MEM_U32(sp + 340); -t3 = s0 << 2; -//nop; -t4 = t2 + t3; -a1 = MEM_U32(t4 + 4); -a0 = 0x1000a270; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41e6f0; -//nop; -L41e6f0: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -L41e6f8: -t7 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t7; -if (at != 0) {//nop; -goto L42a934;} -//nop; -t0 = 0x10003294; -t8 = MEM_U32(sp + 340); -t1 = s0 << 2; -t0 = t0; -MEM_U32(sp + 20) = t0; -MEM_U32(sp + 16) = zero; -t6 = t8 + t1; -t9 = MEM_U32(t6 + -4); -a0 = 0x1; -MEM_U32(sp + 24) = t9; -//nop; -a1 = zero; -a2 = zero; -a3 = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41e748; -a3 = zero; -L41e748: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41e760; -//nop; -L41e760: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41e76c: -t5 = MEM_U32(sp + 340); -t2 = s0 << 2; -t3 = t5 + t2; -t4 = MEM_U32(t3 + 0); -//nop; -t7 = MEM_U8(t4 + 2); -//nop; -if (t7 != 0) {//nop; -goto L42a880;} -//nop; -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -//nop; -t1 = t0 + t8; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a270; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41e7b0; -//nop; -L41e7b0: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -t6 = 0x10000214; -at = 0x10000214; -t6 = MEM_U32(t6 + 0); -t5 = 0x10000244; -t9 = t6 + 0x1; -t5 = MEM_U32(t5 + 0); -MEM_U32(at + 0) = t9; -at = 0x10000244; -t2 = t5 + 0x1; -MEM_U32(at + 0) = t2; -goto L42a934; -MEM_U32(at + 0) = t2; -L41e7e4: -t3 = MEM_U32(sp + 340); -t4 = s0 << 2; -t7 = t3 + t4; -t0 = MEM_U32(t7 + 0); -//nop; -t8 = MEM_U8(t0 + 2); -//nop; -if (t8 != 0) {//nop; -goto L41e830;} -//nop; -t1 = s0 << 2; -//nop; -t6 = t3 + t1; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41e824; -//nop; -L41e824: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41e830: -t9 = 0x1000a36c; -at = 0x3; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L42a880;} -//nop; -t5 = MEM_U32(sp + 340); -t2 = s0 << 2; -//nop; -t4 = t5 + t2; -a1 = MEM_U32(t4 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41e868; -//nop; -L41e868: -// bdead 40020003 gp = MEM_U32(sp + 64); -t7 = MEM_U32(sp + 340); -t0 = s0 << 2; -//nop; -t8 = t7 + t0; -a0 = MEM_U32(t8 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L41e888; -//nop; -L41e888: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41e894: -at = 0x1000a12c; -t3 = MEM_U32(sp + 340); -t1 = s0 << 2; -MEM_U32(at + 0) = zero; -t6 = t3 + t1; -t9 = MEM_U32(t6 + 0); -//nop; -t5 = MEM_U8(t9 + 2); -//nop; -if (t5 != 0) {at = 0x10000230; -goto L41e8f0;} -at = 0x10000230; -t7 = 0x1000a128; -t2 = 0x2; -MEM_U32(at + 0) = t2; -at = 0x1000a12c; -t7 = MEM_U32(t7 + 0); -t4 = 0x1; -if (t7 == 0) {MEM_U32(at + 0) = t4; -goto L42a934;} -MEM_U32(at + 0) = t4; -at = 0x10000230; -t0 = 0x1; -MEM_U32(at + 0) = t0; -goto L42a934; -MEM_U32(at + 0) = t0; -L41e8f0: -t8 = MEM_U32(sp + 340); -t3 = s0 << 2; -t1 = t8 + t3; -t6 = MEM_U32(t1 + 0); -//nop; -t9 = MEM_U8(t6 + 3); -//nop; -if (t9 != 0) {//nop; -goto L41eae0;} -//nop; -t5 = s0 << 2; -t2 = t8 + t5; -t4 = MEM_U32(t2 + 0); -//nop; -t7 = MEM_U8(t4 + 2); -//nop; -at = (int)t7 < (int)0x30; -if (at != 0) {//nop; -goto L42a880;} -//nop; -t0 = s0 << 2; -t3 = t8 + t0; -t1 = MEM_U32(t3 + 0); -//nop; -t6 = MEM_U8(t1 + 2); -//nop; -at = (int)t6 < (int)0x35; -if (at == 0) {//nop; -goto L42a880;} -//nop; -t9 = s0 << 2; -t5 = t8 + t9; -t2 = MEM_U32(t5 + 0); -at = 0x10000230; -t4 = MEM_U8(t2 + 2); -//nop; -t7 = t4 + 0xffffffd0; -MEM_U32(at + 0) = t7; -at = 0x3; -if (t7 != at) {//nop; -goto L41eaa0;} -//nop; -t0 = 0x100032b8; -t3 = 0x100032c0; -t1 = 0x100032c8; -at = 0x10000400; -//nop; -a0 = 0x1000a470; -t0 = t0; -t3 = t3; -t1 = t1; -MEM_U32(sp + 276) = t0; -MEM_U32(sp + 272) = t3; -a1 = t0; -MEM_U32(at + 0) = t1; -f_addstr(mem, sp, a0, a1); -goto L41e9c0; -MEM_U32(at + 0) = t1; -L41e9c0: -// bdead 40020003 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 272); -//nop; -a0 = 0x1000a470; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41e9d8; -//nop; -L41e9d8: -// bdead 40020003 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 276); -//nop; -a0 = 0x1000a4b0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41e9f0; -//nop; -L41e9f0: -// bdead 40020003 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 272); -//nop; -a0 = 0x1000a4b0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ea08; -//nop; -L41ea08: -// bdead 40020003 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 276); -//nop; -a0 = 0x1000a4a0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ea20; -//nop; -L41ea20: -// bdead 40020003 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 272); -//nop; -a0 = 0x1000a4a0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ea38; -//nop; -L41ea38: -// bdead 40020003 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 276); -//nop; -a0 = 0x1000a490; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ea50; -//nop; -L41ea50: -// bdead 40020003 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 272); -//nop; -a0 = 0x1000a490; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ea68; -//nop; -L41ea68: -// bdead 40020003 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 276); -//nop; -a0 = 0x1000a280; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ea80; -//nop; -L41ea80: -// bdead 40020003 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 272); -//nop; -a0 = 0x1000a280; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ea98; -//nop; -L41ea98: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -L41eaa0: -t6 = 0x10000230; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -at = (int)t6 < (int)0x3; -if (at != 0) {//nop; -goto L42a934;} -//nop; -t8 = 0x10000224; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {at = 0x10000408; -goto L42a934;} -at = 0x10000408; -t9 = 0x1; -MEM_U32(at + 0) = t9; -goto L42a934; -MEM_U32(at + 0) = t9; -L41eae0: -t5 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x100032cc; -//nop; -t4 = t5 + t2; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41eb00; -a1 = a1; -L41eb00: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41ed8c;} -//nop; -t7 = MEM_U32(sp + 340); -t3 = s0 << 2; -//nop; -t1 = t7 + t3; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a470; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41eb2c; -//nop; -L41eb2c: -// bdead 40020003 gp = MEM_U32(sp + 64); -t0 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t8 = t0 + t6; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a4b0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41eb50; -//nop; -L41eb50: -t9 = MEM_U32(sp + 340); -// bdead 44020003 gp = MEM_U32(sp + 64); -t5 = s0 << 2; -t2 = t9 + t5; -//nop; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a4a0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41eb74; -//nop; -L41eb74: -// bdead 40020003 gp = MEM_U32(sp + 64); -t4 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t3 = t4 + t7; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a490; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41eb98; -//nop; -L41eb98: -// bdead 40020003 gp = MEM_U32(sp + 64); -t1 = MEM_U32(sp + 340); -t0 = s0 << 2; -//nop; -t6 = t1 + t0; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a280; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ebbc; -//nop; -L41ebbc: -t8 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -// bdead 42020003 gp = MEM_U32(sp + 64); -at = (int)s0 < (int)t8; -if (at != 0) {//nop; -goto L41ec1c;} -//nop; -t9 = 0x100032d4; -a0 = 0x1; -t9 = t9; -MEM_U32(sp + 20) = t9; -//nop; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41ebfc; -MEM_U32(sp + 16) = zero; -L41ebfc: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41ec14; -//nop; -L41ec14: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L41ec1c: -t5 = MEM_U32(sp + 340); -t2 = s0 << 2; -t4 = t5 + t2; -s2 = MEM_U32(t4 + 0); -//nop; -t7 = MEM_U8(s2 + 0); -//nop; -if (t7 == 0) {//nop; -goto L41ecd0;} -//nop; -L41ec40: -t3 = MEM_U8(s2 + 0); -t1 = 0xfb504f0; -//nop; -t0 = t3 + t1; -t6 = MEM_U8(t0 + 1); -//nop; -t8 = t6 & 0x4; -if (t8 != 0) {//nop; -goto L41ecc0;} -//nop; -t9 = 0x100032f4; -t5 = MEM_U32(sp + 340); -t9 = t9; -MEM_U32(sp + 20) = t9; -t2 = s0 << 2; -MEM_U32(sp + 16) = zero; -t4 = t5 + t2; -t7 = MEM_U32(t4 + 0); -//nop; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t7; -f_error(mem, sp, a0, a1, a2, a3); -goto L41eca0; -MEM_U32(sp + 24) = t7; -L41eca0: -// bdead 400a0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41ecb8; -//nop; -L41ecb8: -// bdead 400a0003 gp = MEM_U32(sp + 64); -//nop; -L41ecc0: -t3 = MEM_U8(s2 + 1); -s2 = s2 + 0x1; -if (t3 != 0) {//nop; -goto L41ec40;} -//nop; -L41ecd0: -t1 = MEM_U32(sp + 340); -t0 = s0 << 2; -//nop; -t6 = t1 + t0; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a470; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ecf0; -//nop; -L41ecf0: -t8 = MEM_U32(sp + 340); -// bdead 42020003 gp = MEM_U32(sp + 64); -t9 = s0 << 2; -t5 = t8 + t9; -//nop; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a4b0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ed14; -//nop; -L41ed14: -// bdead 40020003 gp = MEM_U32(sp + 64); -t2 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t7 = t2 + t4; -a1 = MEM_U32(t7 + 0); -a0 = 0x1000a4a0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ed38; -//nop; -L41ed38: -// bdead 40020003 gp = MEM_U32(sp + 64); -t3 = MEM_U32(sp + 340); -t1 = s0 << 2; -//nop; -t0 = t3 + t1; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a490; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ed5c; -//nop; -L41ed5c: -t6 = MEM_U32(sp + 340); -t8 = s0 << 2; -// bdead 42028003 gp = MEM_U32(sp + 64); -t9 = t6 + t8; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a280; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ed80; -//nop; -L41ed80: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41ed8c: -t5 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x10003318; -//nop; -t4 = t5 + t2; -a0 = MEM_U32(t4 + 0); -a2 = 0x5; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L41edb0; -a1 = a1; -L41edb0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -t7 = 0x10003320; -//nop; -t7 = t7; -MEM_U32(sp + 20) = t7; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41ede4; -MEM_U32(sp + 16) = zero; -L41ede4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41edf0: -t3 = MEM_U32(sp + 340); -t1 = s0 << 2; -t0 = t3 + t1; -t6 = MEM_U32(t0 + 0); -//nop; -t8 = MEM_U8(t6 + 2); -//nop; -if (t8 != 0) {at = 0x1000a1a0; -goto L42a880;} -at = 0x1000a1a0; -t5 = MEM_U32(sp + 340); -t9 = 0x1; -t2 = s0 << 2; -MEM_U32(at + 0) = t9; -//nop; -t4 = t5 + t2; -a1 = MEM_U32(t4 + 0); -a0 = 0x1000a270; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41ee3c; -//nop; -L41ee3c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -t7 = 0x10000214; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L42a934;} -//nop; -t3 = 0x10000218; -at = 0x10000218; -t3 = MEM_U32(t3 + 0); -//nop; -t1 = t3 + 0x1; -MEM_U32(at + 0) = t1; -goto L42a934; -MEM_U32(at + 0) = t1; -L41ee78: -t0 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x1000333c; -//nop; -t8 = t0 + t6; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41ee98; -a1 = a1; -L41ee98: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42a934;} -//nop; -t9 = MEM_U32(sp + 340); -t5 = s0 << 2; -t2 = t9 + t5; -//nop; -a1 = 0x10003340; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41eec4; -a1 = a1; -L41eec4: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42a934;} -//nop; -t4 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t3 = t4 + t7; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a270; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41eef0; -//nop; -L41eef0: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41eefc: -t1 = 0x1000a36c; -at = 0x3; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L42a880;} -//nop; -t0 = MEM_U32(sp + 340); -t6 = s0 << 2; -t8 = t0 + t6; -a1 = MEM_U32(t8 + 0); -//nop; -a0 = 0x1000a370; -a1 = a1 + 0x2; -f_addstr(mem, sp, a0, a1); -goto L41ef34; -a1 = a1 + 0x2; -L41ef34: -t9 = MEM_U32(sp + 340); -// bdead 44020003 gp = MEM_U32(sp + 64); -t5 = s0 << 2; -t2 = t9 + t5; -//nop; -a0 = MEM_U32(t2 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L41ef54; -//nop; -L41ef54: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41ef60: -t4 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x10003344; -//nop; -t3 = t4 + t7; -a0 = MEM_U32(t3 + 0); -a2 = 0x5; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L41ef84; -a1 = a1; -L41ef84: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41efc4;} -//nop; -t1 = 0x1000334c; -//nop; -t1 = t1; -MEM_U32(sp + 20) = t1; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41efb8; -MEM_U32(sp + 16) = zero; -L41efb8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41efc4: -t0 = MEM_U32(sp + 340); -t6 = s0 << 2; -t8 = t0 + t6; -t9 = MEM_U32(t8 + 0); -//nop; -t5 = MEM_U8(t9 + 2); -//nop; -if (t5 != 0) {//nop; -goto L42a880;} -//nop; -t2 = 0x1000022c; -at = 0x1000022c; -t2 = MEM_U32(t2 + 0); -//nop; -t4 = t2 + 0x1; -MEM_U32(at + 0) = t4; -goto L42a934; -MEM_U32(at + 0) = t4; -L41f004: -t7 = MEM_U32(sp + 340); -t3 = s0 << 2; -t1 = t7 + t3; -t0 = MEM_U32(t1 + 0); -//nop; -t6 = MEM_U8(t0 + 2); -//nop; -if (t6 != 0) {//nop; -goto L41f0c8;} -//nop; -t8 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t8; -if (at == 0) {//nop; -goto L41f080;} -//nop; -a1 = 0x10003368; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41f050; -a1 = a1; -L41f050: -t9 = MEM_U32(sp + 340); -// bdead 44020003 gp = MEM_U32(sp + 64); -t5 = s0 << 2; -t2 = t9 + t5; -//nop; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f074; -//nop; -L41f074: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41f080: -t4 = 0x1000336c; -//nop; -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41f0a8; -MEM_U32(sp + 16) = zero; -L41f0a8: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41f0c0; -//nop; -L41f0c0: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L41f0c8: -t7 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x10003390; -//nop; -t1 = t7 + t3; -a0 = MEM_U32(t1 + 0); -a2 = 0x6; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L41f0ec; -a1 = a1; -L41f0ec: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L41f12c;} -//nop; -t0 = 0x10003398; -//nop; -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41f120; -MEM_U32(sp + 16) = zero; -L41f120: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41f12c: -t6 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t6 + t8; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x100033b4; -a2 = 0x6; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L41f150; -a1 = a1; -L41f150: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -t5 = 0x100033bc; -//nop; -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41f184; -MEM_U32(sp + 16) = zero; -L41f184: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41f190: -t2 = 0x1000a36c; -at = 0x3; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L41f21c;} -//nop; -t4 = MEM_U32(sp + 340); -t7 = s0 << 2; -t3 = t4 + t7; -t1 = MEM_U32(t3 + 0); -//nop; -t0 = MEM_U8(t1 + 2); -//nop; -if (t0 != 0) {//nop; -goto L41f21c;} -//nop; -t6 = s0 << 2; -//nop; -t8 = t4 + t6; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f1e8; -//nop; -L41f1e8: -t9 = MEM_U32(sp + 340); -// bdead 44020003 gp = MEM_U32(sp + 64); -t5 = s0 << 2; -t2 = t9 + t5; -//nop; -a0 = MEM_U32(t2 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L41f208; -//nop; -L41f208: -// bdead 40020103 gp = MEM_U32(sp + 64); -t7 = 0x1; -at = 0x1000a160; -MEM_U32(at + 0) = t7; -goto L42a934; -MEM_U32(at + 0) = t7; -L41f21c: -t3 = MEM_U32(sp + 340); -t1 = s0 << 2; -//nop; -t0 = t3 + t1; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a260; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f23c; -//nop; -L41f23c: -// bdead 40020003 gp = MEM_U32(sp + 64); -t4 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t8 = t4 + t6; -a0 = MEM_U32(t8 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L41f25c; -//nop; -L41f25c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41f268: -t9 = MEM_U32(sp + 340); -t5 = s0 << 2; -t2 = t9 + t5; -t7 = MEM_U32(t2 + 0); -//nop; -t3 = MEM_U8(t7 + 2); -//nop; -if (t3 != 0) {//nop; -goto L41f2c0;} -//nop; -t1 = 0x100033d8; -//nop; -t1 = t1; -MEM_U32(sp + 20) = t1; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41f2b4; -MEM_U32(sp + 16) = zero; -L41f2b4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41f2c0: -t0 = MEM_U32(sp + 340); -t4 = s0 << 2; -a1 = 0x100033f0; -//nop; -t6 = t0 + t4; -a0 = MEM_U32(t6 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41f2e0; -a1 = a1; -L41f2e0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -t8 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t8; -if (at == 0) {//nop; -goto L41f344;} -//nop; -a1 = 0x100033f4; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41f314; -a1 = a1; -L41f314: -t9 = MEM_U32(sp + 340); -// bdead 44020003 gp = MEM_U32(sp + 64); -t5 = s0 << 2; -t2 = t9 + t5; -//nop; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f338; -//nop; -L41f338: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L41f344: -t7 = 0x100033f8; -//nop; -t7 = t7; -MEM_U32(sp + 20) = t7; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41f36c; -MEM_U32(sp + 16) = zero; -L41f36c: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41f384; -//nop; -L41f384: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -goto L42a880; -//nop; -L41f390: -t3 = MEM_U32(sp + 340); -t1 = s0 << 2; -t0 = t3 + t1; -t4 = MEM_U32(t0 + 0); -at = 0x1000a1d8; -t6 = t4 + 0x2; -MEM_U32(at + 0) = t6; -t8 = MEM_U8(t6 + 0); -//nop; -if (t8 == 0) {//nop; -goto L42a880;} -//nop; -t9 = MEM_U32(sp + 340); -t5 = s0 << 2; -t2 = t9 + t5; -t7 = MEM_U32(t2 + 0); -at = 0x1000a1d4; -t3 = t7 + 0x3; -MEM_U32(at + 0) = t3; -t1 = MEM_U8(t3 + 0); -at = 0x2c; -if (t1 == at) {//nop; -goto L41f430;} -//nop; -L41f3e8: -t0 = 0x1000a1d4; -at = 0x1000a1d4; -t0 = MEM_U32(t0 + 0); -//nop; -s4 = MEM_U8(t0 + 0); -t6 = t0 + 0x1; -t4 = s4 < 0x1; -s4 = t4; -if (s4 != 0) {MEM_U32(at + 0) = t6; -goto L42a880;} -MEM_U32(at + 0) = t6; -t8 = 0x1000a1d4; -at = 0x2c; -t8 = MEM_U32(t8 + 0); -//nop; -t9 = MEM_U8(t8 + 0); -//nop; -if (t9 != at) {//nop; -goto L41f3e8;} -//nop; -L41f430: -t5 = 0x1000a1d4; -at = 0x2c; -t5 = MEM_U32(t5 + 0); -//nop; -t2 = MEM_U8(t5 + 0); -//nop; -if (t2 != at) {//nop; -goto L42a934;} -//nop; -L41f450: -t7 = 0x1000a1d4; -t3 = 0x1000a1d4; -t7 = MEM_U32(t7 + 0); -s2 = 0x1000a1d8; -MEM_U8(t7 + 0) = (uint8_t)zero; -t3 = MEM_U32(t3 + 0); -at = 0x1000a1d4; -s2 = MEM_U32(s2 + 0); -t1 = t3 + 0x1; -MEM_U32(at + 0) = t1; -t4 = MEM_U8(s2 + 0); -//nop; -if (t4 == 0) {//nop; -goto L420034;} -//nop; -L41f488: -t0 = MEM_U8(s2 + 0); -//nop; -t6 = t0 + 0xffffffd0; -at = t6 < 0x4b; -if (at == 0) {//nop; -goto L41ffc8;} -//nop; -//nop; -//nop; -//nop; -//nop; -//nop; -;static void *const Lswitch1000740c[] = { -&&L41f5a4, -&&L41ffc8, -&&L41f7d0, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41f4e0, -&&L41ffc8, -&&L41f91c, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41f868, -&&L41f88c, -&&L41f844, -&&L41f7ac, -&&L41ffc8, -&&L41f5a4, -&&L41ffc8, -&&L41ffc8, -&&L41ffc8, -&&L41f6f8, -&&L41f6d4, -&&L41f8b0, -&&L41f764, -&&L41ffc8, -&&L41f7f4, -&&L41f4bc, -&&L41f788, -&&L41ffc8, -&&L41f740, -&&L41ffc8, -&&L41f71c, -&&L41ffc8, -&&L41f6b0, -&&L41f940, -&&L41f8d4, -&&L41f8f8, -}; -dest = Lswitch1000740c[t6]; -//nop; -goto *dest; -//nop; -L41f4bc: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a270; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f4d4; -//nop; -L41f4d4: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f4e0: -t8 = 0x1000a36c; -at = 0x3; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L41f51c;} -//nop; -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a5b8; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f510; -//nop; -L41f510: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f51c: -t9 = 0x1000a36c; -at = 0x1; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L41f558;} -//nop; -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a5d0; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f54c; -//nop; -L41f54c: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f558: -t5 = 0x10003420; -//nop; -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41f580; -MEM_U32(sp + 16) = zero; -L41f580: -// bdead 400a0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41f598; -//nop; -L41f598: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f5a4: -s4 = 0x1000a36c; -at = 0x2; -s4 = MEM_U32(s4 + 0); -//nop; -if (s4 == at) {at = 0x3; -goto L41f5dc;} -at = 0x3; -if (s4 == at) {at = 0x5; -goto L41f600;} -at = 0x5; -if (s4 == at) {at = 0x6; -goto L41f624;} -at = 0x6; -if (s4 == at) {//nop; -goto L41f648;} -//nop; -//nop; -goto L41f66c; -//nop; -L41f5dc: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a320; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f5f4; -//nop; -L41f5f4: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f600: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a330; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f618; -//nop; -L41f618: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f624: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a408; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f63c; -//nop; -L41f63c: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f648: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a418; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f660; -//nop; -L41f660: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f66c: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a310; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f684; -//nop; -L41f684: -// bdead 400a0003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a2f0; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f6a4; -//nop; -L41f6a4: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f6b0: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a300; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f6c8; -//nop; -L41f6c8: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f6d4: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a428; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f6ec; -//nop; -L41f6ec: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f6f8: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a438; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f710; -//nop; -L41f710: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f71c: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a448; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f734; -//nop; -L41f734: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f740: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a460; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f758; -//nop; -L41f758: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f764: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a470; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f77c; -//nop; -L41f77c: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f788: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a490; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f7a0; -//nop; -L41f7a0: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f7ac: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a4a0; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f7c4; -//nop; -L41f7c4: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f7d0: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a4b0; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f7e8; -//nop; -L41f7e8: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f7f4: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a4b0; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f80c; -//nop; -L41f80c: -// bdead 400a0003 gp = MEM_U32(sp + 64); -//nop; -a0 = 0x1000a1d4; -a1 = 0x10003450; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_strstr(mem, a0, a1); -goto L41f82c; -a1 = a1; -L41f82c: -// bdead 400a010b gp = MEM_U32(sp + 64); -if (v0 == 0) {at = 0x10000264; -goto L420024;} -at = 0x10000264; -t2 = 0x1; -MEM_U32(at + 0) = t2; -goto L420024; -MEM_U32(at + 0) = t2; -L41f844: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a4c0; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f85c; -//nop; -L41f85c: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f868: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a4d0; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f880; -//nop; -L41f880: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f88c: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a4d0; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f8a4; -//nop; -L41f8a4: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f8b0: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a4e0; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f8c8; -//nop; -L41f8c8: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f8d4: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a500; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f8ec; -//nop; -L41f8ec: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f8f8: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a510; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f910; -//nop; -L41f910: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f91c: -a1 = 0x1000a1d4; -//nop; -a0 = 0x1000a2a0; -a1 = MEM_U32(a1 + 0); -//nop; -f_addstr(mem, sp, a0, a1); -goto L41f934; -//nop; -L41f934: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41f940: -t7 = 0x1000a1d4; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -t3 = MEM_U8(t7 + 1); -//nop; -t1 = t3 + 0xffffffbf; -at = t1 < 0x36; -if (at == 0) {//nop; -goto L420024;} -//nop; -//nop; -//nop; -//nop; -//nop; -//nop; -;static void *const Lswitch10007538[] = { -&&L41ff2c, -&&L420024, -&&L420024, -&&L41fc44, -&&L420024, -&&L420024, -&&L41f984, -&&L420024, -&&L420024, -&&L420024, -&&L41fe9c, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L41fe24, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L420024, -&&L41fbc4, -}; -dest = Lswitch10007538[t1]; -//nop; -goto *dest; -//nop; -L41f984: -t4 = 0x1000a1d4; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -t0 = MEM_U8(t4 + 2); -//nop; -if (t0 != 0) {//nop; -goto L41fa4c;} -//nop; -t6 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t6; -if (at != 0) {//nop; -goto L41fa00;} -//nop; -t8 = 0x1000345c; -//nop; -t8 = t8; -MEM_U32(sp + 20) = t8; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41f9e0; -MEM_U32(sp + 16) = zero; -L41f9e0: -// bdead 400a0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41f9f8; -//nop; -L41f9f8: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -L41fa00: -t9 = 0x10000230; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -at = (int)t9 < (int)0x3; -if (at == 0) {//nop; -goto L41fa38;} -//nop; -t5 = MEM_U32(sp + 340); -t2 = s0 << 2; -t7 = t5 + t2; -t3 = MEM_U32(t7 + 0); -at = 0x10000400; -MEM_U32(at + 0) = t3; -goto L41fa94; -MEM_U32(at + 0) = t3; -L41fa38: -t1 = 0x10003484; -at = 0x10000400; -t1 = t1; -MEM_U32(at + 0) = t1; -goto L41fa94; -MEM_U32(at + 0) = t1; -L41fa4c: -t4 = 0x10000230; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -at = (int)t4 < (int)0x3; -if (at == 0) {//nop; -goto L41fa84;} -//nop; -t0 = 0x1000a1d4; -at = 0x10000400; -t0 = MEM_U32(t0 + 0); -//nop; -t6 = t0 + 0x2; -MEM_U32(at + 0) = t6; -goto L41fa94; -MEM_U32(at + 0) = t6; -L41fa84: -t8 = 0x10003488; -at = 0x10000400; -t8 = t8; -MEM_U32(at + 0) = t8; -L41fa94: -s3 = 0x10000400; -at = 0x2c; -s3 = MEM_U32(s3 + 0); -//nop; -t9 = MEM_U8(s3 + 0); -//nop; -if (t9 == at) {//nop; -goto L41fb70;} -//nop; -t5 = MEM_U8(s3 + 0); -//nop; -if (t5 == 0) {//nop; -goto L41fb70;} -//nop; -L41fac4: -t2 = MEM_U8(s3 + 0); -t7 = 0xfb504f0; -//nop; -t3 = t2 + t7; -t1 = MEM_U8(t3 + 1); -//nop; -t4 = t1 & 0x4; -if (t4 != 0) {//nop; -goto L41fb3c;} -//nop; -t6 = 0x10000400; -t0 = 0x1000348c; -//nop; -t6 = MEM_U32(t6 + 0); -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t6; -f_error(mem, sp, a0, a1, a2, a3); -goto L41fb1c; -MEM_U32(sp + 24) = t6; -L41fb1c: -// bdead 401a0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41fb34; -//nop; -L41fb34: -// bdead 401a0103 gp = MEM_U32(sp + 64); -//nop; -L41fb3c: -t8 = MEM_U8(s3 + 0); -at = 0x2c; -if (t8 == at) {//nop; -goto L41fb50;} -//nop; -s3 = s3 + 0x1; -L41fb50: -t9 = MEM_U8(s3 + 0); -at = 0x2c; -if (t9 == at) {//nop; -goto L41fb70;} -//nop; -t5 = MEM_U8(s3 + 0); -//nop; -if (t5 != 0) {//nop; -goto L41fac4;} -//nop; -L41fb70: -t2 = 0x10000328; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L41fbb8;} -//nop; -a0 = 0x1000a1ac; -a1 = 0x1000a1b0; -at = 0x10000328; -//nop; -t7 = 0x1; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 0); -a2 = zero; -MEM_U32(at + 0) = t7; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L41fbb0; -MEM_U32(at + 0) = t7; -L41fbb0: -// bdead 401a0103 gp = MEM_U32(sp + 64); -//nop; -L41fbb8: -at = 0x1000a1d4; -MEM_U32(at + 0) = s3; -goto L420024; -MEM_U32(at + 0) = s3; -L41fbc4: -t3 = 0x1000a1d4; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -t1 = MEM_U8(t3 + 2); -//nop; -if (t1 == 0) {at = 0x2c; -goto L41fbe8;} -at = 0x2c; -if (t1 != at) {at = 0x10000234; -goto L420024;} -L41fbe8: -at = 0x10000234; -a0 = 0x100034ac; -//nop; -t4 = 0x1; -MEM_U32(at + 0) = t4; -a0 = a0; -v0 = wrapper_getenv(mem, a0); -goto L41fc04; -a0 = a0; -L41fc04: -// bdead 400a010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L420024;} -//nop; -t0 = 0x100034b4; -//nop; -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41fc38; -MEM_U32(sp + 16) = zero; -L41fc38: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41fc44: -t6 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t6 + t8; -t5 = MEM_U32(t9 + 0); -//nop; -t2 = MEM_U8(t5 + 2); -//nop; -if (t2 != 0) {//nop; -goto L41fe24;} -//nop; -t7 = MEM_U32(sp + 336); -t3 = s0 + 0x1; -at = (int)t3 < (int)t7; -if (at == 0) {//nop; -goto L41fd84;} -//nop; -t1 = s0 << 2; -//nop; -t4 = t6 + t1; -a0 = MEM_U32(t4 + 4); -a1 = sp + 0x108; -a2 = 0x10; -v0 = wrapper_strtoul(mem, a0, a1, a2); -goto L41fc98; -a2 = 0x10; -L41fc98: -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -// bdead 420a020b gp = MEM_U32(sp + 64); -MEM_U32(sp + 268) = v0; -t9 = t0 + t8; -a0 = MEM_U32(t9 + 4); -//nop; -//nop; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L41fcc0; -//nop; -L41fcc0: -t5 = MEM_U32(sp + 340); -t2 = s0 << 2; -t7 = t5 + t2; -t3 = MEM_U32(t7 + 4); -t6 = MEM_U32(sp + 264); -// bdead 400ad00b gp = MEM_U32(sp + 64); -t1 = t6 - t3; -if (v0 != t1) {//nop; -goto L41fd50;} -//nop; -t4 = MEM_U32(sp + 268); -//nop; -if (t4 != 0) {//nop; -goto L41fd0c;} -//nop; -t0 = s0 << 2; -t8 = t5 + t0; -t9 = MEM_U32(t8 + 4); -//nop; -if (t9 == t6) {//nop; -goto L41fd50;} -//nop; -L41fd0c: -t2 = MEM_U32(sp + 340); -t7 = s0 << 2; -t3 = t2 + t7; -t1 = MEM_U32(t3 + 4); -at = 0x2d; -t4 = MEM_U8(t1 + 0); -//nop; -if (t4 == at) {//nop; -goto L41fd50;} -//nop; -t5 = s0 << 2; -t0 = t2 + t5; -t8 = MEM_U32(t0 + 4); -at = 0x2b; -t9 = MEM_U8(t8 + 0); -//nop; -if (t9 != at) {//nop; -goto L41fd84;} -//nop; -L41fd50: -t6 = 0x100034f8; -//nop; -t6 = t6; -MEM_U32(sp + 20) = t6; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41fd78; -MEM_U32(sp + 16) = zero; -L41fd78: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41fd84: -t7 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t7; -if (at == 0) {//nop; -goto L41fddc;} -//nop; -a1 = 0x10003528; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41fdac; -a1 = a1; -L41fdac: -// bdead 400a0003 gp = MEM_U32(sp + 64); -t3 = MEM_U32(sp + 340); -t1 = s0 << 2; -//nop; -t4 = t3 + t1; -a1 = MEM_U32(t4 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L41fdd0; -//nop; -L41fdd0: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41fddc: -t2 = 0x1000352c; -//nop; -t2 = t2; -MEM_U32(sp + 20) = t2; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41fe04; -MEM_U32(sp + 16) = zero; -L41fe04: -// bdead 400a0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41fe1c; -//nop; -L41fe1c: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -L41fe24: -t5 = 0x1000a1d4; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -t0 = MEM_U8(t5 + 2); -//nop; -if (t0 == 0) {at = 0x2c; -goto L41fe4c;} -at = 0x2c; -if (t0 != at) {//nop; -goto L420024;} -//nop; -L41fe4c: -t8 = MEM_U32(sp + 340); -t9 = s0 << 2; -a2 = 0x1000a1d4; -t6 = t8 + t9; -//nop; -a1 = 0x10003550; -a0 = MEM_U32(t6 + 0); -a2 = MEM_U32(a2 + 0); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41fe78; -a1 = a1; -L41fe78: -// bdead 400a000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a4e0; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41fe90; -a1 = s4; -L41fe90: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41fe9c: -a0 = 0x1000a1d4; -a1 = 0x10003554; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L41feb4; -a1 = a1; -L41feb4: -// bdead 400a010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L41ff10;} -//nop; -t7 = MEM_U32(sp + 340); -a2 = 0x1000a1d4; -t3 = s0 << 2; -a1 = 0x10003558; -//nop; -t1 = t7 + t3; -a0 = MEM_U32(t1 + 0); -a2 = MEM_U32(a2 + 0); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L41feec; -a1 = a1; -L41feec: -// bdead 400a000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a4e0; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L41ff04; -a1 = s4; -L41ff04: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41ff10: -t4 = 0x10000240; -at = 0x10000240; -t4 = MEM_U32(t4 + 0); -//nop; -t2 = t4 + 0x1; -MEM_U32(at + 0) = t2; -goto L420024; -MEM_U32(at + 0) = t2; -L41ff2c: -t5 = 0x1000a1d4; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -t0 = MEM_U8(t5 + 2); -//nop; -if (t0 != 0) {//nop; -goto L420024;} -//nop; -t8 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t8; -if (at == 0) {//nop; -goto L41ff7c;} -//nop; -a1 = 0x1000355c; -//nop; -a0 = 0x1000a540; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L41ff74; -a1 = a1; -L41ff74: -// bdead 400a0003 gp = MEM_U32(sp + 64); -//nop; -L41ff7c: -t9 = 0x10003560; -a0 = 0x1; -t9 = t9; -MEM_U32(sp + 20) = t9; -//nop; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L41ffa4; -MEM_U32(sp + 16) = zero; -L41ffa4: -// bdead 400a0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L41ffbc; -//nop; -L41ffbc: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -goto L420024; -//nop; -L41ffc8: -t6 = 0x10003584; -t7 = MEM_U32(sp + 340); -t3 = s0 << 2; -t6 = t6; -MEM_U32(sp + 20) = t6; -MEM_U32(sp + 16) = zero; -t1 = t7 + t3; -t4 = MEM_U32(t1 + 0); -//nop; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t4; -f_error(mem, sp, a0, a1, a2, a3); -goto L420004; -MEM_U32(sp + 24) = t4; -L420004: -// bdead 400a0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L42001c; -//nop; -L42001c: -// bdead 400a0103 gp = MEM_U32(sp + 64); -//nop; -L420024: -t2 = MEM_U8(s2 + 1); -s2 = s2 + 0x1; -if (t2 != 0) {//nop; -goto L41f488;} -//nop; -L420034: -t5 = 0x1000a1d4; -at = 0x2c; -t5 = MEM_U32(t5 + 0); -//nop; -t0 = MEM_U8(t5 + 0); -//nop; -if (t0 == at) {//nop; -goto L420094;} -//nop; -if (t0 == 0) {//nop; -goto L420094;} -//nop; -L42005c: -t8 = 0x1000a1d4; -at = 0x1000a1d4; -t8 = MEM_U32(t8 + 0); -t6 = 0x1000a1d4; -t9 = t8 + 0x1; -MEM_U32(at + 0) = t9; -t6 = MEM_U32(t6 + 0); -at = 0x2c; -t7 = MEM_U8(t6 + 0); -//nop; -if (t7 == at) {//nop; -goto L420094;} -//nop; -if (t7 != 0) {//nop; -goto L42005c;} -//nop; -L420094: -t3 = 0x1000a1d4; -at = 0x2c; -t3 = MEM_U32(t3 + 0); -//nop; -t1 = MEM_U8(t3 + 0); -//nop; -if (t1 == at) {//nop; -goto L41f450;} -//nop; -//nop; -goto L42a934; -//nop; -L4200bc: -t4 = 0x1000a36c; -at = 0x1; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L420224;} -//nop; -t2 = MEM_U32(sp + 340); -t5 = s0 << 2; -a1 = 0x100035a4; -//nop; -t0 = t2 + t5; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4200f4; -a1 = a1; -L4200f4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42012c;} -//nop; -t8 = MEM_U32(sp + 340); -t9 = s0 << 2; -t6 = t8 + t9; -//nop; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a310; -//nop; -f_addstr(mem, sp, a0, a1); -goto L420120; -//nop; -L420120: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42012c: -t7 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x100035b0; -//nop; -t1 = t7 + t3; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42014c; -a1 = a1; -L42014c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000270; -goto L42017c;} -at = 0x10000270; -a1 = 0x100035b4; -//nop; -a0 = 0x1000a310; -MEM_U32(at + 0) = zero; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L420170; -a1 = a1; -L420170: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42017c: -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x100035bc; -//nop; -t5 = t4 + t2; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42019c; -a1 = a1; -L42019c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000270; -goto L4201d0;} -at = 0x10000270; -a1 = 0x100035c0; -//nop; -t0 = 0x1; -a0 = 0x1000a310; -MEM_U32(at + 0) = t0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4201c4; -a1 = a1; -L4201c4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4201d0: -t8 = MEM_U32(sp + 340); -t9 = s0 << 2; -t6 = t8 + t9; -//nop; -a1 = 0x100035c8; -a0 = MEM_U32(t6 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4201f0; -a1 = a1; -L4201f0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000270; -goto L420224;} -at = 0x10000270; -a1 = 0x100035cc; -//nop; -t7 = 0x1; -a0 = 0x1000a310; -MEM_U32(at + 0) = t7; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L420218; -a1 = a1; -L420218: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L420224: -t3 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x100035d4; -//nop; -t4 = t3 + t1; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420244; -a1 = a1; -L420244: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42027c;} -//nop; -t2 = MEM_U32(sp + 340); -t5 = s0 << 2; -//nop; -t0 = t2 + t5; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a310; -//nop; -f_addstr(mem, sp, a0, a1); -goto L420270; -//nop; -L420270: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42027c: -t8 = MEM_U32(sp + 340); -t9 = s0 << 2; -t6 = t8 + t9; -//nop; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42029c; -//nop; -L42029c: -// bdead 40020003 gp = MEM_U32(sp + 64); -t7 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x100035e4; -//nop; -t1 = t7 + t3; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4202c0; -a1 = a1; -L4202c0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L420484;} -//nop; -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x100035f4; -//nop; -t5 = t4 + t2; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4202ec; -a1 = a1; -L4202ec: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L420484;} -//nop; -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10003600; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420318; -a1 = a1; -L420318: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L420484;} -//nop; -t6 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x1000360c; -//nop; -t3 = t6 + t7; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420344; -a1 = a1; -L420344: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L420484;} -//nop; -t1 = MEM_U32(sp + 340); -t4 = s0 << 2; -a1 = 0x10003614; -//nop; -t2 = t1 + t4; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420370; -a1 = a1; -L420370: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L420484;} -//nop; -t5 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x10003620; -//nop; -t8 = t5 + t0; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42039c; -a1 = a1; -L42039c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L420484;} -//nop; -t9 = MEM_U32(sp + 340); -t6 = s0 << 2; -t7 = t9 + t6; -//nop; -a1 = 0x10003630; -a0 = MEM_U32(t7 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4203c8; -a1 = a1; -L4203c8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L420484;} -//nop; -t3 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x1000363c; -//nop; -t4 = t3 + t1; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4203f4; -a1 = a1; -L4203f4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L420484;} -//nop; -t2 = MEM_U32(sp + 340); -t5 = s0 << 2; -a1 = 0x1000364c; -//nop; -t0 = t2 + t5; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420420; -a1 = a1; -L420420: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L420484;} -//nop; -t8 = MEM_U32(sp + 340); -t9 = s0 << 2; -t6 = t8 + t9; -//nop; -a1 = 0x1000365c; -a0 = MEM_U32(t6 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42044c; -a1 = a1; -L42044c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L420484;} -//nop; -t7 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x10003668; -//nop; -t1 = t7 + t3; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420478; -a1 = a1; -L420478: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a934;} -//nop; -L420484: -t4 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t4; -if (at == 0) {//nop; -goto L4204c4;} -//nop; -t2 = MEM_U32(sp + 340); -t5 = s0 << 2; -//nop; -t0 = t2 + t5; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4204b8; -//nop; -L4204b8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4204c4: -t8 = 0x10003678; -t9 = MEM_U32(sp + 340); -t6 = s0 << 2; -t8 = t8; -t7 = t9 + t6; -MEM_U32(sp + 20) = t8; -MEM_U32(sp + 16) = zero; -t3 = MEM_U32(t7 + -4); -//nop; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L420500; -MEM_U32(sp + 24) = t3; -L420500: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42050c: -t1 = 0x1000a36c; -at = 0x1; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L42057c;} -//nop; -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x10003694; -//nop; -t5 = t4 + t2; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420544; -a1 = a1; -L420544: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42057c;} -//nop; -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L420570; -//nop; -L420570: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42057c: -t6 = 0x1000a36c; -at = 0x1; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L4205ec;} -//nop; -t7 = 0x10000008; -at = 0x2; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == at) {at = 0x3; -goto L4205b4;} -at = 0x3; -if (t7 != at) {//nop; -goto L4205ec;} -//nop; -L4205b4: -t3 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x1000369c; -//nop; -t4 = t3 + t1; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4205d4; -a1 = a1; -L4205d4: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000120; -goto L4205ec;} -at = 0x10000120; -t2 = 0x1; -MEM_U32(at + 0) = t2; -goto L42a934; -MEM_U32(at + 0) = t2; -L4205ec: -t5 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x100036ac; -//nop; -t8 = t5 + t0; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42060c; -a1 = a1; -L42060c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4206a4;} -//nop; -t9 = 0x100003e4; -at = 0x1; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {at = 0x100003e4; -goto L420638;} -at = 0x100003e4; -//nop; -MEM_U32(at + 0) = zero; -L420638: -at = 0x10000004; -t7 = 0x100003e8; -t6 = 0x1; -t7 = MEM_U32(t7 + 0); -MEM_U32(at + 0) = t6; -at = 0x1; -if (t7 == at) {at = 0x100003e8; -goto L420660;} -at = 0x100003e8; -t3 = 0x3; -MEM_U32(at + 0) = t3; -L420660: -a0 = 0x100036b4; -//nop; -a1 = zero; -a2 = zero; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L420678; -a0 = a0; -L420678: -// bdead 40020003 gp = MEM_U32(sp + 64); -t1 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t2 = t1 + t4; -a0 = MEM_U32(t2 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L420698; -//nop; -L420698: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4206a4: -t5 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x100036b8; -//nop; -t8 = t5 + t0; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4206c4; -a1 = a1; -L4206c4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42075c;} -//nop; -t9 = 0x100003e4; -at = 0x1; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {at = 0x100003e4; -goto L4206f0;} -at = 0x100003e4; -//nop; -MEM_U32(at + 0) = zero; -L4206f0: -at = 0x10000004; -t7 = 0x100003e8; -t6 = 0x2; -t7 = MEM_U32(t7 + 0); -MEM_U32(at + 0) = t6; -at = 0x1; -if (t7 == at) {at = 0x100003e8; -goto L420718;} -at = 0x100003e8; -t3 = 0x3; -MEM_U32(at + 0) = t3; -L420718: -a0 = 0x100036c4; -//nop; -a1 = zero; -a2 = zero; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L420730; -a0 = a0; -L420730: -// bdead 40020003 gp = MEM_U32(sp + 64); -t1 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t2 = t1 + t4; -a0 = MEM_U32(t2 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L420750; -//nop; -L420750: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42075c: -t5 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x100036c8; -//nop; -t8 = t5 + t0; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42077c; -a1 = a1; -L42077c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000037c; -goto L4207e8;} -at = 0x1000037c; -t9 = 0x1; -MEM_U32(at + 0) = t9; -//nop; -a1 = 0x100036d0; -a0 = 0x1000a270; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4207a4; -a1 = a1; -L4207a4: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100036e0; -//nop; -a0 = 0x1000a4d0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4207c0; -a1 = a1; -L4207c0: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100036e8; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4207dc; -a1 = a1; -L4207dc: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4207e8: -t6 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x100036f0; -//nop; -t3 = t6 + t7; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420808; -a1 = a1; -L420808: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4208d4;} -//nop; -t1 = 0x1000a36c; -at = 0x1; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L420898;} -//nop; -t4 = 0x10000008; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L420898;} -//nop; -t2 = 0x100036f8; -t5 = MEM_U32(sp + 340); -t0 = s0 << 2; -t2 = t2; -MEM_U32(sp + 20) = t2; -MEM_U32(sp + 16) = zero; -t8 = t5 + t0; -t9 = MEM_U32(t8 + 0); -t6 = 0x10003728; -MEM_U32(sp + 24) = t9; -//nop; -t6 = t6; -MEM_U32(sp + 28) = t6; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L42088c; -a3 = zero; -L42088c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L420898: -at = 0x100003e8; -t7 = 0x1; -MEM_U32(at + 0) = t7; -at = 0x100003dc; -a0 = 0x1000372c; -//nop; -t3 = 0x1; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t3; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L4208c8; -a0 = a0; -L4208c8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4208d4: -t1 = MEM_U32(sp + 340); -t4 = s0 << 2; -a1 = 0x10003730; -//nop; -t2 = t1 + t4; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4208f4; -a1 = a1; -L4208f4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a13c; -goto L420938;} -at = 0x1000a13c; -t0 = 0x1000a36c; -t5 = 0x8; -t0 = MEM_U32(t0 + 0); -MEM_U32(at + 0) = t5; -at = 0x3; -if (t0 != at) {//nop; -goto L420a9c;} -//nop; -t8 = 0x1000a140; -at = 0x1000a140; -t8 = MEM_U32(t8 + 0); -//nop; -t9 = t8 + 0x1; -MEM_U32(at + 0) = t9; -goto L420a9c; -MEM_U32(at + 0) = t9; -L420938: -t6 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x10003738; -//nop; -t3 = t6 + t7; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420958; -a1 = a1; -L420958: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a13c; -goto L42099c;} -at = 0x1000a13c; -t4 = 0x1000a36c; -t1 = 0x10; -t4 = MEM_U32(t4 + 0); -MEM_U32(at + 0) = t1; -at = 0x3; -if (t4 != at) {//nop; -goto L420a9c;} -//nop; -t2 = 0x1000a140; -at = 0x1000a140; -t2 = MEM_U32(t2 + 0); -//nop; -t5 = t2 + 0x1; -MEM_U32(at + 0) = t5; -goto L420a9c; -MEM_U32(at + 0) = t5; -L42099c: -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10003744; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4209bc; -a1 = a1; -L4209bc: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a13c; -goto L420a00;} -at = 0x1000a13c; -t7 = 0x1000a36c; -t6 = 0x20; -t7 = MEM_U32(t7 + 0); -MEM_U32(at + 0) = t6; -at = 0x3; -if (t7 != at) {//nop; -goto L420a9c;} -//nop; -t3 = 0x1000a140; -at = 0x1000a140; -t3 = MEM_U32(t3 + 0); -//nop; -t1 = t3 + 0x1; -MEM_U32(at + 0) = t1; -goto L420a9c; -MEM_U32(at + 0) = t1; -L420a00: -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x10003750; -//nop; -t5 = t4 + t2; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420a20; -a1 = a1; -L420a20: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a13c; -goto L420a64;} -at = 0x1000a13c; -t8 = 0x1000a36c; -t0 = 0x40; -t8 = MEM_U32(t8 + 0); -MEM_U32(at + 0) = t0; -at = 0x3; -if (t8 != at) {//nop; -goto L420a9c;} -//nop; -t9 = 0x1000a140; -at = 0x1000a140; -t9 = MEM_U32(t9 + 0); -//nop; -t6 = t9 + 0x1; -MEM_U32(at + 0) = t6; -goto L420a9c; -MEM_U32(at + 0) = t6; -L420a64: -t7 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x1000375c; -//nop; -t1 = t7 + t3; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420a84; -a1 = a1; -L420a84: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a140; -goto L420a9c;} -at = 0x1000a140; -t4 = 0x1; -MEM_U32(at + 0) = t4; -goto L42a934; -MEM_U32(at + 0) = t4; -L420a9c: -t2 = 0x1000a36c; -at = 0x3; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L420c10;} -//nop; -t5 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x1000376c; -//nop; -t8 = t5 + t0; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420ad4; -a1 = a1; -L420ad4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L420b64;} -//nop; -t9 = MEM_U32(sp + 340); -t6 = s0 << 2; -t7 = t9 + t6; -//nop; -a1 = 0x10003774; -a0 = MEM_U32(t7 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420b00; -a1 = a1; -L420b00: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L420b64;} -//nop; -t3 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x10003780; -//nop; -t4 = t3 + t1; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420b2c; -a1 = a1; -L420b2c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L420b64;} -//nop; -t2 = MEM_U32(sp + 340); -t5 = s0 << 2; -a1 = 0x1000378c; -//nop; -t0 = t2 + t5; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420b58; -a1 = a1; -L420b58: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L420bd8;} -//nop; -L420b64: -t8 = MEM_U32(sp + 340); -t9 = s0 << 2; -t6 = t8 + t9; -//nop; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L420b84; -//nop; -L420b84: -// bdead 40020003 gp = MEM_U32(sp + 64); -t7 = MEM_U32(sp + 340); -t3 = s0 << 2; -//nop; -t1 = t7 + t3; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a4c0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L420ba8; -//nop; -L420ba8: -// bdead 40020003 gp = MEM_U32(sp + 64); -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -//nop; -t5 = t4 + t2; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a4d0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L420bcc; -//nop; -L420bcc: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L420bd8: -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10003798; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420bf8; -a1 = a1; -L420bf8: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000284; -goto L420c10;} -at = 0x10000284; -t6 = 0x1; -MEM_U32(at + 0) = t6; -goto L42a934; -MEM_U32(at + 0) = t6; -L420c10: -t7 = 0x1000a36c; -at = 0x6; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L420c60;} -//nop; -t3 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x100037a4; -//nop; -t4 = t3 + t1; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420c48; -a1 = a1; -L420c48: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000290; -goto L420c60;} -at = 0x10000290; -t2 = 0x1; -MEM_U32(at + 0) = t2; -goto L42a934; -MEM_U32(at + 0) = t2; -L420c60: -t5 = 0x1000a36c; -at = 0x2; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L420cf4;} -//nop; -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x100037ac; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420c98; -a1 = a1; -L420c98: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L420cf4;} -//nop; -t6 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t3 = t6 + t7; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a320; -//nop; -f_addstr(mem, sp, a0, a1); -goto L420cc4; -//nop; -L420cc4: -// bdead 40020003 gp = MEM_U32(sp + 64); -t1 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t2 = t1 + t4; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a4c0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L420ce8; -//nop; -L420ce8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L420cf4: -t5 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x100037b4; -//nop; -t8 = t5 + t0; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420d14; -a1 = a1; -L420d14: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a13c; -goto L420d58;} -at = 0x1000a13c; -t6 = MEM_U32(sp + 340); -t9 = 0x8; -t7 = s0 << 2; -MEM_U32(at + 0) = t9; -//nop; -t3 = t6 + t7; -a0 = MEM_U32(t3 + 0); -a1 = zero; -v0 = f_savestr(mem, sp, a0, a1); -goto L420d44; -a1 = zero; -L420d44: -// bdead 4002010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a144; -MEM_U32(at + 0) = v0; -goto L42a934; -MEM_U32(at + 0) = v0; -L420d58: -t1 = MEM_U32(sp + 340); -t4 = s0 << 2; -a1 = 0x100037bc; -//nop; -t2 = t1 + t4; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420d78; -a1 = a1; -L420d78: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a13c; -goto L420dc0;} -at = 0x1000a13c; -t0 = MEM_U32(sp + 340); -t5 = 0x10; -t8 = s0 << 2; -MEM_U32(at + 0) = t5; -t9 = t0 + t8; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = zero; -//nop; -v0 = f_savestr(mem, sp, a0, a1); -goto L420dac; -//nop; -L420dac: -// bdead 4002010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a144; -MEM_U32(at + 0) = v0; -goto L42a934; -MEM_U32(at + 0) = v0; -L420dc0: -t6 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x100037c8; -//nop; -t3 = t6 + t7; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420de0; -a1 = a1; -L420de0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a13c; -goto L420e24;} -at = 0x1000a13c; -t4 = MEM_U32(sp + 340); -t1 = 0x20; -t2 = s0 << 2; -//nop; -MEM_U32(at + 0) = t1; -t5 = t4 + t2; -a0 = MEM_U32(t5 + 0); -a1 = zero; -v0 = f_savestr(mem, sp, a0, a1); -goto L420e10; -a1 = zero; -L420e10: -// bdead 4002010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a144; -MEM_U32(at + 0) = v0; -goto L42a934; -MEM_U32(at + 0) = v0; -L420e24: -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x100037d4; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420e44; -a1 = a1; -L420e44: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a13c; -goto L420e88;} -at = 0x1000a13c; -t7 = MEM_U32(sp + 340); -t6 = 0x40; -t3 = s0 << 2; -//nop; -MEM_U32(at + 0) = t6; -t1 = t7 + t3; -a0 = MEM_U32(t1 + 0); -a1 = zero; -v0 = f_savestr(mem, sp, a0, a1); -goto L420e74; -a1 = zero; -L420e74: -// bdead 4002010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a144; -MEM_U32(at + 0) = v0; -goto L42a934; -MEM_U32(at + 0) = v0; -L420e88: -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x100037e0; -//nop; -t5 = t4 + t2; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420ea8; -a1 = a1; -L420ea8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L420ed4; -//nop; -L420ed4: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100037e8; -//nop; -a0 = 0x1000a510; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L420ef0; -a1 = a1; -L420ef0: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L420efc: -t6 = MEM_U32(sp + 340); -t7 = s0 << 2; -t3 = t6 + t7; -t1 = MEM_U32(t3 + 0); -//nop; -t4 = MEM_U8(t1 + 2); -//nop; -if (t4 == 0) {//nop; -goto L420f48;} -//nop; -t2 = s0 << 2; -a1 = 0x100037f8; -//nop; -t5 = t6 + t2; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420f3c; -a1 = a1; -L420f3c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L420f74;} -//nop; -L420f48: -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L420f68; -//nop; -L420f68: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L420f74: -t7 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x10003804; -//nop; -t1 = t7 + t3; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420f94; -a1 = a1; -L420f94: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L420fcc;} -//nop; -t4 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t2 = t4 + t6; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L420fc0; -//nop; -L420fc0: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L420fcc: -t5 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x10003810; -//nop; -t8 = t5 + t0; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L420fec; -a1 = a1; -L420fec: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a178; -goto L421000;} -at = 0x1000a178; -t9 = 0x1; -MEM_U32(at + 0) = t9; -L421000: -t7 = MEM_U32(sp + 340); -t3 = s0 << 2; -//nop; -t1 = t7 + t3; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L421020; -//nop; -L421020: -// bdead 40020003 gp = MEM_U32(sp + 64); -t4 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t2 = t4 + t6; -a0 = MEM_U32(t2 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L421040; -//nop; -L421040: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42104c: -t5 = MEM_U32(sp + 340); -t0 = s0 << 2; -t8 = t5 + t0; -t9 = MEM_U32(t8 + 0); -//nop; -t7 = MEM_U8(t9 + 2); -//nop; -if (t7 != 0) {//nop; -goto L42108c;} -//nop; -t3 = 0x10000228; -at = 0x10000228; -t3 = MEM_U32(t3 + 0); -//nop; -t1 = t3 + 0x1; -MEM_U32(at + 0) = t1; -goto L42a934; -MEM_U32(at + 0) = t1; -L42108c: -t4 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x1000381c; -//nop; -t2 = t4 + t6; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4210ac; -a1 = a1; -L4210ac: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000004; -goto L421100;} -at = 0x10000004; -t5 = 0x100003e8; -MEM_U32(at + 0) = zero; -t5 = MEM_U32(t5 + 0); -at = 0x1; -if (t5 == at) {at = 0x100003e8; -goto L4210d8;} -at = 0x100003e8; -t0 = 0x2; -MEM_U32(at + 0) = t0; -L4210d8: -t8 = MEM_U32(sp + 340); -t9 = s0 << 2; -t7 = t8 + t9; -//nop; -a0 = MEM_U32(t7 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L4210f4; -//nop; -L4210f4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L421100: -t3 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x10003824; -//nop; -t4 = t3 + t1; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421120; -a1 = a1; -L421120: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4211e0;} -//nop; -t6 = 0x1000a36c; -at = 0x1; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L4211b0;} -//nop; -t2 = 0x10000008; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L4211b0;} -//nop; -t5 = 0x1000382c; -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t5 = t5; -MEM_U32(sp + 20) = t5; -MEM_U32(sp + 16) = zero; -t9 = t0 + t8; -t7 = MEM_U32(t9 + 0); -t3 = 0x1000385c; -//nop; -t3 = t3; -MEM_U32(sp + 28) = t3; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t7; -f_error(mem, sp, a0, a1, a2, a3); -goto L4211a4; -MEM_U32(sp + 24) = t7; -L4211a4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4211b0: -at = 0x100003e4; -a0 = 0x10003860; -//nop; -t1 = 0x3; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t1; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L4211d4; -a0 = a0; -L4211d4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4211e0: -t4 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10003864; -//nop; -t2 = t4 + t6; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421200; -a1 = a1; -L421200: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4212b0;} -//nop; -t5 = 0x1000a36c; -at = 0x1; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L421290;} -//nop; -t0 = 0x10000008; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L421290;} -//nop; -t8 = 0x1000386c; -t9 = MEM_U32(sp + 340); -t7 = s0 << 2; -t8 = t8; -t3 = t9 + t7; -t4 = 0x1000389c; -MEM_U32(sp + 20) = t8; -MEM_U32(sp + 16) = zero; -t1 = MEM_U32(t3 + 0); -//nop; -t4 = t4; -MEM_U32(sp + 28) = t4; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t1; -f_error(mem, sp, a0, a1, a2, a3); -goto L421284; -MEM_U32(sp + 24) = t1; -L421284: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L421290: -a1 = 0x100038a0; -//nop; -a0 = 0x1000a2b0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4212a4; -a1 = a1; -L4212a4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4212b0: -t6 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x100038ac; -//nop; -t5 = t6 + t2; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4212d0; -a1 = a1; -L4212d0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L421438;} -//nop; -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a4a0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4212fc; -//nop; -L4212fc: -t7 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -// bdead 40030003 gp = MEM_U32(sp + 64); -at = (int)s0 < (int)t7; -if (at != 0) {//nop; -goto L42135c;} -//nop; -t3 = 0x100038b8; -//nop; -t3 = t3; -MEM_U32(sp + 20) = t3; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L42133c; -MEM_U32(sp + 16) = zero; -L42133c: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L421354; -//nop; -L421354: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L42135c: -s2 = 0x10000400; -//nop; -s2 = MEM_U32(s2 + 0); -//nop; -t1 = MEM_U8(s2 + 0); -//nop; -if (t1 == 0) {//nop; -goto L42140c;} -//nop; -L42137c: -t4 = MEM_U8(s2 + 0); -t6 = 0xfb504f0; -//nop; -t2 = t4 + t6; -t5 = MEM_U8(t2 + 1); -//nop; -t0 = t5 & 0x4; -if (t0 != 0) {//nop; -goto L4213fc;} -//nop; -t8 = 0x100038d8; -t9 = MEM_U32(sp + 340); -t7 = s0 << 2; -t8 = t8; -t3 = t9 + t7; -MEM_U32(sp + 20) = t8; -MEM_U32(sp + 16) = zero; -t1 = MEM_U32(t3 + 0); -//nop; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t1; -f_error(mem, sp, a0, a1, a2, a3); -goto L4213dc; -MEM_U32(sp + 24) = t1; -L4213dc: -// bdead 400a0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4213f4; -//nop; -L4213f4: -// bdead 400a0003 gp = MEM_U32(sp + 64); -//nop; -L4213fc: -t4 = MEM_U8(s2 + 1); -s2 = s2 + 0x1; -if (t4 != 0) {//nop; -goto L42137c;} -//nop; -L42140c: -t6 = MEM_U32(sp + 340); -t2 = s0 << 2; -//nop; -t5 = t6 + t2; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a4a0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42142c; -//nop; -L42142c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L421438: -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x100038f8; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421458; -a1 = a1; -L421458: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000274; -goto L42148c;} -at = 0x10000274; -a1 = 0x10003900; -//nop; -t7 = 0x1; -a0 = 0x1000a310; -MEM_U32(at + 0) = t7; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L421480; -a1 = a1; -L421480: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42148c: -t3 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x10003908; -//nop; -t4 = t3 + t1; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4214ac; -a1 = a1; -L4214ac: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4214ec;} -//nop; -t6 = 0x10003910; -//nop; -t6 = t6; -MEM_U32(sp + 20) = t6; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4214e0; -MEM_U32(sp + 16) = zero; -L4214e0: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4214ec: -t2 = MEM_U32(sp + 340); -t5 = s0 << 2; -a1 = 0x10003924; -//nop; -t0 = t2 + t5; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42150c; -a1 = a1; -L42150c: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000028c; -goto L421524;} -at = 0x1000028c; -t8 = 0x1; -MEM_U32(at + 0) = t8; -goto L42a934; -MEM_U32(at + 0) = t8; -L421524: -t9 = MEM_U32(sp + 340); -t7 = s0 << 2; -t3 = t9 + t7; -//nop; -a1 = 0x1000392c; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421544; -a1 = a1; -L421544: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4215d8;} -//nop; -t1 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t6 = t1 + t4; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L421570; -//nop; -L421570: -// bdead 40020103 gp = MEM_U32(sp + 64); -t2 = 0x1; -at = 0x100002dc; -t5 = 0x10000384; -MEM_U32(at + 0) = t2; -t5 = MEM_U32(t5 + 0); -at = 0x1; -if (t5 != at) {//nop; -goto L42a934;} -//nop; -t0 = 0x10000324; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {at = 0x10000318; -goto L4215c0;} -at = 0x10000318; -t8 = 0x1; -MEM_U32(at + 0) = t8; -at = 0x10000324; -t9 = 0x1; -MEM_U32(at + 0) = t9; -L4215c0: -at = 0x10000384; -//nop; -MEM_U32(at + 0) = zero; -at = 0x10000348; -MEM_U32(at + 0) = zero; -goto L42a934; -MEM_U32(at + 0) = zero; -L4215d8: -t7 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x10003934; -//nop; -t1 = t7 + t3; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4215f8; -a1 = a1; -L4215f8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L421688;} -//nop; -t4 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10003944; -//nop; -t2 = t4 + t6; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421624; -a1 = a1; -L421624: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42165c;} -//nop; -t5 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x1000394c; -//nop; -t8 = t5 + t0; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421650; -a1 = a1; -L421650: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L421688;} -//nop; -L42165c: -t9 = MEM_U32(sp + 340); -t7 = s0 << 2; -t3 = t9 + t7; -//nop; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42167c; -//nop; -L42167c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L421688: -t1 = MEM_U32(sp + 340); -t4 = s0 << 2; -a1 = 0x10003958; -//nop; -t6 = t1 + t4; -a0 = MEM_U32(t6 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4216a8; -a1 = a1; -L4216a8: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000324; -goto L4216c8;} -at = 0x10000324; -t2 = 0x1; -MEM_U32(at + 0) = zero; -at = 0x10000348; -MEM_U32(at + 0) = t2; -goto L42a934; -MEM_U32(at + 0) = t2; -L4216c8: -t5 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x10003968; -//nop; -t8 = t5 + t0; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4216e8; -a1 = a1; -L4216e8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L421740;} -//nop; -t9 = 0x10003970; -at = 0x1000a254; -t9 = t9; -t7 = 0x10003978; -MEM_U32(at + 0) = t9; -at = 0x1000a258; -t7 = t7; -MEM_U32(at + 0) = t7; -at = 0x100001e8; -//nop; -a0 = 0x10003980; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = zero; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L421734; -a0 = a0; -L421734: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L421740: -t3 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x10003984; -//nop; -t4 = t3 + t1; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421760; -a1 = a1; -L421760: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4217f0;} -//nop; -t6 = 0x10000004; -at = 0x1; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == at) {at = 0x2; -goto L42178c;} -at = 0x2; -if (t6 != at) {//nop; -goto L4217a0;} -//nop; -L42178c: -t2 = 0x1000398c; -at = 0x1000a254; -t2 = t2; -MEM_U32(at + 0) = t2; -goto L4217b0; -MEM_U32(at + 0) = t2; -L4217a0: -t5 = 0x10003994; -at = 0x1000a254; -t5 = t5; -MEM_U32(at + 0) = t5; -L4217b0: -t0 = 0x1000399c; -at = 0x1000a258; -t0 = t0; -MEM_U32(at + 0) = t0; -at = 0x100001e8; -a0 = 0x100039a4; -//nop; -t8 = 0x1; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t8; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L4217e4; -a0 = a0; -L4217e4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4217f0: -t9 = 0x1000a36c; -at = 0x2; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L421860;} -//nop; -t7 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x100039a8; -//nop; -t1 = t7 + t3; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421828; -a1 = a1; -L421828: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L421860;} -//nop; -t4 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t2 = t4 + t6; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a320; -//nop; -f_addstr(mem, sp, a0, a1); -goto L421854; -//nop; -L421854: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L421860: -t5 = 0x1000a36c; -at = 0x3; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L4218c4;} -//nop; -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x100039b4; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421898; -a1 = a1; -L421898: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4218c4;} -//nop; -a1 = 0x100039c4; -//nop; -a0 = 0x1000a330; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4218b8; -a1 = a1; -L4218b8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4218c4: -t7 = 0x1000a36c; -at = 0x3; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L421c24;} -//nop; -t3 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x100039d4; -//nop; -t4 = t3 + t1; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4218fc; -a1 = a1; -L4218fc: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4219b8;} -//nop; -t6 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x100039dc; -//nop; -t5 = t6 + t2; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421928; -a1 = a1; -L421928: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4219b8;} -//nop; -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x100039e4; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421954; -a1 = a1; -L421954: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4219b8;} -//nop; -t7 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x100039f0; -//nop; -t1 = t7 + t3; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421980; -a1 = a1; -L421980: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4219b8;} -//nop; -t4 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x100039f8; -//nop; -t2 = t4 + t6; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4219ac; -a1 = a1; -L4219ac: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L421c24;} -//nop; -L4219b8: -t5 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x10003a08; -//nop; -t8 = t5 + t0; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4219d8; -a1 = a1; -L4219d8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a16c; -goto L4219ec;} -at = 0x1000a16c; -t9 = 0x1; -MEM_U32(at + 0) = t9; -L4219ec: -t7 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x10003a10; -//nop; -t1 = t7 + t3; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421a0c; -a1 = a1; -L421a0c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L421a38;} -//nop; -a1 = 0x10003a20; -//nop; -a0 = 0x1000a330; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L421a2c; -a1 = a1; -L421a2c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L421a38: -a0 = 0x10003a2c; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L421a4c; -//nop; -L421a4c: -// bdead 4002000b gp = MEM_U32(sp + 64); -t4 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10003a24; -//nop; -t2 = t4 + t6; -a0 = MEM_U32(t2 + 0); -s4 = v0; -a2 = s4; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L421a78; -a1 = a1; -L421a78: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L421ba4;} -//nop; -a0 = 0x10003a34; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L421a98; -//nop; -L421a98: -t5 = MEM_U32(sp + 340); -t0 = s0 << 2; -t8 = t5 + t0; -t9 = MEM_U32(t8 + 0); -// bdead 4402000b gp = MEM_U32(sp + 64); -t7 = v0 + t9; -MEM_U32(sp + 260) = t7; -t3 = MEM_U32(sp + 260); -//nop; -t1 = MEM_U8(t3 + 0); -//nop; -if (t1 == 0) {//nop; -goto L421b3c;} -//nop; -L421acc: -t4 = MEM_U32(sp + 260); -t2 = 0xfb504f0; -t6 = MEM_U8(t4 + 0); -//nop; -t5 = t6 + t2; -t0 = MEM_U8(t5 + 1); -//nop; -t8 = t0 & 0x1; -if (t8 == 0) {//nop; -goto L421b00;} -//nop; -t9 = MEM_U8(t5 + 258); -MEM_U8(t4 + 0) = (uint8_t)t9; -goto L421b14; -MEM_U8(t4 + 0) = (uint8_t)t9; -L421b00: -t7 = MEM_U32(sp + 260); -//nop; -t3 = MEM_U8(t7 + 0); -//nop; -MEM_U8(t7 + 0) = (uint8_t)t3; -L421b14: -t1 = MEM_U32(sp + 260); -//nop; -t6 = t1 + 0x1; -MEM_U32(sp + 260) = t6; -t2 = MEM_U32(sp + 260); -//nop; -t0 = MEM_U8(t2 + 0); -//nop; -if (t0 != 0) {//nop; -goto L421acc;} -//nop; -L421b3c: -a0 = 0x10003a48; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L421b50; -//nop; -L421b50: -t8 = MEM_U32(sp + 340); -// bdead 4202010b gp = MEM_U32(sp + 64); -t5 = s0 << 2; -t9 = t8 + t5; -t4 = MEM_U32(t9 + 0); -//nop; -a0 = 0x10003a3c; -s5 = v0; -a2 = zero; -a1 = s5 + t4; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L421b80; -a0 = a0; -L421b80: -// bdead 4002000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a330; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L421b98; -a1 = s4; -L421b98: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L421ba4: -t3 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t1 = t3 + t7; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L421bc4; -//nop; -L421bc4: -// bdead 40020003 gp = MEM_U32(sp + 64); -t6 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x10003a50; -//nop; -t0 = t6 + t2; -a0 = MEM_U32(t0 + 0); -a2 = 0x4; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L421bec; -a1 = a1; -L421bec: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a934;} -//nop; -t8 = MEM_U32(sp + 340); -t5 = s0 << 2; -t9 = t8 + t5; -a0 = MEM_U32(t9 + 0); -//nop; -//nop; -//nop; -f_add_static_opt(mem, sp, a0); -goto L421c18; -//nop; -L421c18: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L421c24: -t4 = 0x1000a36c; -at = 0x6; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L421c94;} -//nop; -t3 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x10003a58; -//nop; -t1 = t3 + t7; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421c5c; -a1 = a1; -L421c5c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L421c94;} -//nop; -t6 = MEM_U32(sp + 340); -t2 = s0 << 2; -//nop; -t0 = t6 + t2; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a418; -//nop; -f_addstr(mem, sp, a0, a1); -goto L421c88; -//nop; -L421c88: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L421c94: -t8 = 0x1000a36c; -at = 0x1; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L42a880;} -//nop; -t5 = MEM_U32(sp + 340); -t9 = s0 << 2; -t4 = t5 + t9; -//nop; -a1 = 0x10003a64; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421ccc; -a1 = a1; -L421ccc: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -t3 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t3; -if (at != 0) {//nop; -goto L421d34;} -//nop; -t7 = 0x10003a74; -//nop; -t7 = t7; -MEM_U32(sp + 20) = t7; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L421d14; -MEM_U32(sp + 16) = zero; -L421d14: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L421d2c; -//nop; -L421d2c: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L421d34: -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t2 = t1 + t6; -a1 = MEM_U32(t2 + -4); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L421d54; -//nop; -L421d54: -// bdead 40020003 gp = MEM_U32(sp + 64); -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -//nop; -t5 = t0 + t8; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L421d78; -//nop; -L421d78: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L421d84: -t9 = 0x1000a36c; -at = 0x1; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L421e74;} -//nop; -t4 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x10003aa4; -//nop; -t7 = t4 + t3; -a0 = MEM_U32(t7 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421dbc; -a1 = a1; -L421dbc: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L421e74;} -//nop; -a1 = 0x10003aac; -//nop; -a0 = 0x1000a5d0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L421ddc; -a1 = a1; -L421ddc: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10003ab4; -//nop; -a0 = 0x1000a2a0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L421df8; -a1 = a1; -L421df8: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10003abc; -//nop; -a0 = 0x1000a5e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L421e14; -a1 = a1; -L421e14: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10003ac4; -//nop; -a0 = 0x1000a2c0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L421e30; -a1 = a1; -L421e30: -// bdead 40020003 gp = MEM_U32(sp + 64); -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t2 = t1 + t6; -a0 = MEM_U32(t2 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L421e50; -//nop; -L421e50: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -t0 = 0x1000a14c; -at = 0x1000a14c; -t0 = MEM_U32(t0 + 0); -//nop; -t8 = t0 + 0x1; -MEM_U32(at + 0) = t8; -goto L42a934; -MEM_U32(at + 0) = t8; -L421e74: -t5 = MEM_U32(sp + 340); -t9 = s0 << 2; -t4 = t5 + t9; -t3 = MEM_U32(t4 + 0); -//nop; -t7 = MEM_U8(t3 + 2); -//nop; -if (t7 != 0) {//nop; -goto L421ec0;} -//nop; -t1 = s0 << 2; -//nop; -t6 = t5 + t1; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L421eb4; -//nop; -L421eb4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L421ec0: -t2 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x10003ad0; -//nop; -t8 = t2 + t0; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421ee0; -a1 = a1; -L421ee0: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000360; -goto L421ef8;} -at = 0x10000360; -t9 = 0x1; -MEM_U32(at + 0) = t9; -goto L42a934; -MEM_U32(at + 0) = t9; -L421ef8: -t4 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x10003adc; -//nop; -t7 = t4 + t3; -a0 = MEM_U32(t7 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421f18; -a1 = a1; -L421f18: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L421f50;} -//nop; -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x10003ae0; -//nop; -t6 = t5 + t1; -a0 = MEM_U32(t6 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L421f44; -a1 = a1; -L421f44: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L421fe8;} -//nop; -L421f50: -t2 = 0x100003f0; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L421fb0;} -//nop; -t0 = 0x10003ae4; -//nop; -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L421f90; -MEM_U32(sp + 16) = zero; -L421f90: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L421fa8; -//nop; -L421fa8: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L421fb0: -t9 = MEM_U32(sp + 340); -at = 0x100003f4; -t4 = s0 << 2; -t8 = 0x1; -t3 = t9 + t4; -//nop; -MEM_U32(at + 0) = t8; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L421fdc; -//nop; -L421fdc: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L421fe8: -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -a1 = 0x10003b04; -//nop; -t1 = t7 + t5; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L422008; -a1 = a1; -L422008: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x100002c0; -goto L422020;} -at = 0x100002c0; -t6 = 0x1; -MEM_U32(at + 0) = t6; -goto L42a934; -MEM_U32(at + 0) = t6; -L422020: -t2 = 0x1000a36c; -at = 0x3; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L4220b8;} -//nop; -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10003b0c; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L422058; -a1 = a1; -L422058: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a15c; -goto L4220b8;} -at = 0x1000a15c; -t3 = MEM_U32(sp + 340); -t4 = 0x1; -t7 = s0 << 2; -//nop; -MEM_U32(at + 0) = t4; -t5 = t3 + t7; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42208c; -//nop; -L42208c: -// bdead 40020003 gp = MEM_U32(sp + 64); -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t2 = t1 + t6; -a0 = MEM_U32(t2 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L4220ac; -//nop; -L4220ac: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4220b8: -t0 = 0x1000a36c; -at = 0x5; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L422128;} -//nop; -t8 = MEM_U32(sp + 340); -t9 = s0 << 2; -t4 = t8 + t9; -//nop; -a1 = 0x10003b18; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4220f0; -a1 = a1; -L4220f0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L422128;} -//nop; -t3 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t5 = t3 + t7; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a428; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42211c; -//nop; -L42211c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L422128: -t1 = 0x1000a36c; -at = 0x6; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L4221c4;} -//nop; -t6 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x10003b20; -//nop; -t0 = t6 + t2; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L422160; -a1 = a1; -L422160: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L422198;} -//nop; -t8 = MEM_U32(sp + 340); -t9 = s0 << 2; -t4 = t8 + t9; -//nop; -a1 = 0x10003b28; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42218c; -a1 = a1; -L42218c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4221c4;} -//nop; -L422198: -t3 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t5 = t3 + t7; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a418; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4221b8; -//nop; -L4221b8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4221c4: -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10003b30; -//nop; -t2 = t1 + t6; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4221e4; -a1 = a1; -L4221e4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42221c;} -//nop; -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L422210; -//nop; -L422210: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42221c: -t4 = 0x1000a36c; -at = 0x1; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L42a880;} -//nop; -t3 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x10003b3c; -//nop; -t5 = t3 + t7; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L422254; -a1 = a1; -L422254: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t2 = t1 + t6; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L422280; -//nop; -L422280: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42228c: -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10003b50; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4222ac; -a1 = a1; -L4222ac: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L422300;} -//nop; -t4 = 0x10003b58; -//nop; -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4222e0; -MEM_U32(sp + 16) = zero; -L4222e0: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4222f8; -//nop; -L4222f8: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L422300: -t3 = 0x1000a36c; -at = 0x1; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L4226e8;} -//nop; -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -a1 = 0x10003b80; -//nop; -t1 = t7 + t5; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L422338; -a1 = a1; -L422338: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L422370;} -//nop; -t6 = MEM_U32(sp + 340); -t2 = s0 << 2; -//nop; -t0 = t6 + t2; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L422364; -//nop; -L422364: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L422370: -t8 = MEM_U32(sp + 340); -t9 = s0 << 2; -t4 = t8 + t9; -//nop; -a1 = 0x10003b88; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L422390; -a1 = a1; -L422390: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4223c8;} -//nop; -t3 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x10003b90; -//nop; -t5 = t3 + t7; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4223bc; -a1 = a1; -L4223bc: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4223f4;} -//nop; -L4223c8: -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t2 = t1 + t6; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4223e8; -//nop; -L4223e8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4223f4: -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10003b9c; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L422414; -a1 = a1; -L422414: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4224f0;} -//nop; -t4 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t4; -if (at == 0) {//nop; -goto L422458;} -//nop; -t3 = MEM_U32(sp + 340); -t7 = s0 << 2; -t5 = t3 + t7; -t1 = MEM_U32(t5 + 0); -at = 0x2d; -t6 = MEM_U8(t1 + 0); -//nop; -if (t6 != at) {//nop; -goto L4224a0;} -//nop; -L422458: -t2 = 0x10003bb0; -//nop; -t2 = t2; -MEM_U32(sp + 20) = t2; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L422480; -MEM_U32(sp + 16) = zero; -L422480: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L422498; -//nop; -L422498: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L4224a0: -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -a1 = MEM_U32(t9 + -4); -//nop; -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4224c0; -//nop; -L4224c0: -// bdead 40020003 gp = MEM_U32(sp + 64); -t4 = MEM_U32(sp + 340); -t3 = s0 << 2; -//nop; -t7 = t4 + t3; -a1 = MEM_U32(t7 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4224e4; -//nop; -L4224e4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4224f0: -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x10003be0; -//nop; -t6 = t5 + t1; -a0 = MEM_U32(t6 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L422510; -a1 = a1; -L422510: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4225ec;} -//nop; -t2 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t2; -if (at == 0) {//nop; -goto L422554;} -//nop; -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -t4 = MEM_U32(t9 + 0); -at = 0x2d; -t3 = MEM_U8(t4 + 0); -//nop; -if (t3 != at) {//nop; -goto L42259c;} -//nop; -L422554: -t7 = 0x10003bf0; -//nop; -t7 = t7; -MEM_U32(sp + 20) = t7; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L42257c; -MEM_U32(sp + 16) = zero; -L42257c: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L422594; -//nop; -L422594: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L42259c: -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -//nop; -t6 = t5 + t1; -a1 = MEM_U32(t6 + -4); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4225bc; -//nop; -L4225bc: -// bdead 40020003 gp = MEM_U32(sp + 64); -t2 = MEM_U32(sp + 340); -t0 = s0 << 2; -//nop; -t8 = t2 + t0; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4225e0; -//nop; -L4225e0: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4225ec: -t9 = MEM_U32(sp + 340); -t4 = s0 << 2; -t3 = t9 + t4; -//nop; -a1 = 0x10003c1c; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42260c; -a1 = a1; -L42260c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4226e8;} -//nop; -t7 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t7; -if (at == 0) {//nop; -goto L422650;} -//nop; -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -t6 = t5 + t1; -t2 = MEM_U32(t6 + 0); -at = 0x2d; -t0 = MEM_U8(t2 + 0); -//nop; -if (t0 != at) {//nop; -goto L422698;} -//nop; -L422650: -t8 = 0x10003c28; -//nop; -t8 = t8; -MEM_U32(sp + 20) = t8; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L422678; -MEM_U32(sp + 16) = zero; -L422678: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L422690; -//nop; -L422690: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L422698: -t9 = MEM_U32(sp + 340); -t4 = s0 << 2; -t3 = t9 + t4; -//nop; -a1 = MEM_U32(t3 + -4); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4226b8; -//nop; -L4226b8: -// bdead 40020003 gp = MEM_U32(sp + 64); -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -//nop; -t1 = t7 + t5; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4226dc; -//nop; -L4226dc: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4226e8: -t6 = MEM_U32(sp + 340); -t2 = s0 << 2; -t0 = t6 + t2; -t8 = MEM_U32(t0 + 0); -//nop; -t9 = MEM_U8(t8 + 2); -//nop; -if (t9 != 0) {//nop; -goto L4227ac;} -//nop; -t4 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t4; -if (at == 0) {//nop; -goto L422764;} -//nop; -a1 = 0x10003c50; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L422734; -a1 = a1; -L422734: -// bdead 40020003 gp = MEM_U32(sp + 64); -t3 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t5 = t3 + t7; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L422758; -//nop; -L422758: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L422764: -t1 = 0x10003c54; -//nop; -t1 = t1; -MEM_U32(sp + 20) = t1; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L42278c; -MEM_U32(sp + 16) = zero; -L42278c: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4227a4; -//nop; -L4227a4: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L4227ac: -t6 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x10003c78; -//nop; -t0 = t6 + t2; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4227cc; -a1 = a1; -L4227cc: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L422804;} -//nop; -t8 = MEM_U32(sp + 340); -t9 = s0 << 2; -t4 = t8 + t9; -//nop; -a1 = MEM_U32(t4 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4227f8; -//nop; -L4227f8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L422804: -t3 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x10003c88; -//nop; -t5 = t3 + t7; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L422824; -a1 = a1; -L422824: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x100002d8; -goto L422894;} -at = 0x100002d8; -t1 = 0x1; -MEM_U32(at + 0) = t1; -at = 0x100002e0; -t2 = MEM_U32(sp + 340); -t6 = 0x1; -t0 = s0 << 2; -//nop; -MEM_U32(at + 0) = t6; -t8 = t2 + t0; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a4d0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L422864; -//nop; -L422864: -t9 = MEM_U32(sp + 340); -// bdead 44020003 gp = MEM_U32(sp + 64); -t4 = s0 << 2; -t3 = t9 + t4; -//nop; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L422888; -//nop; -L422888: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L422894: -t7 = 0x1000a36c; -at = 0x3; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L42292c;} -//nop; -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x10003c90; -//nop; -t6 = t5 + t1; -a0 = MEM_U32(t6 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4228cc; -a1 = a1; -L4228cc: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a170; -goto L42292c;} -at = 0x1000a170; -t0 = MEM_U32(sp + 340); -t2 = 0x1; -t8 = s0 << 2; -MEM_U32(at + 0) = t2; -t9 = t0 + t8; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L422900; -//nop; -L422900: -// bdead 40020003 gp = MEM_U32(sp + 64); -t4 = MEM_U32(sp + 340); -t3 = s0 << 2; -//nop; -t7 = t4 + t3; -a0 = MEM_U32(t7 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L422920; -//nop; -L422920: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42292c: -t5 = 0x1000a36c; -at = 0x3; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L42299c;} -//nop; -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10003ca0; -//nop; -t2 = t1 + t6; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L422964; -a1 = a1; -L422964: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42299c;} -//nop; -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -t9 = t0 + t8; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L422990; -//nop; -L422990: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42299c: -t4 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x10003cb0; -//nop; -t7 = t4 + t3; -a0 = MEM_U32(t7 + 0); -a2 = 0x5; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L4229c0; -a1 = a1; -L4229c0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -t6 = t5 + t1; -t2 = MEM_U32(t6 + 0); -//nop; -t0 = MEM_U8(t2 + 5); -//nop; -if (t0 != 0) {at = 0x1000a248; -goto L4229fc;} -at = 0x1000a248; -t8 = 0x100; -MEM_U32(at + 0) = t8; -goto L422abc; -MEM_U32(at + 0) = t8; -L4229fc: -t9 = MEM_U32(sp + 340); -t4 = s0 << 2; -t3 = t9 + t4; -t7 = MEM_U32(t3 + 0); -t1 = 0xfb504f0; -t5 = MEM_U8(t7 + 5); -//nop; -t6 = t5 + t1; -t2 = MEM_U8(t6 + 1); -//nop; -t0 = t2 & 0x4; -if (t0 == 0) {//nop; -goto L422a74;} -//nop; -t8 = s0 << 2; -t4 = t9 + t8; -t3 = MEM_U32(t4 + 0); -//nop; -t7 = MEM_U8(t3 + 6); -//nop; -if (t7 != 0) {//nop; -goto L422a74;} -//nop; -t5 = s0 << 2; -t1 = t9 + t5; -t6 = MEM_U32(t1 + 0); -at = 0x1000a248; -t2 = MEM_U8(t6 + 5); -//nop; -t0 = t2 + 0xffffffd0; -MEM_U32(at + 0) = t0; -goto L422abc; -MEM_U32(at + 0) = t0; -L422a74: -t8 = 0x10003cb8; -//nop; -t8 = t8; -MEM_U32(sp + 20) = t8; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L422a9c; -MEM_U32(sp + 16) = zero; -L422a9c: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L422ab4; -//nop; -L422ab4: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L422abc: -at = 0x100002a8; -a0 = 0x10003ce8; -//nop; -t4 = 0x1; -MEM_U32(at + 0) = t4; -a0 = a0; -v0 = wrapper_getenv(mem, a0); -goto L422ad8; -a0 = a0; -L422ad8: -// bdead 4002000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a23c; -t3 = 0x1000a23c; -MEM_U32(at + 0) = v0; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L422b6c;} -//nop; -//nop; -s2 = t3; -a0 = s2; -v0 = wrapper_strlen(mem, a0); -goto L422b0c; -a0 = s2; -L422b0c: -// bdead 400a000b gp = MEM_U32(sp + 64); -at = v0 < 0x5; -if (at != 0) {//nop; -goto L422b6c;} -//nop; -L422b1c: -a1 = 0x10003cf0; -//nop; -a0 = s2; -a2 = 0x5; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L422b34; -a1 = a1; -L422b34: -// bdead 400a000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x100002a8; -goto L422b4c;} -at = 0x100002a8; -t7 = 0x2; -MEM_U32(at + 0) = t7; -goto L422b6c; -MEM_U32(at + 0) = t7; -L422b4c: -//nop; -s2 = s2 + 0x1; -a0 = s2; -v0 = wrapper_strlen(mem, a0); -goto L422b5c; -a0 = s2; -L422b5c: -// bdead 400a000b gp = MEM_U32(sp + 64); -at = v0 < 0x5; -if (at == 0) {//nop; -goto L422b1c;} -//nop; -L422b6c: -t9 = 0x100002a8; -at = 0x1; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L422bac;} -//nop; -t5 = 0x1000a23c; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L422bac;} -//nop; -t1 = 0x10003cf8; -at = 0x1000a23c; -t1 = t1; -MEM_U32(at + 0) = t1; -L422bac: -a0 = 0x10003cfc; -//nop; -a0 = a0; -//nop; -v0 = wrapper_getenv(mem, a0); -goto L422bc0; -//nop; -L422bc0: -// bdead 4002010b gp = MEM_U32(sp + 64); -a1 = 0x40040000; -at = 0x1000a240; -//nop; -a1 = a1 | 0x7477; -a0 = 0x2; -a2 = sp + 0x100; -MEM_U32(at + 0) = v0; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_ioctl(mem, a0, a1, sp); -goto L422be4; -MEM_U32(at + 0) = v0; -L422be4: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a934;} -//nop; -//nop; -//nop; -//nop; -v0 = wrapper_getpgrp(mem); -goto L422c00; -//nop; -L422c00: -t6 = MEM_U32(sp + 256); -// bdead 4002810b gp = MEM_U32(sp + 64); -if (v0 != t6) {//nop; -goto L42a934;} -//nop; -t2 = 0x1000a240; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L42a934;} -//nop; -t0 = 0x10003d04; -at = 0x100002a8; -t8 = MEM_U32(sp + 340); -t4 = s0 << 2; -t0 = t0; -MEM_U32(sp + 20) = t0; -MEM_U32(sp + 16) = zero; -MEM_U32(at + 0) = zero; -t3 = t8 + t4; -t7 = MEM_U32(t3 + 0); -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t7; -f_error(mem, sp, a0, a1, a2, a3); -goto L422c6c; -MEM_U32(sp + 24) = t7; -L422c6c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L422c78: -t9 = MEM_U32(sp + 340); -t5 = s0 << 2; -t1 = t9 + t5; -//nop; -a1 = 0x10003d3c; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L422c98; -a1 = a1; -L422c98: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000330; -goto L422cc4;} -at = 0x10000330; -t6 = 0x1; -MEM_U32(at + 0) = t6; -at = 0x1000032c; -//nop; -MEM_U32(at + 0) = zero; -at = 0x10000334; -MEM_U32(at + 0) = zero; -goto L42a934; -MEM_U32(at + 0) = zero; -L422cc4: -t2 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x10003d54; -//nop; -t8 = t2 + t0; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L422ce4; -a1 = a1; -L422ce4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L422d78;} -//nop; -t4 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t4; -if (at == 0) {//nop; -goto L422d30;} -//nop; -t3 = MEM_U32(sp + 340); -t7 = s0 << 2; -t9 = t3 + t7; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a550; -//nop; -f_addstr(mem, sp, a0, a1); -goto L422d24; -//nop; -L422d24: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L422d30: -t5 = 0x10003d60; -//nop; -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L422d58; -MEM_U32(sp + 16) = zero; -L422d58: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L422d70; -//nop; -L422d70: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L422d78: -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10003d84; -//nop; -t2 = t1 + t6; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L422d98; -a1 = a1; -L422d98: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000314; -goto L422db0;} -at = 0x10000314; -t0 = 0x1; -MEM_U32(at + 0) = t0; -goto L42a934; -MEM_U32(at + 0) = t0; -L422db0: -t8 = 0x1000a36c; -at = 0x1; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L422e20;} -//nop; -t4 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x10003d90; -//nop; -t7 = t4 + t3; -a0 = MEM_U32(t7 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L422de8; -a1 = a1; -L422de8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L422e20;} -//nop; -t9 = MEM_U32(sp + 340); -t5 = s0 << 2; -t1 = t9 + t5; -//nop; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L422e14; -//nop; -L422e14: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L422e20: -t6 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x10003d9c; -//nop; -t0 = t6 + t2; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L422e40; -a1 = a1; -L422e40: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a198; -goto L422ec0;} -at = 0x1000a198; -t4 = 0x1000a36c; -t8 = 0x1; -t4 = MEM_U32(t4 + 0); -MEM_U32(at + 0) = t8; -at = 0x1; -if (t4 != at) {//nop; -goto L422ec0;} -//nop; -a1 = 0x10003da8; -//nop; -a0 = 0x1000a2b0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L422e7c; -a1 = a1; -L422e7c: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10003db4; -//nop; -a0 = 0x1000a2c0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L422e98; -a1 = a1; -L422e98: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10003dc0; -//nop; -a0 = 0x1000a2c0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L422eb4; -a1 = a1; -L422eb4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L422ec0: -t3 = MEM_U32(sp + 340); -t7 = s0 << 2; -t9 = t3 + t7; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10003dcc; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L422ee0; -a1 = a1; -L422ee0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L422fb8;} -//nop; -t5 = 0x1000a36c; -at = 0x1; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L422f30;} -//nop; -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t2 = t1 + t6; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a310; -//nop; -f_addstr(mem, sp, a0, a1); -goto L422f24; -//nop; -L422f24: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L422f30: -t0 = 0x1000a36c; -at = 0x2; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L422f74;} -//nop; -t8 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t3 = t8 + t4; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a320; -//nop; -f_addstr(mem, sp, a0, a1); -goto L422f68; -//nop; -L422f68: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L422f74: -t7 = 0x1000a36c; -at = 0x3; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L42a880;} -//nop; -t9 = MEM_U32(sp + 340); -t5 = s0 << 2; -t1 = t9 + t5; -//nop; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L422fac; -//nop; -L422fac: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L422fb8: -t6 = 0x1000a36c; -at = 0x1; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L423054;} -//nop; -t2 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x10003ddc; -//nop; -t8 = t2 + t0; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L422ff0; -a1 = a1; -L422ff0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L423054;} -//nop; -a1 = 0x10003de4; -//nop; -a0 = 0x1000a5d0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L423010; -a1 = a1; -L423010: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10003dec; -//nop; -a0 = 0x1000a5e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L42302c; -a1 = a1; -L42302c: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10003df4; -//nop; -a0 = 0x1000a310; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L423048; -a1 = a1; -L423048: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L423054: -t4 = 0x1000a36c; -at = 0x4; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == at) {at = 0x2; -goto L423074;} -at = 0x2; -if (t4 != at) {//nop; -goto L4230a0;} -//nop; -L423074: -t3 = MEM_U32(sp + 340); -t7 = s0 << 2; -t9 = t3 + t7; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10003dfc; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L423094; -a1 = a1; -L423094: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42a934;} -//nop; -L4230a0: -t5 = 0x1000a36c; -at = 0x6; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L423238;} -//nop; -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10003e04; -//nop; -t2 = t1 + t6; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4230d8; -a1 = a1; -L4230d8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L423110;} -//nop; -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -//nop; -t4 = t0 + t8; -a1 = MEM_U32(t4 + 0); -a0 = 0x1000a418; -//nop; -f_addstr(mem, sp, a0, a1); -goto L423104; -//nop; -L423104: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L423110: -t3 = MEM_U32(sp + 340); -t7 = s0 << 2; -t9 = t3 + t7; -t5 = MEM_U32(t9 + 0); -//nop; -t1 = MEM_U8(t5 + 2); -//nop; -if (t1 != 0) {//nop; -goto L42a880;} -//nop; -t6 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t6; -if (at == 0) {//nop; -goto L4231f0;} -//nop; -a1 = 0x10003e0c; -//nop; -a0 = 0x1000a418; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L42315c; -a1 = a1; -L42315c: -t2 = MEM_U32(sp + 340); -t0 = s0 << 2; -t8 = t2 + t0; -t4 = MEM_U32(t8 + 0); -// bdead 40022803 gp = MEM_U32(sp + 64); -t3 = MEM_U8(t4 + 1); -//nop; -if (t3 != 0) {//nop; -goto L4231f0;} -//nop; -t7 = s0 << 2; -t9 = t2 + t7; -t5 = MEM_U32(t9 + 0); -//nop; -t1 = MEM_U8(t5 + 0); -//nop; -at = (int)t1 < (int)0x31; -if (at != 0) {//nop; -goto L4231f0;} -//nop; -t6 = s0 << 2; -t0 = t2 + t6; -t8 = MEM_U32(t0 + 0); -//nop; -t4 = MEM_U8(t8 + 0); -//nop; -at = (int)t4 < (int)0x35; -if (at == 0) {//nop; -goto L4231f0;} -//nop; -t3 = s0 << 2; -//nop; -t7 = t2 + t3; -a1 = MEM_U32(t7 + 0); -a0 = 0x1000a418; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4231e4; -//nop; -L4231e4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4231f0: -t9 = 0x10003e10; -a0 = 0x1; -t9 = t9; -MEM_U32(sp + 20) = t9; -//nop; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L423218; -MEM_U32(sp + 16) = zero; -L423218: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L423230; -//nop; -L423230: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L423238: -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -t6 = t5 + t1; -t0 = MEM_U32(t6 + 0); -//nop; -t8 = MEM_U8(t0 + 2); -//nop; -if (t8 != 0) {//nop; -goto L42a880;} -//nop; -t4 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t4; -if (at == 0) {//nop; -goto L4232b4;} -//nop; -a1 = 0x10003e3c; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L423284; -a1 = a1; -L423284: -// bdead 40020003 gp = MEM_U32(sp + 64); -t2 = MEM_U32(sp + 340); -t3 = s0 << 2; -//nop; -t7 = t2 + t3; -a1 = MEM_U32(t7 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4232a8; -//nop; -L4232a8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4232b4: -t9 = 0x10003e40; -a0 = 0x1; -t9 = t9; -MEM_U32(sp + 20) = t9; -//nop; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4232dc; -MEM_U32(sp + 16) = zero; -L4232dc: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4232f4; -//nop; -L4232f4: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -goto L42a880; -//nop; -L423300: -at = 0x1000a128; -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -MEM_U32(at + 0) = zero; -t6 = t5 + t1; -t0 = MEM_U32(t6 + 0); -//nop; -t8 = MEM_U8(t0 + 2); -//nop; -if (t8 != 0) {at = 0x1000021c; -goto L42335c;} -at = 0x1000021c; -t3 = 0x1000a12c; -t4 = 0x2; -MEM_U32(at + 0) = t4; -at = 0x1000a128; -t3 = MEM_U32(t3 + 0); -t2 = 0x1; -if (t3 == 0) {MEM_U32(at + 0) = t2; -goto L42a934;} -MEM_U32(at + 0) = t2; -at = 0x10000230; -t7 = 0x1; -MEM_U32(at + 0) = t7; -goto L42a934; -MEM_U32(at + 0) = t7; -L42335c: -t9 = MEM_U32(sp + 340); -t5 = s0 << 2; -t1 = t9 + t5; -t6 = MEM_U32(t1 + 0); -//nop; -t0 = MEM_U8(t6 + 3); -//nop; -if (t0 != 0) {//nop; -goto L42a880;} -//nop; -t8 = s0 << 2; -t4 = t9 + t8; -t2 = MEM_U32(t4 + 0); -//nop; -t3 = MEM_U8(t2 + 2); -//nop; -at = (int)t3 < (int)0x30; -if (at != 0) {//nop; -goto L42a880;} -//nop; -t7 = s0 << 2; -t5 = t9 + t7; -t1 = MEM_U32(t5 + 0); -//nop; -t6 = MEM_U8(t1 + 2); -//nop; -at = (int)t6 < (int)0x34; -if (at == 0) {//nop; -goto L42a880;} -//nop; -t0 = s0 << 2; -t8 = t9 + t0; -t4 = MEM_U32(t8 + 0); -at = 0x1000021c; -t2 = MEM_U8(t4 + 2); -//nop; -t3 = t2 + 0xffffffd0; -MEM_U32(at + 0) = t3; -at = 0x2; -if (t3 != at) {//nop; -goto L42a934;} -//nop; -t5 = 0x1000a12c; -at = 0x1000a128; -t5 = MEM_U32(t5 + 0); -t7 = 0x1; -if (t5 == 0) {MEM_U32(at + 0) = t7; -goto L42a934;} -MEM_U32(at + 0) = t7; -at = 0x10000230; -t1 = 0x1; -MEM_U32(at + 0) = t1; -goto L42a934; -MEM_U32(at + 0) = t1; -L42341c: -t6 = MEM_U32(sp + 340); -t9 = s0 << 2; -t0 = t6 + t9; -//nop; -a1 = 0x10003e64; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42343c; -a1 = a1; -L42343c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L423474;} -//nop; -t8 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t2 = t8 + t4; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a4a0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L423468; -//nop; -L423468: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L423474: -t3 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x10003e70; -//nop; -t5 = t3 + t7; -a0 = MEM_U32(t5 + 0); -a2 = 0x5; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L423498; -a1 = a1; -L423498: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4234d8;} -//nop; -t1 = 0x10003e78; -//nop; -t1 = t1; -MEM_U32(sp + 20) = t1; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4234cc; -MEM_U32(sp + 16) = zero; -L4234cc: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4234d8: -t6 = 0x1000a36c; -at = 0x1; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L423740;} -//nop; -t9 = MEM_U32(sp + 340); -t0 = s0 << 2; -t8 = t9 + t0; -//nop; -a1 = 0x10003e8c; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L423510; -a1 = a1; -L423510: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L423548;} -//nop; -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -//nop; -t3 = t4 + t2; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42353c; -//nop; -L42353c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L423548: -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -a1 = 0x10003e94; -//nop; -t1 = t7 + t5; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L423568; -a1 = a1; -L423568: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L423644;} -//nop; -t6 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t6; -if (at == 0) {//nop; -goto L4235ac;} -//nop; -t9 = MEM_U32(sp + 340); -t0 = s0 << 2; -t8 = t9 + t0; -t4 = MEM_U32(t8 + 0); -at = 0x2d; -t2 = MEM_U8(t4 + 0); -//nop; -if (t2 != at) {//nop; -goto L4235f4;} -//nop; -L4235ac: -t3 = 0x10003ea4; -//nop; -t3 = t3; -MEM_U32(sp + 20) = t3; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4235d4; -MEM_U32(sp + 16) = zero; -L4235d4: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4235ec; -//nop; -L4235ec: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L4235f4: -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -//nop; -t1 = t7 + t5; -a1 = MEM_U32(t1 + -4); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L423614; -//nop; -L423614: -t6 = MEM_U32(sp + 340); -// bdead 40028003 gp = MEM_U32(sp + 64); -t9 = s0 << 2; -t0 = t6 + t9; -//nop; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L423638; -//nop; -L423638: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L423644: -t8 = MEM_U32(sp + 340); -t4 = s0 << 2; -a1 = 0x10003ed0; -//nop; -t2 = t8 + t4; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L423664; -a1 = a1; -L423664: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L423740;} -//nop; -t3 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t3; -if (at == 0) {//nop; -goto L4236a8;} -//nop; -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -t1 = t7 + t5; -t6 = MEM_U32(t1 + 0); -at = 0x2d; -t9 = MEM_U8(t6 + 0); -//nop; -if (t9 != at) {//nop; -goto L4236f0;} -//nop; -L4236a8: -t0 = 0x10003edc; -//nop; -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4236d0; -MEM_U32(sp + 16) = zero; -L4236d0: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4236e8; -//nop; -L4236e8: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L4236f0: -t8 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t2 = t8 + t4; -a1 = MEM_U32(t2 + -4); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L423710; -//nop; -L423710: -// bdead 40020003 gp = MEM_U32(sp + 64); -t3 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t5 = t3 + t7; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L423734; -//nop; -L423734: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L423740: -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -t9 = t1 + t6; -t0 = MEM_U32(t9 + 0); -at = 0x1000a1b0; -//nop; -t8 = t0 + 0x2; -a0 = t8; -MEM_U32(at + 0) = t8; -v0 = wrapper_strlen(mem, a0); -goto L423768; -MEM_U32(at + 0) = t8; -L423768: -// bdead 4002010b gp = MEM_U32(sp + 64); -at = 0x2f; -t4 = 0x1000a1b0; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -t2 = v0 + t4; -t3 = MEM_U8(t2 + -1); -//nop; -if (t3 == at) {//nop; -goto L42a934;} -//nop; -a1 = 0x10003f08; -//nop; -a0 = t4; -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4237ac; -a1 = a1; -L4237ac: -// bdead 4002010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a1b0; -MEM_U32(at + 0) = v0; -goto L42a934; -MEM_U32(at + 0) = v0; -L4237c0: -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -t1 = t7 + t5; -t6 = MEM_U32(t1 + 0); -//nop; -t9 = MEM_U8(t6 + 2); -//nop; -if (t9 != 0) {//nop; -goto L423884;} -//nop; -t0 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t0; -if (at == 0) {//nop; -goto L42383c;} -//nop; -a1 = 0x10003f0c; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L42380c; -a1 = a1; -L42380c: -// bdead 40020003 gp = MEM_U32(sp + 64); -t8 = MEM_U32(sp + 340); -t2 = s0 << 2; -//nop; -t3 = t8 + t2; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L423830; -//nop; -L423830: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42383c: -t4 = 0x10003f10; -//nop; -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L423864; -MEM_U32(sp + 16) = zero; -L423864: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L42387c; -//nop; -L42387c: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L423884: -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -a1 = 0x10003f34; -//nop; -t1 = t7 + t5; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4238a4; -a1 = a1; -L4238a4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L423a0c;} -//nop; -t6 = MEM_U32(sp + 340); -t9 = s0 << 2; -t0 = t6 + t9; -//nop; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a470; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4238d0; -//nop; -L4238d0: -t8 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -// bdead 42020003 gp = MEM_U32(sp + 64); -at = (int)s0 < (int)t8; -if (at != 0) {//nop; -goto L423930;} -//nop; -t2 = 0x10003f40; -//nop; -t2 = t2; -MEM_U32(sp + 20) = t2; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L423910; -MEM_U32(sp + 16) = zero; -L423910: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L423928; -//nop; -L423928: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L423930: -s2 = 0x10000400; -//nop; -s2 = MEM_U32(s2 + 0); -//nop; -t3 = MEM_U8(s2 + 0); -//nop; -if (t3 == 0) {//nop; -goto L4239e0;} -//nop; -L423950: -t4 = MEM_U8(s2 + 0); -t7 = 0xfb504f0; -//nop; -t5 = t4 + t7; -t1 = MEM_U8(t5 + 1); -//nop; -t6 = t1 & 0x4; -if (t6 != 0) {//nop; -goto L4239d0;} -//nop; -t9 = 0x10003f64; -t0 = MEM_U32(sp + 340); -t9 = t9; -MEM_U32(sp + 20) = t9; -t8 = s0 << 2; -MEM_U32(sp + 16) = zero; -t2 = t0 + t8; -t3 = MEM_U32(t2 + 0); -//nop; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L4239b0; -MEM_U32(sp + 24) = t3; -L4239b0: -// bdead 400a0003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4239c8; -//nop; -L4239c8: -// bdead 400a0003 gp = MEM_U32(sp + 64); -//nop; -L4239d0: -t4 = MEM_U8(s2 + 1); -s2 = s2 + 0x1; -if (t4 != 0) {//nop; -goto L423950;} -//nop; -L4239e0: -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -//nop; -t1 = t7 + t5; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a470; -//nop; -f_addstr(mem, sp, a0, a1); -goto L423a00; -//nop; -L423a00: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L423a0c: -t6 = MEM_U32(sp + 340); -t9 = s0 << 2; -t0 = t6 + t9; -//nop; -a1 = 0x10003f84; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L423a2c; -a1 = a1; -L423a2c: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x100002f8; -goto L423a44;} -at = 0x100002f8; -t8 = 0x1; -MEM_U32(at + 0) = t8; -goto L42a934; -MEM_U32(at + 0) = t8; -L423a44: -t2 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x10003f98; -//nop; -t4 = t2 + t3; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L423a64; -a1 = a1; -L423a64: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L423a9c;} -//nop; -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -//nop; -t1 = t7 + t5; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L423a90; -//nop; -L423a90: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L423a9c: -t6 = MEM_U32(sp + 340); -t9 = s0 << 2; -t0 = t6 + t9; -//nop; -a1 = 0x10003fa8; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L423abc; -a1 = a1; -L423abc: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000424; -goto L423b8c;} -at = 0x10000424; -t8 = 0x1; -t2 = 0x10003fb0; -MEM_U32(at + 0) = t8; -at = 0x1000a26c; -t2 = t2; -t3 = 0x10003fbc; -MEM_U32(at + 0) = t2; -at = 0x10000400; -t3 = t3; -t4 = 0x10003fc0; -MEM_U32(at + 0) = t3; -at = 0x1000a27c; -t4 = t4; -MEM_U32(at + 0) = t4; -at = 0x100002d8; -a0 = 0x10003fc4; -MEM_U32(at + 0) = zero; -at = 0x10000370; -//nop; -MEM_U32(at + 0) = zero; -at = 0x10000340; -a1 = zero; -MEM_U32(at + 0) = zero; -at = 0x10000384; -a2 = zero; -MEM_U32(at + 0) = zero; -at = 0x10000348; -a0 = a0; -MEM_U32(at + 0) = zero; -at = 0x10000324; -//nop; -MEM_U32(at + 0) = zero; -at = 0x10000318; -//nop; -MEM_U32(at + 0) = zero; -at = 0x100003e0; -MEM_U32(at + 0) = zero; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L423b60; -MEM_U32(at + 0) = zero; -L423b60: -// bdead 40020003 gp = MEM_U32(sp + 64); -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -//nop; -t1 = t7 + t5; -a0 = MEM_U32(t1 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L423b80; -//nop; -L423b80: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L423b8c: -t6 = 0x1000a36c; -at = 0x3; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L423bfc;} -//nop; -t9 = MEM_U32(sp + 340); -t0 = s0 << 2; -t8 = t9 + t0; -//nop; -a1 = 0x10003fd8; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L423bc4; -a1 = a1; -L423bc4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L423c28;} -//nop; -t2 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x10003fdc; -//nop; -t4 = t2 + t3; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L423bf0; -a1 = a1; -L423bf0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L423c28;} -//nop; -L423bfc: -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -a1 = 0x10003fe0; -//nop; -t1 = t7 + t5; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L423c1c; -a1 = a1; -L423c1c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L423ca0;} -//nop; -L423c28: -t6 = MEM_U32(sp + 340); -t9 = s0 << 2; -t0 = t6 + t9; -t8 = MEM_U32(t0 + 0); -at = 0x32; -t2 = MEM_U8(t8 + 2); -//nop; -if (t2 == at) {//nop; -goto L423c68;} -//nop; -t3 = s0 << 2; -t4 = t6 + t3; -t7 = MEM_U32(t4 + 0); -at = 0x38; -t5 = MEM_U8(t7 + 2); -//nop; -if (t5 != at) {at = 0x1000a168; -goto L423c74;} -L423c68: -at = 0x1000a168; -t1 = 0x1; -MEM_U32(at + 0) = t1; -L423c74: -t9 = MEM_U32(sp + 340); -t0 = s0 << 2; -t8 = t9 + t0; -//nop; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L423c94; -//nop; -L423c94: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L423ca0: -t2 = 0x1000a36c; -at = 0x5; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L42a880;} -//nop; -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x10003fe4; -//nop; -t4 = t6 + t3; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L423cd8; -a1 = a1; -L423cd8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L423d84;} -//nop; -t7 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t7; -if (at == 0) {//nop; -goto L423d3c;} -//nop; -a1 = 0x10003fec; -//nop; -a0 = 0x1000a408; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L423d0c; -a1 = a1; -L423d0c: -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -// bdead 40024403 gp = MEM_U32(sp + 64); -t9 = t5 + t1; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a408; -//nop; -f_addstr(mem, sp, a0, a1); -goto L423d30; -//nop; -L423d30: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L423d3c: -t0 = 0x10003ff4; -//nop; -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L423d64; -MEM_U32(sp + 16) = zero; -L423d64: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L423d7c; -//nop; -L423d7c: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L423d84: -t8 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x10004014; -//nop; -t6 = t8 + t2; -a0 = MEM_U32(t6 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L423da4; -a1 = a1; -L423da4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -t3 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t3; -if (at == 0) {//nop; -goto L423e08;} -//nop; -a1 = 0x10004020; -//nop; -a0 = 0x1000a408; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L423dd8; -a1 = a1; -L423dd8: -// bdead 40020003 gp = MEM_U32(sp + 64); -t4 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t5 = t4 + t7; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a408; -//nop; -f_addstr(mem, sp, a0, a1); -goto L423dfc; -//nop; -L423dfc: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L423e08: -t1 = 0x1000402c; -//nop; -t1 = t1; -MEM_U32(sp + 20) = t1; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L423e30; -MEM_U32(sp + 16) = zero; -L423e30: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L423e48; -//nop; -L423e48: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -goto L42a880; -//nop; -L423e54: -t9 = MEM_U32(sp + 340); -t0 = s0 << 2; -t8 = t9 + t0; -t2 = MEM_U32(t8 + 0); -//nop; -t6 = MEM_U8(t2 + 2); -//nop; -if (t6 != 0) {//nop; -goto L423e9c;} -//nop; -t3 = 0x10000224; -at = 0x10000224; -t3 = MEM_U32(t3 + 0); -//nop; -t4 = t3 + 0x1; -MEM_U32(at + 0) = t4; -at = 0x10000408; -MEM_U32(at + 0) = zero; -goto L42a934; -MEM_U32(at + 0) = zero; -L423e9c: -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -a1 = 0x1000404c; -//nop; -t1 = t7 + t5; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L423ebc; -a1 = a1; -L423ebc: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L423ef4;} -//nop; -t9 = MEM_U32(sp + 340); -t0 = s0 << 2; -t8 = t9 + t0; -//nop; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a4c0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L423ee8; -//nop; -L423ee8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L423ef4: -t2 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10004054; -//nop; -t3 = t2 + t6; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L423f14; -a1 = a1; -L423f14: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -t4 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t5 = t4 + t7; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L423f40; -//nop; -L423f40: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L423f4c: -t1 = MEM_U32(sp + 340); -t9 = s0 << 2; -t0 = t1 + t9; -//nop; -a1 = 0x1000405c; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L423f6c; -a1 = a1; -L423f6c: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x100002d0; -goto L423f84;} -at = 0x100002d0; -t8 = 0x1; -MEM_U32(at + 0) = t8; -goto L42a934; -MEM_U32(at + 0) = t8; -L423f84: -t2 = MEM_U32(sp + 340); -t6 = s0 << 2; -t3 = t2 + t6; -t4 = MEM_U32(t3 + 0); -at = 0x6f; -s4 = MEM_U8(t4 + 2); -//nop; -if (s4 == at) {at = 0x70; -goto L423fc0;} -at = 0x70; -if (s4 == at) {at = 0x75; -goto L4240b4;} -at = 0x75; -if (s4 == at) {//nop; -goto L42410c;} -//nop; -//nop; -goto L424164; -//nop; -L423fc0: -t7 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t7; -if (at == 0) {//nop; -goto L42a934;} -//nop; -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -t9 = t5 + t1; -t0 = MEM_U32(t9 + 0); -at = 0x1000a214; -//nop; -a0 = t0; -MEM_U32(at + 0) = t0; -v0 = f_getsuf(mem, sp, a0); -goto L423ff8; -MEM_U32(at + 0) = t0; -L423ff8: -// bdead 4002010b gp = MEM_U32(sp + 64); -s1 = v0 & 0xff; -at = 0x63; -if (s1 == at) {at = 0x70; -goto L424054;} -at = 0x70; -if (s1 == at) {at = 0x66; -goto L424054;} -at = 0x66; -if (s1 == at) {at = 0x46; -goto L424054;} -at = 0x46; -if (s1 == at) {at = 0x72; -goto L424054;} -at = 0x72; -if (s1 == at) {at = 0x65; -goto L424054;} -at = 0x65; -if (s1 == at) {at = 0x6; -goto L424054;} -at = 0x6; -if (s1 == at) {at = 0x73; -goto L424054;} -at = 0x73; -if (s1 == at) {at = 0x1; -goto L424054;} -at = 0x1; -if (s1 == at) {at = 0x2; -goto L424054;} -at = 0x2; -if (s1 != at) {//nop; -goto L42a934;} -//nop; -L424054: -t8 = 0x10004068; -t2 = MEM_U32(sp + 340); -t6 = s0 << 2; -t8 = t8; -MEM_U32(sp + 20) = t8; -MEM_U32(sp + 16) = zero; -t3 = t2 + t6; -t4 = MEM_U32(t3 + 0); -//nop; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t4; -f_error(mem, sp, a0, a1, a2, a3); -goto L424090; -MEM_U32(sp + 24) = t4; -L424090: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4240a8; -//nop; -L4240a8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4240b4: -t7 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t7; -if (at == 0) {//nop; -goto L42a934;} -//nop; -a1 = 0x10004080; -//nop; -a0 = 0x1000a448; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4240dc; -a1 = a1; -L4240dc: -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -// bdead 40024403 gp = MEM_U32(sp + 64); -t9 = t5 + t1; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a448; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424100; -//nop; -L424100: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42410c: -t0 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t0; -if (at == 0) {//nop; -goto L42a934;} -//nop; -a1 = 0x10004084; -//nop; -a0 = 0x1000a448; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L424134; -a1 = a1; -L424134: -// bdead 40020003 gp = MEM_U32(sp + 64); -t8 = MEM_U32(sp + 340); -t2 = s0 << 2; -//nop; -t6 = t8 + t2; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a448; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424158; -//nop; -L424158: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L424164: -t3 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t7 = t3 + t4; -a1 = MEM_U32(t7 + 0); -a0 = 0x1000a530; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424184; -//nop; -L424184: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L424190: -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -t9 = t5 + t1; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x10004088; -a1 = a1 + 0x2; -a0 = a0; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4241b4; -a0 = a0; -L4241b4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4241ec;} -//nop; -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -//nop; -t2 = t0 + t8; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4241e0; -//nop; -L4241e0: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4241ec: -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -t4 = t6 + t3; -t7 = MEM_U32(t4 + 0); -at = 0x6d; -t5 = MEM_U8(t7 + 2); -//nop; -if (t5 != at) {//nop; -goto L424248;} -//nop; -t1 = s0 << 2; -t9 = t6 + t1; -t0 = MEM_U32(t9 + 0); -//nop; -t8 = MEM_U8(t0 + 3); -//nop; -if (t8 != 0) {//nop; -goto L424248;} -//nop; -t2 = 0x10000390; -at = 0x10000390; -t2 = MEM_U32(t2 + 0); -//nop; -t3 = t2 + 0x1; -MEM_U32(at + 0) = t3; -L424248: -t4 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t5 = t4 + t7; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424268; -//nop; -L424268: -t6 = MEM_U32(sp + 340); -// bdead 40028003 gp = MEM_U32(sp + 64); -t1 = s0 << 2; -t9 = t6 + t1; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10004090; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42428c; -a1 = a1; -L42428c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4242c8;} -//nop; -t0 = 0x1000a56c; -at = 0x1000a56c; -t0 = MEM_U32(t0 + 0); -a1 = 0x10004098; -//nop; -a0 = 0x1000a540; -t8 = t0 + 0x1; -MEM_U32(at + 0) = t8; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4242c0; -a1 = a1; -L4242c0: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L4242c8: -t2 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x100040a0; -//nop; -t4 = t2 + t3; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4242e8; -a1 = a1; -L4242e8: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a934;} -//nop; -t7 = 0x1000a570; -at = 0x1000a570; -t7 = MEM_U32(t7 + 0); -//nop; -t5 = t7 + 0x1; -MEM_U32(at + 0) = t5; -goto L42a934; -MEM_U32(at + 0) = t5; -L424310: -t6 = 0x1000a36c; -at = 0x1; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L4243ec;} -//nop; -t1 = MEM_U32(sp + 340); -t9 = s0 << 2; -t0 = t1 + t9; -//nop; -a1 = 0x100040a8; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L424348; -a1 = a1; -L424348: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4243ec;} -//nop; -t8 = 0x1000a188; -at = 0x10000; -t8 = MEM_U32(t8 + 0); -t3 = 0x1000027c; -at = at | 0x8; -t2 = t8 | at; -at = 0x1000a188; -t3 = MEM_U32(t3 + 0); -MEM_U32(at + 0) = t2; -if (t3 == 0) {//nop; -goto L4243c8;} -//nop; -t4 = 0x100040ac; -//nop; -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4243a8; -MEM_U32(sp + 16) = zero; -L4243a8: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4243c0; -//nop; -L4243c0: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L4243c8: -a0 = 0x100040d0; -//nop; -a1 = zero; -a2 = zero; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L4243e0; -a0 = a0; -L4243e0: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4243ec: -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -t6 = t7 + t5; -t1 = MEM_U32(t6 + 0); -//nop; -t9 = MEM_U8(t1 + 2); -//nop; -if (t9 != 0) {//nop; -goto L4244b8;} -//nop; -t0 = 0x1000a36c; -at = 0x4; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == at) {at = 0x3; -goto L424430;} -at = 0x3; -if (t0 != at) {//nop; -goto L42444c;} -//nop; -L424430: -t8 = 0x10000268; -at = 0x10000268; -t8 = MEM_U32(t8 + 0); -//nop; -t2 = t8 + 0x1; -MEM_U32(at + 0) = t2; -goto L424474; -MEM_U32(at + 0) = t2; -L42444c: -t3 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t7 = t3 + t4; -a1 = MEM_U32(t7 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42446c; -//nop; -L42446c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -L424474: -t5 = 0x1000a36c; -at = 0x3; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L42a934;} -//nop; -t6 = MEM_U32(sp + 340); -t1 = s0 << 2; -t9 = t6 + t1; -a0 = MEM_U32(t9 + 0); -//nop; -//nop; -//nop; -f_add_static_opt(mem, sp, a0); -goto L4244ac; -//nop; -L4244ac: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4244b8: -t0 = 0x1000a36c; -at = 0x6; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L424580;} -//nop; -t8 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x100040d4; -//nop; -t3 = t8 + t2; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4244f0; -a1 = a1; -L4244f0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L424528;} -//nop; -t4 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t5 = t4 + t7; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a418; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42451c; -//nop; -L42451c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L424528: -t6 = MEM_U32(sp + 340); -t1 = s0 << 2; -t9 = t6 + t1; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x100040dc; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L424548; -a1 = a1; -L424548: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L424580;} -//nop; -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -//nop; -t2 = t0 + t8; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a418; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424574; -//nop; -L424574: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L424580: -t3 = MEM_U32(sp + 340); -t4 = s0 << 2; -a1 = 0x100040e4; -//nop; -t7 = t3 + t4; -a0 = MEM_U32(t7 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4245a0; -a1 = a1; -L4245a0: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42461c;} -//nop; -t5 = 0x10000304; -at = 0x10000414; -t5 = MEM_U32(t5 + 0); -MEM_U32(at + 0) = zero; -if (t5 == 0) {//nop; -goto L42460c;} -//nop; -t6 = 0x100040ec; -//nop; -t6 = t6; -MEM_U32(sp + 20) = t6; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4245ec; -MEM_U32(sp + 16) = zero; -L4245ec: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L424604; -//nop; -L424604: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -L42460c: -at = 0x100002e8; -t1 = 0x1; -MEM_U32(at + 0) = t1; -goto L42a934; -MEM_U32(at + 0) = t1; -L42461c: -t9 = MEM_U32(sp + 340); -t0 = s0 << 2; -t8 = t9 + t0; -//nop; -a1 = 0x10004110; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42463c; -a1 = a1; -L42463c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x100002ec; -goto L42494c;} -at = 0x100002ec; -t3 = 0x100002e8; -MEM_U32(at + 0) = zero; -at = 0x100002f0; -t3 = MEM_U32(t3 + 0); -t2 = 0x1; -if (t3 != 0) {MEM_U32(at + 0) = t2; -goto L42467c;} -MEM_U32(at + 0) = t2; -t4 = 0x100002f4; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L4246c4;} -//nop; -L42467c: -t7 = 0x10004118; -//nop; -t7 = t7; -MEM_U32(sp + 20) = t7; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4246a4; -MEM_U32(sp + 16) = zero; -L4246a4: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4246bc; -//nop; -L4246bc: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L4246c4: -a0 = 0x1000413c; -//nop; -a1 = zero; -a2 = zero; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L4246dc; -a0 = a0; -L4246dc: -// bdead 40020003 gp = MEM_U32(sp + 64); -t5 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t1 = t5 + t6; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a310; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424700; -//nop; -L424700: -t9 = MEM_U32(sp + 340); -// bdead 44020003 gp = MEM_U32(sp + 64); -t0 = s0 << 2; -t8 = t9 + t0; -//nop; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a320; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424724; -//nop; -L424724: -// bdead 40020003 gp = MEM_U32(sp + 64); -t2 = MEM_U32(sp + 340); -t3 = s0 << 2; -//nop; -t4 = t2 + t3; -a1 = MEM_U32(t4 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424748; -//nop; -L424748: -// bdead 40020003 gp = MEM_U32(sp + 64); -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -//nop; -t6 = t7 + t5; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a408; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42476c; -//nop; -L42476c: -t1 = MEM_U32(sp + 340); -// bdead 40020403 gp = MEM_U32(sp + 64); -t9 = s0 << 2; -t0 = t1 + t9; -//nop; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a418; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424790; -//nop; -L424790: -// bdead 40020003 gp = MEM_U32(sp + 64); -t8 = MEM_U32(sp + 340); -t2 = s0 << 2; -//nop; -t3 = t8 + t2; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a428; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4247b4; -//nop; -L4247b4: -// bdead 40020003 gp = MEM_U32(sp + 64); -t4 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t5 = t4 + t7; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a360; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4247d8; -//nop; -L4247d8: -t6 = MEM_U32(sp + 340); -t1 = s0 << 2; -// bdead 40028403 gp = MEM_U32(sp + 64); -t9 = t6 + t1; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a370; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4247fc; -//nop; -L4247fc: -// bdead 40020003 gp = MEM_U32(sp + 64); -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -//nop; -t2 = t0 + t8; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a438; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424820; -//nop; -L424820: -// bdead 40020003 gp = MEM_U32(sp + 64); -t3 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t7 = t3 + t4; -a1 = MEM_U32(t7 + 0); -a0 = 0x1000a460; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424844; -//nop; -L424844: -// bdead 40020003 gp = MEM_U32(sp + 64); -t5 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t1 = t5 + t6; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a470; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424868; -//nop; -L424868: -t9 = MEM_U32(sp + 340); -// bdead 44020003 gp = MEM_U32(sp + 64); -t0 = s0 << 2; -t8 = t9 + t0; -//nop; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a480; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42488c; -//nop; -L42488c: -// bdead 40020003 gp = MEM_U32(sp + 64); -t2 = MEM_U32(sp + 340); -t3 = s0 << 2; -//nop; -t4 = t2 + t3; -a1 = MEM_U32(t4 + 0); -a0 = 0x1000a4b0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4248b0; -//nop; -L4248b0: -// bdead 40020003 gp = MEM_U32(sp + 64); -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -//nop; -t6 = t7 + t5; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a4c0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4248d4; -//nop; -L4248d4: -t1 = MEM_U32(sp + 340); -// bdead 40020403 gp = MEM_U32(sp + 64); -t9 = s0 << 2; -t0 = t1 + t9; -//nop; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a4d0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4248f8; -//nop; -L4248f8: -// bdead 40020003 gp = MEM_U32(sp + 64); -t8 = MEM_U32(sp + 340); -t2 = s0 << 2; -//nop; -t3 = t8 + t2; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42491c; -//nop; -L42491c: -// bdead 40020003 gp = MEM_U32(sp + 64); -t4 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t5 = t4 + t7; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a500; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424940; -//nop; -L424940: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42494c: -t6 = MEM_U32(sp + 340); -t1 = s0 << 2; -t9 = t6 + t1; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10004140; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42496c; -a1 = a1; -L42496c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L424d2c;} -//nop; -t0 = 0x100002e8; -at = 0x100002ec; -t0 = MEM_U32(t0 + 0); -MEM_U32(at + 0) = zero; -if (t0 != 0) {//nop; -goto L4249a8;} -//nop; -t8 = 0x100002f0; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L4249f0;} -//nop; -L4249a8: -t2 = 0x10004148; -//nop; -t2 = t2; -MEM_U32(sp + 20) = t2; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4249d0; -MEM_U32(sp + 16) = zero; -L4249d0: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4249e8; -//nop; -L4249e8: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L4249f0: -t3 = 0x1000a36c; -at = 0x4; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == at) {at = 0x1; -goto L424a10;} -at = 0x1; -if (t3 != at) {//nop; -goto L424a44;} -//nop; -L424a10: -t4 = 0x1000416c; -//nop; -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L424a38; -MEM_U32(sp + 16) = zero; -L424a38: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -goto L424a8c; -//nop; -L424a44: -t7 = 0x100041a4; -//nop; -t7 = t7; -MEM_U32(sp + 20) = t7; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L424a6c; -MEM_U32(sp + 16) = zero; -L424a6c: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L424a84; -//nop; -L424a84: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L424a8c: -at = 0x10000414; -t5 = 0x2; -MEM_U32(at + 0) = t5; -at = 0x100002f4; -t6 = 0x1; -MEM_U32(at + 0) = t6; -at = 0x10000304; -a0 = 0x100041d8; -//nop; -t1 = 0x1; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t1; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L424ac8; -a0 = a0; -L424ac8: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -t9 = 0x1000031c; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L424b2c;} -//nop; -a1 = 0x100041dc; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L424afc; -a1 = a1; -L424afc: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x100041e8; -//nop; -a0 = 0x1000a2c0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L424b18; -a1 = a1; -L424b18: -// bdead 40020003 gp = MEM_U32(sp + 64); -t0 = 0x1; -at = 0x1000031c; -//nop; -MEM_U32(at + 0) = t0; -L424b2c: -t8 = MEM_U32(sp + 340); -t2 = s0 << 2; -//nop; -t3 = t8 + t2; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a310; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424b4c; -//nop; -L424b4c: -// bdead 40020003 gp = MEM_U32(sp + 64); -t4 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t5 = t4 + t7; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a320; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424b70; -//nop; -L424b70: -t6 = MEM_U32(sp + 340); -t1 = s0 << 2; -// bdead 40028403 gp = MEM_U32(sp + 64); -t9 = t6 + t1; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424b94; -//nop; -L424b94: -// bdead 40020003 gp = MEM_U32(sp + 64); -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -//nop; -t2 = t0 + t8; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a408; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424bb8; -//nop; -L424bb8: -// bdead 40020003 gp = MEM_U32(sp + 64); -t3 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t7 = t3 + t4; -a1 = MEM_U32(t7 + 0); -a0 = 0x1000a418; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424bdc; -//nop; -L424bdc: -// bdead 40020003 gp = MEM_U32(sp + 64); -t5 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t1 = t5 + t6; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a428; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424c00; -//nop; -L424c00: -t9 = MEM_U32(sp + 340); -// bdead 44020003 gp = MEM_U32(sp + 64); -t0 = s0 << 2; -t8 = t9 + t0; -//nop; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a360; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424c24; -//nop; -L424c24: -// bdead 40020003 gp = MEM_U32(sp + 64); -t2 = MEM_U32(sp + 340); -t3 = s0 << 2; -//nop; -t4 = t2 + t3; -a1 = MEM_U32(t4 + 0); -a0 = 0x1000a370; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424c48; -//nop; -L424c48: -// bdead 40020003 gp = MEM_U32(sp + 64); -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -//nop; -t6 = t7 + t5; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a4a0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424c6c; -//nop; -L424c6c: -t1 = MEM_U32(sp + 340); -// bdead 40020403 gp = MEM_U32(sp + 64); -t9 = s0 << 2; -t0 = t1 + t9; -//nop; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a4b0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424c90; -//nop; -L424c90: -// bdead 40020003 gp = MEM_U32(sp + 64); -t8 = MEM_U32(sp + 340); -t2 = s0 << 2; -//nop; -t3 = t8 + t2; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a4c0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424cb4; -//nop; -L424cb4: -// bdead 40020003 gp = MEM_U32(sp + 64); -t4 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t5 = t4 + t7; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a4d0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424cd8; -//nop; -L424cd8: -t6 = MEM_U32(sp + 340); -t1 = s0 << 2; -// bdead 40028403 gp = MEM_U32(sp + 64); -t9 = t6 + t1; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424cfc; -//nop; -L424cfc: -// bdead 40020003 gp = MEM_U32(sp + 64); -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -//nop; -t2 = t0 + t8; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a500; -//nop; -f_addstr(mem, sp, a0, a1); -goto L424d20; -//nop; -L424d20: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L424d2c: -t3 = MEM_U32(sp + 340); -t4 = s0 << 2; -a1 = 0x100041f4; -//nop; -t7 = t3 + t4; -a0 = MEM_U32(t7 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L424d4c; -a1 = a1; -L424d4c: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L424da0;} -//nop; -t5 = 0x100041fc; -//nop; -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L424d80; -MEM_U32(sp + 16) = zero; -L424d80: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L424d98; -//nop; -L424d98: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -L424da0: -t6 = 0x1000a36c; -at = 0x3; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L42a880;} -//nop; -t1 = MEM_U32(sp + 340); -t9 = s0 << 2; -t0 = t1 + t9; -t8 = MEM_U32(t0 + 0); -at = 0x70; -t2 = MEM_U8(t8 + 2); -//nop; -if (t2 != at) {//nop; -goto L424e1c;} -//nop; -t3 = s0 << 2; -t4 = t1 + t3; -t7 = MEM_U32(t4 + 0); -//nop; -t5 = MEM_U8(t7 + 3); -//nop; -if (t5 != 0) {//nop; -goto L424e1c;} -//nop; -t6 = 0x1000a150; -at = 0x10000; -t6 = MEM_U32(t6 + 0); -//nop; -t9 = t6 | at; -at = 0x1000a150; -MEM_U32(at + 0) = t9; -goto L42a934; -MEM_U32(at + 0) = t9; -L424e1c: -a0 = 0x1000423c; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L424e30; -//nop; -L424e30: -// bdead 4002000b gp = MEM_U32(sp + 64); -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -a1 = 0x10004230; -//nop; -t2 = t0 + t8; -a0 = MEM_U32(t2 + 0); -s4 = v0; -a2 = s4; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L424e5c; -a1 = a1; -L424e5c: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L424f10;} -//nop; -t1 = MEM_U32(sp + 340); -t3 = s0 << 2; -t4 = t1 + t3; -t7 = MEM_U32(t4 + 0); -//nop; -t5 = MEM_U8(t7 + 8); -//nop; -if (t5 == 0) {//nop; -goto L424ee4;} -//nop; -t6 = 0x10004248; -t9 = s0 << 2; -t0 = t1 + t9; -t6 = t6; -MEM_U32(sp + 20) = t6; -MEM_U32(sp + 16) = zero; -t8 = MEM_U32(t0 + 0); -//nop; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t8; -f_error(mem, sp, a0, a1, a2, a3); -goto L424ec4; -MEM_U32(sp + 24) = t8; -L424ec4: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L424edc; -//nop; -L424edc: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -L424ee4: -t2 = 0x1000a150; -at = 0x10000; -t2 = MEM_U32(t2 + 0); -t4 = 0x1; -t3 = t2 | at; -at = 0x1000a150; -//nop; -MEM_U32(at + 0) = t3; -at = 0x100003a4; -MEM_U32(at + 0) = t4; -goto L42a934; -MEM_U32(at + 0) = t4; -L424f10: -a0 = 0x1000426c; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L424f24; -//nop; -L424f24: -// bdead 4002000b gp = MEM_U32(sp + 64); -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -a1 = 0x1000425c; -//nop; -t6 = t7 + t5; -a0 = MEM_U32(t6 + 0); -s4 = v0; -a2 = s4; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L424f50; -a1 = a1; -L424f50: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -a0 = 0x1000427c; -//nop; -a0 = a0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L424f70; -//nop; -L424f70: -t1 = MEM_U32(sp + 340); -t9 = s0 << 2; -t0 = t1 + t9; -t8 = MEM_U32(t0 + 0); -// bdead 4202000b gp = MEM_U32(sp + 64); -t2 = v0 + t8; -MEM_U32(sp + 252) = t2; -t3 = MEM_U32(sp + 252); -//nop; -t4 = MEM_U8(t3 + 0); -//nop; -if (t4 == 0) {//nop; -goto L425014;} -//nop; -L424fa4: -t7 = MEM_U32(sp + 252); -t6 = 0xfb504f0; -t5 = MEM_U8(t7 + 0); -//nop; -t1 = t5 + t6; -t9 = MEM_U8(t1 + 1); -//nop; -t0 = t9 & 0x1; -if (t0 == 0) {//nop; -goto L424fd8;} -//nop; -t8 = MEM_U8(t1 + 258); -MEM_U8(t7 + 0) = (uint8_t)t8; -goto L424fec; -MEM_U8(t7 + 0) = (uint8_t)t8; -L424fd8: -t2 = MEM_U32(sp + 252); -//nop; -t3 = MEM_U8(t2 + 0); -//nop; -MEM_U8(t2 + 0) = (uint8_t)t3; -L424fec: -t4 = MEM_U32(sp + 252); -//nop; -t5 = t4 + 0x1; -MEM_U32(sp + 252) = t5; -t6 = MEM_U32(sp + 252); -//nop; -t9 = MEM_U8(t6 + 0); -//nop; -if (t9 != 0) {//nop; -goto L424fa4;} -//nop; -L425014: -t0 = MEM_U32(sp + 340); -t1 = s0 << 2; -//nop; -t8 = t0 + t1; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L425034; -//nop; -L425034: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L425040: -t7 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x1000428c; -//nop; -t2 = t7 + t3; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425060; -a1 = a1; -L425060: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x100002d4; -goto L425078;} -at = 0x100002d4; -t4 = 0x1; -MEM_U32(at + 0) = t4; -goto L42a934; -MEM_U32(at + 0) = t4; -L425078: -t5 = MEM_U32(sp + 340); -t6 = s0 << 2; -t9 = t5 + t6; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10004298; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425098; -a1 = a1; -L425098: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x100002fc; -goto L4250b0;} -at = 0x100002fc; -t0 = 0x1; -MEM_U32(at + 0) = t0; -goto L42a934; -MEM_U32(at + 0) = t0; -L4250b0: -t1 = MEM_U32(sp + 340); -t8 = s0 << 2; -a1 = 0x100042a8; -//nop; -t7 = t1 + t8; -a0 = MEM_U32(t7 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4250d0; -a1 = a1; -L4250d0: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000032c; -goto L4250fc;} -at = 0x1000032c; -t3 = 0x1; -MEM_U32(at + 0) = zero; -at = 0x10000330; -//nop; -MEM_U32(at + 0) = zero; -at = 0x10000334; -MEM_U32(at + 0) = t3; -goto L42a934; -MEM_U32(at + 0) = t3; -L4250fc: -t2 = MEM_U32(sp + 340); -t4 = s0 << 2; -a1 = 0x100042bc; -//nop; -t5 = t2 + t4; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42511c; -a1 = a1; -L42511c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L425154;} -//nop; -t6 = MEM_U32(sp + 340); -t9 = s0 << 2; -t0 = t6 + t9; -//nop; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a470; -//nop; -f_addstr(mem, sp, a0, a1); -goto L425148; -//nop; -L425148: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L425154: -t1 = MEM_U32(sp + 340); -t8 = s0 << 2; -a1 = 0x100042c8; -//nop; -t7 = t1 + t8; -a0 = MEM_U32(t7 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425174; -a1 = a1; -L425174: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x100002c4; -goto L425188;} -at = 0x100002c4; -MEM_U32(at + 0) = zero; -goto L42a934; -MEM_U32(at + 0) = zero; -L425188: -t3 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x100042d4; -//nop; -t4 = t3 + t2; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4251a8; -a1 = a1; -L4251a8: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a130; -goto L4251c0;} -at = 0x1000a130; -t5 = 0x1; -MEM_U32(at + 0) = t5; -goto L42a934; -MEM_U32(at + 0) = t5; -L4251c0: -t6 = MEM_U32(sp + 340); -t9 = s0 << 2; -t0 = t6 + t9; -//nop; -a1 = 0x100042e0; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4251e0; -a1 = a1; -L4251e0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000288; -goto L42521c;} -at = 0x10000288; -t8 = MEM_U32(sp + 340); -t1 = 0x1; -t7 = s0 << 2; -//nop; -MEM_U32(at + 0) = t1; -t3 = t8 + t7; -a0 = MEM_U32(t3 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L425210; -//nop; -L425210: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42521c: -t2 = MEM_U32(sp + 340); -t4 = s0 << 2; -a1 = 0x100042ec; -//nop; -t5 = t2 + t4; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42523c; -a1 = a1; -L42523c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L425274;} -//nop; -t6 = MEM_U32(sp + 340); -t9 = s0 << 2; -t0 = t6 + t9; -//nop; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L425268; -//nop; -L425268: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L425274: -t1 = MEM_U32(sp + 340); -t8 = s0 << 2; -a1 = 0x100042f8; -//nop; -t7 = t1 + t8; -a0 = MEM_U32(t7 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425294; -a1 = a1; -L425294: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x100003a0; -goto L4252a8;} -at = 0x100003a0; -MEM_U32(at + 0) = zero; -goto L42a934; -MEM_U32(at + 0) = zero; -L4252a8: -t3 = MEM_U32(sp + 340); -t2 = s0 << 2; -t4 = t3 + t2; -t5 = MEM_U32(t4 + 0); -//nop; -t6 = MEM_U8(t5 + 2); -//nop; -if (t6 == 0) {//nop; -goto L42534c;} -//nop; -t9 = s0 << 2; -t0 = t3 + t9; -//nop; -a1 = 0x10004308; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4252e8; -a1 = a1; -L4252e8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42534c;} -//nop; -t1 = MEM_U32(sp + 340); -t8 = s0 << 2; -a1 = 0x10004314; -//nop; -t7 = t1 + t8; -a0 = MEM_U32(t7 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425314; -a1 = a1; -L425314: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42534c;} -//nop; -t2 = MEM_U32(sp + 340); -t4 = s0 << 2; -a1 = 0x10004318; -//nop; -t5 = t2 + t4; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425340; -a1 = a1; -L425340: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L425378;} -//nop; -L42534c: -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -t9 = t6 + t3; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42536c; -//nop; -L42536c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L425378: -t0 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x10004324; -//nop; -t8 = t0 + t1; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425398; -a1 = a1; -L425398: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000318; -goto L425420;} -at = 0x10000318; -t7 = 0x1; -MEM_U32(at + 0) = zero; -at = 0x10000324; -t2 = 0x1000031c; -MEM_U32(at + 0) = t7; -at = 0x10000384; -t2 = MEM_U32(t2 + 0); -MEM_U32(at + 0) = zero; -at = 0x10000348; -//nop; -MEM_U32(at + 0) = zero; -at = 0x10000340; -if (t2 != 0) {MEM_U32(at + 0) = zero; -goto L42a934;} -MEM_U32(at + 0) = zero; -a1 = 0x10004330; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4253f0; -a1 = a1; -L4253f0: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x1000433c; -//nop; -a0 = 0x1000a2c0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L42540c; -a1 = a1; -L42540c: -// bdead 40020103 gp = MEM_U32(sp + 64); -t4 = 0x1; -at = 0x1000031c; -MEM_U32(at + 0) = t4; -goto L42a934; -MEM_U32(at + 0) = t4; -L425420: -t5 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10004348; -//nop; -t3 = t5 + t6; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425440; -a1 = a1; -L425440: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L425478;} -//nop; -t9 = MEM_U32(sp + 340); -t0 = s0 << 2; -t1 = t9 + t0; -//nop; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42546c; -//nop; -L42546c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L425478: -t8 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x10004354; -//nop; -t2 = t8 + t7; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425498; -a1 = a1; -L425498: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a5b4; -goto L4254b0;} -at = 0x1000a5b4; -t4 = 0x1; -MEM_U32(at + 0) = t4; -goto L42a934; -MEM_U32(at + 0) = t4; -L4254b0: -t5 = 0x1000a36c; -at = 0x3; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L4255f0;} -//nop; -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -t9 = t6 + t3; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x1000435c; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4254e8; -a1 = a1; -L4254e8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4255a4;} -//nop; -t0 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x10004370; -//nop; -t8 = t0 + t1; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425514; -a1 = a1; -L425514: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4255a4;} -//nop; -t7 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x10004378; -//nop; -t4 = t7 + t2; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425540; -a1 = a1; -L425540: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4255a4;} -//nop; -t5 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10004380; -//nop; -t3 = t5 + t6; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42556c; -a1 = a1; -L42556c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4255a4;} -//nop; -t9 = MEM_U32(sp + 340); -t0 = s0 << 2; -t1 = t9 + t0; -//nop; -a1 = 0x1000438c; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425598; -a1 = a1; -L425598: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4255f0;} -//nop; -L4255a4: -t8 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t2 = t8 + t7; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4255c4; -//nop; -L4255c4: -// bdead 40020003 gp = MEM_U32(sp + 64); -t4 = MEM_U32(sp + 340); -t5 = s0 << 2; -//nop; -t6 = t4 + t5; -a0 = MEM_U32(t6 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L4255e4; -//nop; -L4255e4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4255f0: -t3 = 0x1000a36c; -at = 0x6; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L4256c4;} -//nop; -t9 = MEM_U32(sp + 340); -t0 = s0 << 2; -t1 = t9 + t0; -//nop; -a1 = 0x10004394; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425628; -a1 = a1; -L425628: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000298; -goto L425640;} -at = 0x10000298; -t8 = 0x1; -MEM_U32(at + 0) = t8; -goto L42a934; -MEM_U32(at + 0) = t8; -L425640: -t7 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x1000439c; -//nop; -t4 = t7 + t2; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425660; -a1 = a1; -L425660: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L425698;} -//nop; -t5 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x100043a8; -//nop; -t3 = t5 + t6; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42568c; -a1 = a1; -L42568c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -L425698: -t9 = MEM_U32(sp + 340); -t0 = s0 << 2; -t1 = t9 + t0; -//nop; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a418; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4256b8; -//nop; -L4256b8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4256c4: -t8 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x100043b4; -//nop; -t2 = t8 + t7; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4256e4; -a1 = a1; -L4256e4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4257a4;} -//nop; -t4 = 0x1000a36c; -at = 0x1; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L425774;} -//nop; -t5 = 0x10000008; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L425774;} -//nop; -t6 = 0x100043bc; -t3 = MEM_U32(sp + 340); -t9 = s0 << 2; -t6 = t6; -t0 = t3 + t9; -t8 = 0x100043ec; -MEM_U32(sp + 20) = t6; -MEM_U32(sp + 16) = zero; -t1 = MEM_U32(t0 + 0); -//nop; -t8 = t8; -MEM_U32(sp + 28) = t8; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t1; -f_error(mem, sp, a0, a1, a2, a3); -goto L425768; -MEM_U32(sp + 24) = t1; -L425768: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L425774: -at = 0x1000a1a0; -t7 = MEM_U32(sp + 340); -t2 = s0 << 2; -//nop; -MEM_U32(at + 0) = zero; -t4 = t7 + t2; -a0 = MEM_U32(t4 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L425798; -//nop; -L425798: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4257a4: -t5 = 0x1000a36c; -at = 0x3; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == at) {at = 0x1; -goto L4257dc;} -at = 0x1; -if (t5 != at) {//nop; -goto L4258b0;} -//nop; -t6 = 0x10000008; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L4258b0;} -//nop; -L4257dc: -t3 = MEM_U32(sp + 340); -t9 = s0 << 2; -t0 = t3 + t9; -//nop; -a1 = 0x100043f0; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4257fc; -a1 = a1; -L4257fc: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000124; -goto L425820;} -at = 0x10000124; -t1 = 0x1; -MEM_U32(at + 0) = t1; -at = 0x10000228; -t8 = 0x1; -MEM_U32(at + 0) = t8; -goto L42a934; -MEM_U32(at + 0) = t8; -L425820: -t7 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x100043f8; -//nop; -t4 = t7 + t2; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425840; -a1 = a1; -L425840: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000110; -goto L425858;} -at = 0x10000110; -t5 = 0x1; -MEM_U32(at + 0) = t5; -goto L42a934; -MEM_U32(at + 0) = t5; -L425858: -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -t9 = t6 + t3; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10004404; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425878; -a1 = a1; -L425878: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000120; -goto L4258b0;} -at = 0x10000120; -t0 = MEM_U32(sp + 340); -t1 = s0 << 2; -//nop; -MEM_U32(at + 0) = zero; -t8 = t0 + t1; -a0 = MEM_U32(t8 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L4258a4; -//nop; -L4258a4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4258b0: -t7 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x10004418; -//nop; -t4 = t7 + t2; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4258d0; -a1 = a1; -L4258d0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L425908;} -//nop; -t5 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t3 = t5 + t6; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4258fc; -//nop; -L4258fc: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L425908: -t9 = 0x1000a36c; -at = 0x1; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L42599c;} -//nop; -t0 = 0x10000008; -at = 0x2; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == at) {at = 0x3; -goto L425940;} -at = 0x3; -if (t0 != at) {//nop; -goto L42599c;} -//nop; -L425940: -t1 = MEM_U32(sp + 340); -t8 = s0 << 2; -a1 = 0x10004420; -//nop; -t7 = t1 + t8; -a0 = MEM_U32(t7 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425960; -a1 = a1; -L425960: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000114; -goto L42599c;} -at = 0x10000114; -t4 = MEM_U32(sp + 340); -t2 = 0x1; -t5 = s0 << 2; -//nop; -MEM_U32(at + 0) = t2; -t6 = t4 + t5; -a0 = MEM_U32(t6 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L425990; -//nop; -L425990: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42599c: -t3 = 0x1000a36c; -at = 0x1; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L42a880;} -//nop; -t9 = 0x10000008; -at = 0x3; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L42a880;} -//nop; -t0 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x10004428; -//nop; -t8 = t0 + t1; -a0 = MEM_U32(t8 + 0); -a2 = 0x9; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L4259f0; -a1 = a1; -L4259f0: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -t7 = MEM_U32(sp + 340); -t2 = s0 << 2; -t4 = t7 + t2; -t5 = MEM_U32(t4 + 0); -//nop; -t6 = MEM_U8(t5 + 9); -//nop; -if (t6 != 0) {//nop; -goto L425a34;} -//nop; -t3 = 0x10004434; -//nop; -t3 = t3; -MEM_U32(sp + 248) = t3; -goto L425ac0; -MEM_U32(sp + 248) = t3; -L425a34: -t9 = MEM_U32(sp + 340); -t0 = s0 << 2; -t1 = t9 + t0; -a0 = MEM_U32(t1 + 0); -//nop; -a1 = 0x1000443c; -a0 = a0 + 0x9; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425a58; -a1 = a1; -L425a58: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L425a78;} -//nop; -t8 = 0x10004444; -//nop; -t8 = t8; -MEM_U32(sp + 248) = t8; -goto L425ac0; -MEM_U32(sp + 248) = t8; -L425a78: -t7 = MEM_U32(sp + 340); -t2 = s0 << 2; -t4 = t7 + t2; -a0 = MEM_U32(t4 + 0); -a1 = 0x1000444c; -//nop; -a0 = a0 + 0x9; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425a9c; -a1 = a1; -L425a9c: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L425abc;} -//nop; -t5 = 0x10004458; -//nop; -t5 = t5; -MEM_U32(sp + 248) = t5; -goto L425ac0; -MEM_U32(sp + 248) = t5; -L425abc: -MEM_U32(sp + 248) = zero; -L425ac0: -t6 = MEM_U32(sp + 248); -//nop; -if (t6 == 0) {//nop; -goto L42a880;} -//nop; -t3 = MEM_U32(sp + 336); -//nop; -t9 = t3 + 0xffffffff; -at = (int)s0 < (int)t9; -if (at != 0) {//nop; -goto L425b44;} -//nop; -t0 = 0x10004460; -t1 = MEM_U32(sp + 340); -t8 = s0 << 2; -t0 = t0; -MEM_U32(sp + 20) = t0; -MEM_U32(sp + 16) = zero; -t7 = t1 + t8; -t2 = MEM_U32(t7 + 0); -//nop; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t2; -f_error(mem, sp, a0, a1, a2, a3); -goto L425b24; -MEM_U32(sp + 24) = t2; -L425b24: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L425b3c; -//nop; -L425b3c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -L425b44: -t4 = MEM_U32(sp + 340); -s0 = s0 + 0x1; -t5 = s0 << 2; -t6 = t4 + t5; -t3 = MEM_U32(t6 + 0); -at = 0x2d; -t9 = MEM_U8(t3 + 0); -//nop; -if (t9 != at) {//nop; -goto L425bc4;} -//nop; -t0 = 0x1000447c; -t1 = s0 << 2; -t0 = t0; -MEM_U32(sp + 20) = t0; -t8 = t4 + t1; -MEM_U32(sp + 16) = zero; -t7 = MEM_U32(t8 + -4); -//nop; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t7; -f_error(mem, sp, a0, a1, a2, a3); -goto L425ba4; -MEM_U32(sp + 24) = t7; -L425ba4: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L425bbc; -//nop; -L425bbc: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -L425bc4: -t2 = MEM_U32(sp + 340); -t5 = s0 << 2; -//nop; -t6 = t2 + t5; -a1 = MEM_U32(t6 + 0); -a0 = MEM_U32(sp + 248); -a2 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L425be4; -a2 = zero; -L425be4: -// bdead 4002000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a2f0; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L425bfc; -a1 = s4; -L425bfc: -t3 = MEM_U32(sp + 340); -// bdead 40021003 gp = MEM_U32(sp + 64); -t9 = s0 << 2; -t0 = t3 + t9; -//nop; -a0 = MEM_U32(t0 + -4); -//nop; -f_add_static_opt(mem, sp, a0); -goto L425c1c; -//nop; -L425c1c: -// bdead 40020003 gp = MEM_U32(sp + 64); -t4 = MEM_U32(sp + 340); -t1 = s0 << 2; -//nop; -t8 = t4 + t1; -a0 = MEM_U32(t8 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L425c3c; -//nop; -L425c3c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L425c48: -t7 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x10004498; -//nop; -t5 = t7 + t2; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425c68; -a1 = a1; -L425c68: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L425c94;} -//nop; -a1 = 0x100044a0; -//nop; -a0 = 0x1000a330; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L425c88; -a1 = a1; -L425c88: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L425c94: -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -t9 = t6 + t3; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x100044a8; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425cb4; -a1 = a1; -L425cb4: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L425dac;} -//nop; -t0 = 0x1000a36c; -at = 0x1; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L425d44;} -//nop; -t4 = 0x10000008; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L425d44;} -//nop; -t1 = 0x100044b0; -t8 = MEM_U32(sp + 340); -t7 = s0 << 2; -t1 = t1; -t6 = 0x100044e0; -MEM_U32(sp + 20) = t1; -MEM_U32(sp + 16) = zero; -t2 = t8 + t7; -t5 = MEM_U32(t2 + 0); -//nop; -t6 = t6; -MEM_U32(sp + 28) = t6; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t5; -f_error(mem, sp, a0, a1, a2, a3); -goto L425d38; -MEM_U32(sp + 24) = t5; -L425d38: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L425d44: -at = 0x100002b4; -t9 = 0x1000a36c; -t3 = 0x1; -t9 = MEM_U32(t9 + 0); -MEM_U32(at + 0) = t3; -at = 0x1; -if (t9 != at) {//nop; -goto L42a934;} -//nop; -t0 = 0x100002bc; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L42a934;} -//nop; -a0 = 0x1000a1ac; -a1 = 0x1000a1b0; -a2 = 0x1000a1b4; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 0); -a2 = MEM_U32(a2 + 0); -//nop; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L425da0; -//nop; -L425da0: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L425dac: -t4 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x100044e4; -//nop; -t8 = t4 + t1; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425dcc; -a1 = a1; -L425dcc: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000310; -goto L425df0;} -at = 0x10000310; -t7 = 0x1; -MEM_U32(at + 0) = t7; -at = 0x100003e0; -t2 = 0x1; -MEM_U32(at + 0) = t2; -goto L42a934; -MEM_U32(at + 0) = t2; -L425df0: -t5 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x100044ec; -//nop; -t3 = t5 + t6; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L425e10; -a1 = a1; -L425e10: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L425edc;} -//nop; -t9 = MEM_U32(sp + 340); -t0 = s0 << 2; -t4 = t9 + t0; -t1 = MEM_U32(t4 + 4); -//nop; -if (t1 == 0) {//nop; -goto L425ea8;} -//nop; -t8 = s0 << 2; -t7 = t9 + t8; -t2 = MEM_U32(t7 + 4); -at = 0x2d; -t5 = MEM_U8(t2 + 0); -//nop; -if (t5 == at) {//nop; -goto L425ea8;} -//nop; -t6 = s0 << 2; -t3 = t9 + t6; -//nop; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L425e74; -//nop; -L425e74: -// bdead 40020003 gp = MEM_U32(sp + 64); -t0 = MEM_U32(sp + 340); -s0 = s0 + 0x1; -t4 = s0 << 2; -//nop; -t1 = t0 + t4; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L425e9c; -//nop; -L425e9c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L425ea8: -t8 = 0x100044f8; -//nop; -t8 = t8; -MEM_U32(sp + 20) = t8; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L425ed0; -MEM_U32(sp + 16) = zero; -L425ed0: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L425edc: -t7 = MEM_U32(sp + 340); -t2 = s0 << 2; -t5 = t7 + t2; -t9 = MEM_U32(t5 + 0); -//nop; -t6 = MEM_U8(t9 + 2); -//nop; -if (t6 != 0) {//nop; -goto L426090;} -//nop; -t3 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t3; -if (at == 0) {//nop; -goto L426048;} -//nop; -t0 = s0 << 2; -t4 = t7 + t0; -t1 = MEM_U32(t4 + 0); -at = 0x1000a1ec; -//nop; -a0 = t1; -MEM_U32(at + 0) = t1; -v0 = f_getsuf(mem, sp, a0); -goto L425f34; -MEM_U32(at + 0) = t1; -L425f34: -// bdead 4002010b gp = MEM_U32(sp + 64); -s1 = v0 & 0xff; -at = 0x63; -if (s1 == at) {at = 0x70; -goto L425fc8;} -at = 0x70; -if (s1 == at) {at = 0x66; -goto L425fc8;} -at = 0x66; -if (s1 == at) {at = 0x46; -goto L425fc8;} -at = 0x46; -if (s1 == at) {at = 0x72; -goto L425fc8;} -at = 0x72; -if (s1 == at) {at = 0x65; -goto L425fc8;} -at = 0x65; -if (s1 == at) {//nop; -goto L425fc8;} -//nop; -t8 = 0x1000a36c; -at = 0x1; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L425fac;} -//nop; -t2 = 0x10000008; -at = 0x2; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == at) {at = 0x3; -goto L425fa4;} -at = 0x3; -if (t2 != at) {at = 0x6; -goto L425fac;} -L425fa4: -at = 0x6; -if (s1 == at) {at = 0x73; -goto L425fc8;} -L425fac: -at = 0x73; -if (s1 == at) {at = 0x1; -goto L425fc8;} -at = 0x1; -if (s1 == at) {at = 0x2; -goto L425fc8;} -at = 0x2; -if (s1 != at) {//nop; -goto L42a934;} -//nop; -L425fc8: -a0 = 0x1000a1ec; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = sp + 0x70; -v0 = wrapper_stat(mem, a0, a1); -goto L425fdc; -a1 = sp + 0x70; -L425fdc: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a934;} -//nop; -t5 = 0x10004524; -t9 = MEM_U32(sp + 340); -t6 = s0 << 2; -t5 = t5; -t3 = t9 + t6; -MEM_U32(sp + 20) = t5; -MEM_U32(sp + 16) = zero; -t7 = MEM_U32(t3 + 0); -//nop; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t7; -f_error(mem, sp, a0, a1, a2, a3); -goto L426024; -MEM_U32(sp + 24) = t7; -L426024: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L42603c; -//nop; -L42603c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L426048: -t0 = 0x1000455c; -//nop; -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L426070; -MEM_U32(sp + 16) = zero; -L426070: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L426088; -//nop; -L426088: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L426090: -t4 = 0x1000a36c; -at = 0x3; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L42a880;} -//nop; -t1 = MEM_U32(sp + 340); -t8 = s0 << 2; -a1 = 0x10004578; -//nop; -t2 = t1 + t8; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4260c8; -a1 = a1; -L4260c8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -a1 = 0x10004584; -//nop; -a0 = 0x1000a330; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4260e8; -a1 = a1; -L4260e8: -// bdead 40020103 gp = MEM_U32(sp + 64); -t5 = 0x1; -at = 0x1000a154; -MEM_U32(at + 0) = t5; -goto L42a934; -MEM_U32(at + 0) = t5; -L4260fc: -t9 = MEM_U32(sp + 340); -t6 = s0 << 2; -t3 = t9 + t6; -//nop; -a1 = 0x10004588; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42611c; -a1 = a1; -L42611c: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4261bc;} -//nop; -t7 = 0x1000a36c; -at = 0x1; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L4261ac;} -//nop; -t0 = 0x10000008; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L4261ac;} -//nop; -t4 = 0x10004594; -t1 = MEM_U32(sp + 340); -t9 = 0x100045c4; -t8 = s0 << 2; -t4 = t4; -MEM_U32(sp + 20) = t4; -MEM_U32(sp + 16) = zero; -t2 = t1 + t8; -t5 = MEM_U32(t2 + 0); -t9 = t9; -MEM_U32(sp + 28) = t9; -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t5; -f_error(mem, sp, a0, a1, a2, a3); -goto L4261a0; -MEM_U32(sp + 24) = t5; -L4261a0: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4261ac: -at = 0x100003a0; -t6 = 0x1; -MEM_U32(at + 0) = t6; -goto L42a934; -MEM_U32(at + 0) = t6; -L4261bc: -t3 = 0x1000a36c; -at = 0x1; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L4262a4;} -//nop; -t7 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x100045c8; -//nop; -t4 = t7 + t0; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4261f4; -a1 = a1; -L4261f4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4262a4;} -//nop; -t1 = 0x1000a36c; -at = 0x1; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L426284;} -//nop; -t8 = 0x10000008; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L426284;} -//nop; -t2 = 0x100045d4; -t5 = MEM_U32(sp + 340); -t9 = s0 << 2; -t2 = t2; -t6 = t5 + t9; -t7 = 0x10004604; -MEM_U32(sp + 20) = t2; -MEM_U32(sp + 16) = zero; -t3 = MEM_U32(t6 + 0); -//nop; -t7 = t7; -MEM_U32(sp + 28) = t7; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L426278; -MEM_U32(sp + 24) = t3; -L426278: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L426284: -a1 = 0x10004608; -//nop; -a0 = 0x1000a290; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L426298; -a1 = a1; -L426298: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4262a4: -t0 = MEM_U32(sp + 340); -t4 = s0 << 2; -a1 = 0x1000460c; -//nop; -t1 = t0 + t4; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4262c4; -a1 = a1; -L4262c4: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4263d0;} -//nop; -t8 = 0x1000a150; -at = 0x10000; -t8 = MEM_U32(t8 + 0); -at = at | 0x1; -t2 = t8 | at; -at = 0x1000a150; -t5 = MEM_U32(sp + 336); -t9 = s0 + 0x1; -MEM_U32(at + 0) = t2; -at = (int)t9 < (int)t5; -if (at == 0) {//nop; -goto L42a934;} -//nop; -t6 = 0x100003ac; -//nop; -MEM_U32(sp + 108) = t6; -t3 = MEM_U32(t6 + 0); -//nop; -if (t3 == 0) {//nop; -goto L426394;} -//nop; -t7 = MEM_U32(sp + 340); -t0 = s0 << 2; -//nop; -t4 = t7 + t0; -a0 = MEM_U32(t4 + 4); -a1 = t3; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426338; -a1 = t3; -L426338: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L426394;} -//nop; -L426344: -t1 = MEM_U32(sp + 108); -//nop; -t8 = t1 + 0x8; -MEM_U32(sp + 108) = t8; -t2 = MEM_U32(sp + 108); -//nop; -t5 = MEM_U32(t2 + 0); -//nop; -if (t5 == 0) {//nop; -goto L426394;} -//nop; -t9 = MEM_U32(sp + 340); -t6 = s0 << 2; -t7 = t9 + t6; -//nop; -a0 = MEM_U32(t7 + 4); -a1 = t5; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426388; -a1 = t5; -L426388: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L426344;} -//nop; -L426394: -t0 = MEM_U32(sp + 108); -//nop; -t4 = MEM_U32(t0 + 0); -//nop; -if (t4 == 0) {//nop; -goto L42a934;} -//nop; -t3 = 0x1000a150; -t1 = MEM_U32(sp + 108); -t3 = MEM_U32(t3 + 0); -t8 = MEM_U32(t1 + 4); -at = 0x1000a150; -t2 = t3 | t8; -s0 = s0 + 0x1; -MEM_U32(at + 0) = t2; -goto L42a934; -MEM_U32(at + 0) = t2; -L4263d0: -t9 = MEM_U32(sp + 340); -t6 = s0 << 2; -t7 = t9 + t6; -//nop; -a1 = 0x10004614; -a0 = MEM_U32(t7 + 0); -a2 = 0xc; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L4263f4; -a1 = a1; -L4263f4: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L426434;} -//nop; -t5 = 0x1000a150; -at = 0x10000; -t5 = MEM_U32(t5 + 0); -at = at | 0x1; -t0 = t5 | at; -at = 0x1000a150; -t4 = 0x100003a8; -MEM_U32(at + 0) = t0; -t4 = MEM_U32(t4 + 0); -at = 0x100003a8; -t1 = t4 + 0x1; -MEM_U32(at + 0) = t1; -goto L42a934; -MEM_U32(at + 0) = t1; -L426434: -t3 = MEM_U32(sp + 340); -t8 = s0 << 2; -a1 = 0x10004624; -//nop; -t2 = t3 + t8; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426454; -a1 = a1; -L426454: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4265d8;} -//nop; -t9 = 0x1000a188; -at = 0x10000; -t9 = MEM_U32(t9 + 0); -t7 = 0x1000027c; -at = at | 0x1; -t6 = t9 | at; -at = 0x1000a188; -t7 = MEM_U32(t7 + 0); -MEM_U32(at + 0) = t6; -if (t7 == 0) {//nop; -goto L4264d4;} -//nop; -t5 = 0x1000462c; -//nop; -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4264b4; -MEM_U32(sp + 16) = zero; -L4264b4: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4264cc; -//nop; -L4264cc: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L4264d4: -a0 = 0x10004650; -//nop; -a1 = zero; -a2 = zero; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L4264ec; -a0 = a0; -L4264ec: -t0 = MEM_U32(sp + 336); -t4 = s0 + 0x1; -// bdead 40022303 gp = MEM_U32(sp + 64); -at = (int)t4 < (int)t0; -if (at == 0) {//nop; -goto L42a934;} -//nop; -t1 = 0x100003c4; -//nop; -MEM_U32(sp + 104) = t1; -t3 = MEM_U32(t1 + 0); -//nop; -if (t3 == 0) {//nop; -goto L42659c;} -//nop; -t8 = MEM_U32(sp + 340); -t2 = s0 << 2; -t9 = t8 + t2; -a0 = MEM_U32(t9 + 4); -//nop; -a1 = t3; -//nop; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426540; -//nop; -L426540: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42659c;} -//nop; -L42654c: -t6 = MEM_U32(sp + 104); -//nop; -t7 = t6 + 0x8; -MEM_U32(sp + 104) = t7; -t5 = MEM_U32(sp + 104); -//nop; -t0 = MEM_U32(t5 + 0); -//nop; -if (t0 == 0) {//nop; -goto L42659c;} -//nop; -t4 = MEM_U32(sp + 340); -t1 = s0 << 2; -//nop; -t8 = t4 + t1; -a0 = MEM_U32(t8 + 4); -a1 = t0; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426590; -a1 = t0; -L426590: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42654c;} -//nop; -L42659c: -t2 = MEM_U32(sp + 104); -//nop; -t9 = MEM_U32(t2 + 0); -//nop; -if (t9 == 0) {//nop; -goto L42a934;} -//nop; -t3 = 0x1000a188; -t6 = MEM_U32(sp + 104); -t3 = MEM_U32(t3 + 0); -t7 = MEM_U32(t6 + 4); -at = 0x1000a188; -t5 = t3 | t7; -s0 = s0 + 0x1; -MEM_U32(at + 0) = t5; -goto L42a934; -MEM_U32(at + 0) = t5; -L4265d8: -t4 = 0x1000a36c; -at = 0x1; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L426930;} -//nop; -t1 = 0x10000008; -at = 0x2; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == at) {at = 0x3; -goto L426610;} -at = 0x3; -if (t1 != at) {//nop; -goto L426930;} -//nop; -L426610: -t8 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x10004654; -//nop; -t2 = t8 + t0; -a0 = MEM_U32(t2 + 0); -a2 = 0x3; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L426634; -a1 = a1; -L426634: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4268f8;} -//nop; -t9 = MEM_U32(sp + 340); -t6 = s0 << 2; -t3 = t9 + t6; -t7 = MEM_U32(t3 + 0); -//nop; -a1 = 0x10004658; -t5 = t7 + 0x3; -MEM_U32(sp + 100) = t5; -a0 = t5; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42666c; -a1 = a1; -L42666c: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L426694;} -//nop; -t4 = 0x1000011c; -at = 0x1000011c; -t4 = MEM_U32(t4 + 0); -//nop; -t1 = t4 + 0x1; -MEM_U32(at + 0) = t1; -goto L42a934; -MEM_U32(at + 0) = t1; -L426694: -a1 = 0x1000465c; -//nop; -a0 = MEM_U32(sp + 100); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4266a8; -a1 = a1; -L4266a8: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a184; -goto L4266bc;} -at = 0x1000a184; -MEM_U32(at + 0) = zero; -goto L42a934; -MEM_U32(at + 0) = zero; -L4266bc: -a1 = 0x10004664; -//nop; -a0 = MEM_U32(sp + 100); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4266d0; -a1 = a1; -L4266d0: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a184; -goto L4266e8;} -at = 0x1000a184; -t8 = 0x1; -MEM_U32(at + 0) = t8; -goto L42a934; -MEM_U32(at + 0) = t8; -L4266e8: -a1 = 0x1000466c; -//nop; -a0 = MEM_U32(sp + 100); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4266fc; -a1 = a1; -L4266fc: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L426724;} -//nop; -a1 = 0x10004670; -//nop; -a0 = MEM_U32(sp + 100); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42671c; -a1 = a1; -L42671c: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000a184; -goto L426734;} -L426724: -at = 0x1000a184; -t0 = 0x2; -MEM_U32(at + 0) = t0; -goto L42a934; -MEM_U32(at + 0) = t0; -L426734: -t2 = MEM_U32(sp + 100); -at = 0x65; -t9 = MEM_U8(t2 + 0); -//nop; -if (t9 != at) {//nop; -goto L4268b0;} -//nop; -a1 = 0x10004674; -//nop; -a0 = t2 + 0x1; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426760; -a1 = a1; -L426760: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42a934;} -//nop; -a0 = MEM_U32(sp + 100); -a1 = 0x10004678; -//nop; -a0 = a0 + 0x1; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426784; -a1 = a1; -L426784: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42a934;} -//nop; -a0 = MEM_U32(sp + 100); -a1 = 0x1000467c; -//nop; -a0 = a0 + 0x1; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4267a8; -a1 = a1; -L4267a8: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42a934;} -//nop; -a0 = MEM_U32(sp + 100); -a1 = 0x10004684; -//nop; -a0 = a0 + 0x1; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4267cc; -a1 = a1; -L4267cc: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42a934;} -//nop; -a0 = MEM_U32(sp + 100); -a1 = 0x10004688; -//nop; -a0 = a0 + 0x1; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4267f0; -a1 = a1; -L4267f0: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42a934;} -//nop; -a0 = MEM_U32(sp + 100); -a1 = 0x10004690; -//nop; -a0 = a0 + 0x1; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426814; -a1 = a1; -L426814: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42a934;} -//nop; -a0 = MEM_U32(sp + 100); -a1 = 0x10004698; -//nop; -a0 = a0 + 0x1; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426838; -a1 = a1; -L426838: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42a934;} -//nop; -a0 = MEM_U32(sp + 100); -a1 = 0x100046a0; -//nop; -a0 = a0 + 0x1; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42685c; -a1 = a1; -L42685c: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42a934;} -//nop; -t6 = 0x100046a8; -t3 = MEM_U32(sp + 340); -t7 = s0 << 2; -t6 = t6; -MEM_U32(sp + 20) = t6; -MEM_U32(sp + 16) = zero; -t5 = t3 + t7; -t4 = MEM_U32(t5 + 0); -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t4; -f_error(mem, sp, a0, a1, a2, a3); -goto L4268a4; -MEM_U32(sp + 24) = t4; -L4268a4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4268b0: -t1 = 0x100046c4; -t8 = MEM_U32(sp + 340); -t0 = s0 << 2; -t1 = t1; -MEM_U32(sp + 20) = t1; -MEM_U32(sp + 16) = zero; -t9 = t8 + t0; -t2 = MEM_U32(t9 + 0); -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t2; -f_error(mem, sp, a0, a1, a2, a3); -goto L4268ec; -MEM_U32(sp + 24) = t2; -L4268ec: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4268f8: -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x100046e4; -//nop; -t7 = t6 + t3; -a0 = MEM_U32(t7 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426918; -a1 = a1; -L426918: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000118; -goto L426930;} -at = 0x10000118; -t5 = 0x1; -MEM_U32(at + 0) = t5; -goto L42a934; -MEM_U32(at + 0) = t5; -L426930: -t4 = MEM_U32(sp + 340); -t1 = s0 << 2; -t8 = t4 + t1; -t0 = MEM_U32(t8 + 0); -//nop; -t9 = MEM_U8(t0 + 2); -//nop; -if (t9 != 0) {at = 0x10000220; -goto L426960;} -at = 0x10000220; -t2 = 0x1; -MEM_U32(at + 0) = t2; -goto L4269f0; -MEM_U32(at + 0) = t2; -L426960: -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -t7 = t6 + t3; -t5 = MEM_U32(t7 + 0); -//nop; -t4 = MEM_U8(t5 + 3); -//nop; -if (t4 != 0) {//nop; -goto L42a880;} -//nop; -t1 = MEM_U32(sp + 340); -t8 = s0 << 2; -t0 = t1 + t8; -t9 = MEM_U32(t0 + 0); -//nop; -t2 = MEM_U8(t9 + 2); -//nop; -at = (int)t2 < (int)0x30; -if (at != 0) {//nop; -goto L42a880;} -//nop; -t6 = s0 << 2; -t3 = t1 + t6; -t7 = MEM_U32(t3 + 0); -//nop; -t5 = MEM_U8(t7 + 2); -//nop; -at = (int)t5 < (int)0x34; -if (at == 0) {//nop; -goto L42a880;} -//nop; -t4 = s0 << 2; -t8 = t1 + t4; -t0 = MEM_U32(t8 + 0); -at = 0x10000220; -t9 = MEM_U8(t0 + 2); -//nop; -t2 = t9 + 0xffffffd0; -MEM_U32(at + 0) = t2; -L4269f0: -t6 = 0x10000220; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {at = 0x1; -goto L426a10;} -at = 0x1; -if (t6 != at) {//nop; -goto L426a74;} -//nop; -L426a10: -t3 = 0x1000027c; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L426ad0;} -//nop; -t7 = 0x100046f0; -//nop; -t7 = t7; -MEM_U32(sp + 20) = t7; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L426a50; -MEM_U32(sp + 16) = zero; -L426a50: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L426a68; -//nop; -L426a68: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -goto L426ad0; -//nop; -L426a74: -t5 = 0x10004718; -t1 = MEM_U32(sp + 340); -t4 = s0 << 2; -t5 = t5; -MEM_U32(sp + 20) = t5; -MEM_U32(sp + 16) = zero; -t8 = t1 + t4; -t0 = MEM_U32(t8 + 0); -//nop; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t0; -f_error(mem, sp, a0, a1, a2, a3); -goto L426ab0; -MEM_U32(sp + 24) = t0; -L426ab0: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L426ac8; -//nop; -L426ac8: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L426ad0: -a0 = 0x1000474c; -//nop; -a1 = zero; -a2 = zero; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L426ae8; -a0 = a0; -L426ae8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L426af4: -t9 = MEM_U32(sp + 340); -t2 = s0 << 2; -t6 = t9 + t2; -//nop; -a1 = 0x10004750; -a0 = MEM_U32(t6 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426b14; -a1 = a1; -L426b14: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000338; -goto L426b2c;} -at = 0x10000338; -t3 = 0x1; -MEM_U32(at + 0) = t3; -goto L42a934; -MEM_U32(at + 0) = t3; -L426b2c: -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -a1 = 0x10004764; -//nop; -t1 = t7 + t5; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426b4c; -a1 = a1; -L426b4c: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42a934;} -//nop; -t4 = MEM_U32(sp + 340); -t8 = s0 << 2; -a1 = 0x10004768; -//nop; -t0 = t4 + t8; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426b78; -a1 = a1; -L426b78: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -//nop; -goto L42a934; -//nop; -L426b8c: -t9 = MEM_U32(sp + 340); -t2 = s0 << 2; -t6 = t9 + t2; -//nop; -a1 = 0x1000476c; -a0 = MEM_U32(t6 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426bac; -a1 = a1; -L426bac: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L426be4;} -//nop; -t3 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x10004774; -//nop; -t5 = t3 + t7; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426bd8; -a1 = a1; -L426bd8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L426c10;} -//nop; -L426be4: -t1 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t8 = t1 + t4; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a4d0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L426c04; -//nop; -L426c04: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L426c10: -t0 = MEM_U32(sp + 340); -t9 = s0 << 2; -t2 = t0 + t9; -t6 = MEM_U32(t2 + 0); -//nop; -t3 = MEM_U8(t6 + 2); -//nop; -if (t3 != 0) {//nop; -goto L426c5c;} -//nop; -t7 = s0 << 2; -//nop; -t5 = t0 + t7; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L426c50; -//nop; -L426c50: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L426c5c: -t1 = MEM_U32(sp + 340); -t4 = s0 << 2; -a1 = 0x1000477c; -//nop; -t8 = t1 + t4; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426c7c; -a1 = a1; -L426c7c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L426cb4;} -//nop; -t9 = MEM_U32(sp + 340); -t2 = s0 << 2; -t6 = t9 + t2; -//nop; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L426ca8; -//nop; -L426ca8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L426cb4: -t3 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x1000478c; -//nop; -t7 = t3 + t0; -a0 = MEM_U32(t7 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426cd4; -a1 = a1; -L426cd4: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000033c; -goto L426cec;} -at = 0x1000033c; -t5 = 0x1; -MEM_U32(at + 0) = t5; -goto L42a934; -MEM_U32(at + 0) = t5; -L426cec: -t1 = MEM_U32(sp + 340); -t4 = s0 << 2; -a1 = 0x1000479c; -//nop; -t8 = t1 + t4; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426d0c; -a1 = a1; -L426d0c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L426da4;} -//nop; -t9 = MEM_U32(sp + 340); -t2 = s0 << 2; -t6 = t9 + t2; -t3 = MEM_U32(t6 + 4); -//nop; -if (t3 == 0) {//nop; -goto L426da4;} -//nop; -t0 = s0 << 2; -t7 = t9 + t0; -t5 = MEM_U32(t7 + 4); -at = 0x2d; -t1 = MEM_U8(t5 + 0); -//nop; -if (t1 == at) {//nop; -goto L426da4;} -//nop; -t4 = s0 << 2; -t8 = t9 + t4; -//nop; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L426d70; -//nop; -L426d70: -// bdead 40020003 gp = MEM_U32(sp + 64); -t2 = MEM_U32(sp + 340); -s0 = s0 + 0x1; -t6 = s0 << 2; -//nop; -t3 = t2 + t6; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L426d98; -//nop; -L426d98: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L426da4: -t0 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x100047a4; -//nop; -t5 = t0 + t7; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426dc4; -a1 = a1; -L426dc4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L426dfc;} -//nop; -t1 = MEM_U32(sp + 340); -t9 = s0 << 2; -t4 = t1 + t9; -//nop; -a1 = 0x100047b4; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426df0; -a1 = a1; -L426df0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L426e28;} -//nop; -L426dfc: -t8 = MEM_U32(sp + 340); -t2 = s0 << 2; -//nop; -t6 = t8 + t2; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L426e1c; -//nop; -L426e1c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L426e28: -t3 = 0x1000a36c; -at = 0x3; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L426e98;} -//nop; -t0 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x100047c4; -//nop; -t5 = t0 + t7; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426e60; -a1 = a1; -L426e60: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L426e98;} -//nop; -t1 = MEM_U32(sp + 340); -t9 = s0 << 2; -t4 = t1 + t9; -//nop; -a1 = MEM_U32(t4 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L426e8c; -//nop; -L426e8c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L426e98: -t8 = 0x1000a36c; -at = 0x6; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L42a880;} -//nop; -t2 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x100047c8; -//nop; -t3 = t2 + t6; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426ed0; -a1 = a1; -L426ed0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L426f34;} -//nop; -t0 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x100047d0; -//nop; -t5 = t0 + t7; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426efc; -a1 = a1; -L426efc: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L426f34;} -//nop; -t1 = MEM_U32(sp + 340); -t9 = s0 << 2; -t4 = t1 + t9; -//nop; -a1 = 0x100047d8; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426f28; -a1 = a1; -L426f28: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -L426f34: -t8 = MEM_U32(sp + 340); -t2 = s0 << 2; -//nop; -t6 = t8 + t2; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a418; -//nop; -f_addstr(mem, sp, a0, a1); -goto L426f54; -//nop; -L426f54: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L426f60: -t3 = MEM_U32(sp + 340); -t0 = s0 << 2; -t7 = t3 + t0; -t5 = MEM_U32(t7 + 0); -//nop; -t1 = MEM_U8(t5 + 2); -//nop; -if (t1 != 0) {//nop; -goto L426fac;} -//nop; -t9 = s0 << 2; -t4 = t3 + t9; -//nop; -a1 = MEM_U32(t4 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L426fa0; -//nop; -L426fa0: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L426fac: -t8 = MEM_U32(sp + 340); -t2 = s0 << 2; -a1 = 0x100047e0; -//nop; -t6 = t8 + t2; -a0 = MEM_U32(t6 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L426fcc; -a1 = a1; -L426fcc: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L427004;} -//nop; -t0 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t5 = t0 + t7; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a4b0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L426ff8; -//nop; -L426ff8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L427004: -t1 = 0x1000a36c; -at = 0x1; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L427034;} -//nop; -t3 = 0x10000008; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L42704c;} -//nop; -L427034: -t9 = 0x1000a36c; -at = 0x3; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L427250;} -//nop; -L42704c: -t4 = MEM_U32(sp + 340); -t8 = s0 << 2; -a1 = 0x100047ec; -//nop; -t2 = t4 + t8; -a0 = MEM_U32(t2 + 0); -a2 = 0x3; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L427070; -a1 = a1; -L427070: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L427250;} -//nop; -t6 = MEM_U32(sp + 340); -t0 = s0 << 2; -t7 = t6 + t0; -t5 = MEM_U32(t7 + 0); -//nop; -t1 = MEM_U8(t5 + 3); -//nop; -if (t1 == 0) {//nop; -goto L4270bc;} -//nop; -t3 = s0 << 2; -t9 = t6 + t3; -t4 = MEM_U32(t9 + 0); -at = 0x2c; -t8 = MEM_U8(t4 + 3); -//nop; -if (t8 != at) {at = 0x100001fc; -goto L427250;} -L4270bc: -at = 0x100001fc; -t0 = MEM_U32(sp + 340); -t2 = 0x1; -t7 = s0 << 2; -MEM_U32(at + 0) = t2; -t5 = t0 + t7; -t1 = MEM_U32(t5 + 0); -at = 0x2c; -t6 = MEM_U8(t1 + 3); -//nop; -if (t6 != at) {//nop; -goto L42a934;} -//nop; -t3 = s0 << 2; -t9 = t0 + t3; -t4 = MEM_U32(t9 + 0); -//nop; -t8 = MEM_U8(t4 + 4); -//nop; -if (t8 == 0) {//nop; -goto L42a934;} -//nop; -t2 = s0 << 2; -t7 = t0 + t2; -a0 = MEM_U32(t7 + 0); -a1 = 0x100047f0; -//nop; -a0 = a0 + 0x4; -a1 = a1; -v0 = wrapper_strtok(mem, a0, a1); -goto L42712c; -a1 = a1; -L42712c: -MEM_U32(sp + 96) = v0; -t5 = MEM_U32(sp + 96); -// bdead 40024103 gp = MEM_U32(sp + 64); -if (t5 == 0) {//nop; -goto L42a934;} -//nop; -L427140: -a1 = 0x100047f4; -//nop; -a0 = MEM_U32(sp + 96); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L427154; -a1 = a1; -L427154: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000200; -goto L42716c;} -at = 0x10000200; -t1 = 0x1; -MEM_U32(at + 0) = t1; -goto L427220; -MEM_U32(at + 0) = t1; -L42716c: -t6 = 0x10000204; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L4271b8;} -//nop; -t3 = 0x100047fc; -//nop; -t3 = t3; -MEM_U32(sp + 20) = t3; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4271ac; -MEM_U32(sp + 16) = zero; -L4271ac: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -goto L427220; -//nop; -L4271b8: -t9 = MEM_U32(sp + 96); -at = 0x10000204; -a0 = t9; -MEM_U32(at + 0) = t9; -//nop; -//nop; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L4271d8; -//nop; -L4271d8: -t4 = MEM_U32(sp + 96); -// bdead 4002210b gp = MEM_U32(sp + 64); -t8 = v0 + t4; -t0 = MEM_U8(t8 + -1); -at = 0x2f; -if (t0 == at) {//nop; -goto L427220;} -//nop; -a1 = 0x1000482c; -//nop; -a0 = t4; -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42720c; -a1 = a1; -L42720c: -// bdead 4002000b gp = MEM_U32(sp + 64); -//nop; -at = 0x10000204; -//nop; -MEM_U32(at + 0) = v0; -L427220: -a1 = 0x10004830; -//nop; -a0 = zero; -a1 = a1; -v0 = wrapper_strtok(mem, a0, a1); -goto L427234; -a1 = a1; -L427234: -MEM_U32(sp + 96) = v0; -t2 = MEM_U32(sp + 96); -// bdead 40020903 gp = MEM_U32(sp + 64); -if (t2 != 0) {//nop; -goto L427140;} -//nop; -//nop; -goto L42a934; -//nop; -L427250: -t7 = 0x1000a36c; -at = 0x1; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L427280;} -//nop; -t5 = 0x10000008; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L427298;} -//nop; -L427280: -t1 = 0x1000a36c; -at = 0x3; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L4273a4;} -//nop; -L427298: -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -t9 = t6 + t3; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10004834; -a2 = 0x6; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L4272bc; -a1 = a1; -L4272bc: -// bdead 4002018b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4273a4;} -//nop; -t8 = MEM_U32(sp + 340); -t0 = s0 << 2; -t4 = t8 + t0; -t2 = MEM_U32(t4 + 0); -//nop; -t7 = MEM_U8(t2 + 6); -//nop; -if (t7 == 0) {//nop; -goto L42730c;} -//nop; -t5 = s0 << 2; -t1 = t8 + t5; -t6 = MEM_U32(t1 + 0); -at = 0x2c; -t3 = MEM_U8(t6 + 6); -//nop; -if (t3 != at) {//nop; -goto L4273a4;} -//nop; -L42730c: -t9 = MEM_U32(sp + 340); -t0 = s0 << 2; -t4 = t9 + t0; -t2 = MEM_U32(t4 + 0); -at = 0x2c; -t7 = MEM_U8(t2 + 6); -//nop; -if (t7 != at) {//nop; -goto L427360;} -//nop; -t8 = s0 << 2; -t5 = t9 + t8; -a0 = MEM_U32(t5 + 0); -//nop; -a1 = zero; -a0 = a0 + 0x7; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42734c; -a0 = a0 + 0x7; -L42734c: -// bdead 4002010b gp = MEM_U32(sp + 64); -//nop; -at = 0x10000208; -MEM_U32(at + 0) = v0; -goto L427388; -MEM_U32(at + 0) = v0; -L427360: -a0 = 0x1000483c; -//nop; -a1 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L427374; -a0 = a0; -L427374: -// bdead 4002010b gp = MEM_U32(sp + 64); -//nop; -at = 0x10000208; -//nop; -MEM_U32(at + 0) = v0; -L427388: -t1 = 0x1000020c; -at = 0x1000020c; -t1 = MEM_U32(t1 + 0); -//nop; -t6 = t1 + 0x1; -MEM_U32(at + 0) = t6; -goto L42a934; -MEM_U32(at + 0) = t6; -L4273a4: -t3 = 0x1000a36c; -at = 0x1; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L427494;} -//nop; -t0 = MEM_U32(sp + 340); -t4 = s0 << 2; -a1 = 0x10004850; -//nop; -t2 = t0 + t4; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4273dc; -a1 = a1; -L4273dc: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L427494;} -//nop; -t7 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t7; -if (at != 0) {//nop; -goto L427444;} -//nop; -t9 = 0x10004860; -a0 = 0x1; -t9 = t9; -MEM_U32(sp + 20) = t9; -//nop; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L427424; -MEM_U32(sp + 16) = zero; -L427424: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L42743c; -//nop; -L42743c: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L427444: -t8 = MEM_U32(sp + 340); -t5 = s0 << 2; -//nop; -t1 = t8 + t5; -a1 = MEM_U32(t1 + -4); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L427464; -//nop; -L427464: -// bdead 40020003 gp = MEM_U32(sp + 64); -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -//nop; -t0 = t6 + t3; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L427488; -//nop; -L427488: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L427494: -t4 = 0x1000a36c; -at = 0x1; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L427584;} -//nop; -t2 = MEM_U32(sp + 340); -t7 = s0 << 2; -t9 = t2 + t7; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10004884; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4274cc; -a1 = a1; -L4274cc: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L427584;} -//nop; -t8 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t8; -if (at != 0) {//nop; -goto L427534;} -//nop; -t5 = 0x1000488c; -//nop; -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L427514; -MEM_U32(sp + 16) = zero; -L427514: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L42752c; -//nop; -L42752c: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L427534: -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t3 = t1 + t6; -a1 = MEM_U32(t3 + -4); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L427554; -//nop; -L427554: -// bdead 40020003 gp = MEM_U32(sp + 64); -t0 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t2 = t0 + t4; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L427578; -//nop; -L427578: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L427584: -t7 = MEM_U32(sp + 340); -t9 = s0 << 2; -t8 = t7 + t9; -//nop; -a1 = 0x100048ac; -a0 = MEM_U32(t8 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4275a4; -a1 = a1; -L4275a4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L427ac0;} -//nop; -t5 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t5; -if (at != 0) {//nop; -goto L42760c;} -//nop; -t1 = 0x100048b8; -//nop; -t1 = t1; -MEM_U32(sp + 20) = t1; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4275ec; -MEM_U32(sp + 16) = zero; -L4275ec: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L427604; -//nop; -L427604: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L42760c: -t6 = 0x1000035c; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L4276ac;} -//nop; -t3 = MEM_U32(sp + 340); -a0 = 0x1000a27c; -t0 = s0 << 2; -//nop; -t4 = t3 + t0; -a1 = MEM_U32(t4 + 0); -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_strcmp(mem, a0, a1); -goto L427648; -//nop; -L427648: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4276a0;} -//nop; -t2 = 0x100048d8; -//nop; -t2 = t2; -MEM_U32(sp + 20) = t2; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L42767c; -MEM_U32(sp + 16) = zero; -L42767c: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L427694; -//nop; -L427694: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -goto L4276ac; -//nop; -L4276a0: -at = 0x10000368; -t7 = 0x1; -MEM_U32(at + 0) = t7; -L4276ac: -t9 = MEM_U32(sp + 340); -t8 = s0 << 2; -t5 = t9 + t8; -t1 = MEM_U32(t5 + 0); -at = 0x1000a27c; -t3 = 0x1000027c; -MEM_U32(at + 0) = t1; -at = 0x1000035c; -t3 = MEM_U32(t3 + 0); -t6 = 0x1; -if (t3 == 0) {MEM_U32(at + 0) = t6; -goto L427740;} -MEM_U32(at + 0) = t6; -t0 = 0x10000364; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L427740;} -//nop; -t4 = 0x100048fc; -//nop; -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L42771c; -MEM_U32(sp + 16) = zero; -L42771c: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L427734; -//nop; -L427734: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -goto L42774c; -//nop; -L427740: -at = 0x10000364; -t2 = 0x1; -MEM_U32(at + 0) = t2; -L42774c: -t7 = 0x10000368; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L427a98;} -//nop; -a0 = 0x1000a27c; -a1 = 0x10004920; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42777c; -a1 = a1; -L42777c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4277e8;} -//nop; -t8 = 0x100002d8; -at = 0x10000370; -t8 = MEM_U32(t8 + 0); -t9 = 0x1; -if (t8 != 0) {MEM_U32(at + 0) = t9; -goto L4277d8;} -MEM_U32(at + 0) = t9; -a1 = 0x10004928; -//nop; -a0 = 0x1000a4d0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4277b4; -a1 = a1; -L4277b4: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10004930; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4277d0; -a1 = a1; -L4277d0: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L4277d8: -at = 0x100002d8; -t5 = 0x1; -MEM_U32(at + 0) = t5; -goto L427830; -MEM_U32(at + 0) = t5; -L4277e8: -t1 = 0x10004938; -//nop; -t1 = t1; -MEM_U32(sp + 20) = t1; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L427810; -MEM_U32(sp + 16) = zero; -L427810: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L427828; -//nop; -L427828: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L427830: -a0 = 0x1000a27c; -a1 = 0x10004954; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L427848; -a1 = a1; -L427848: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L427958;} -//nop; -a0 = 0x1000a27c; -a1 = 0x1000495c; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42786c; -a1 = a1; -L42786c: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L427958;} -//nop; -a0 = 0x1000a27c; -a1 = 0x10004964; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L427890; -a1 = a1; -L427890: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L427958;} -//nop; -a0 = 0x1000a27c; -a1 = 0x1000496c; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4278b4; -a1 = a1; -L4278b4: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L427958;} -//nop; -a1 = 0x1000a27c; -a0 = 0x10004974; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -v0 = wrapper_strcat(mem, a0, a1); -goto L4278d8; -a0 = a0; -L4278d8: -// bdead 4002000b gp = MEM_U32(sp + 64); -s4 = v0; -a1 = 0x10004978; -//nop; -a0 = s4; -a1 = a1; -v0 = wrapper_fopen(mem, a0, a1); -goto L4278f4; -a1 = a1; -L4278f4: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L427958;} -//nop; -t6 = 0x1000036c; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L427948;} -//nop; -t3 = 0x1000497c; -//nop; -t3 = t3; -MEM_U32(sp + 20) = t3; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L427940; -MEM_U32(sp + 16) = zero; -L427940: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -L427948: -t0 = 0x100049c4; -at = 0x1000a27c; -t0 = t0; -MEM_U32(at + 0) = t0; -L427958: -t4 = 0x10000370; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L4279a8;} -//nop; -a0 = 0x1000a25c; -a1 = 0x1000a27c; -a2 = 0x100049cc; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 0); -a3 = zero; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L427994; -a2 = a2; -L427994: -// bdead 4002010b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000a25c; -//nop; -MEM_U32(at + 0) = v0; -L4279a8: -t2 = 0x10000280; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L4279f0;} -//nop; -a0 = 0x1000a25c; -a1 = 0x100049d0; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4279dc; -a1 = a1; -L4279dc: -// bdead 4002000b gp = MEM_U32(sp + 64); -//nop; -at = 0x10000084; -MEM_U32(at + 0) = v0; -goto L427a48; -MEM_U32(at + 0) = v0; -L4279f0: -a0 = 0x1000a25c; -a1 = 0x100049e0; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L427a0c; -a1 = a1; -L427a0c: -// bdead 4002010b gp = MEM_U32(sp + 64); -a2 = zero; -a0 = 0x1000a25c; -at = 0x1000008c; -a1 = 0x100049f0; -//nop; -a0 = MEM_U32(a0 + 0); -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L427a34; -a1 = a1; -L427a34: -// bdead 4002000b gp = MEM_U32(sp + 64); -//nop; -at = 0x10000084; -//nop; -MEM_U32(at + 0) = v0; -L427a48: -t7 = 0x1000a1b4; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L427a80;} -//nop; -a0 = 0x100049fc; -//nop; -a1 = zero; -a2 = t7; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L427a78; -a0 = a0; -L427a78: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L427a80: -//nop; -//nop; -//nop; -f_newrunlib(mem, sp); -goto L427a90; -//nop; -L427a90: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L427a98: -t9 = MEM_U32(sp + 340); -t8 = s0 << 2; -t5 = t9 + t8; -//nop; -a0 = MEM_U32(t5 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L427ab4; -//nop; -L427ab4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L427ac0: -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10004a00; -//nop; -t3 = t1 + t6; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L427ae0; -a1 = a1; -L427ae0: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L427b74;} -//nop; -t0 = 0x10000304; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {//nop; -goto L427b1c;} -//nop; -t4 = 0x1000030c; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L427b64;} -//nop; -L427b1c: -t2 = 0x10004a0c; -//nop; -t2 = t2; -MEM_U32(sp + 20) = t2; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L427b44; -MEM_U32(sp + 16) = zero; -L427b44: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L427b5c; -//nop; -L427b5c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -L427b64: -at = 0x10000300; -t7 = 0x1; -MEM_U32(at + 0) = t7; -goto L42a934; -MEM_U32(at + 0) = t7; -L427b74: -t9 = MEM_U32(sp + 340); -t8 = s0 << 2; -t5 = t9 + t8; -t1 = MEM_U32(t5 + 0); -at = 0x6f; -t6 = MEM_U8(t1 + 2); -//nop; -if (t6 != at) {//nop; -goto L427da4;} -//nop; -t3 = s0 << 2; -t0 = t9 + t3; -t4 = MEM_U32(t0 + 0); -at = 0x70; -t2 = MEM_U8(t4 + 3); -//nop; -if (t2 != at) {//nop; -goto L427da4;} -//nop; -t7 = s0 << 2; -t8 = t9 + t7; -t5 = MEM_U32(t8 + 0); -at = 0x74; -t1 = MEM_U8(t5 + 4); -//nop; -if (t1 != at) {//nop; -goto L427da4;} -//nop; -t6 = 0x1000a36c; -at = 0x1; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == at) {at = 0x3; -goto L427c2c;} -at = 0x3; -if (t6 == at) {//nop; -goto L427c2c;} -//nop; -t3 = 0x10004a40; -//nop; -t3 = t3; -MEM_U32(sp + 20) = t3; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L427c20; -MEM_U32(sp + 16) = zero; -L427c20: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L427c2c: -t0 = 0x1000a36c; -at = 0x1; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L427cb0;} -//nop; -t4 = 0x10000008; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L427cb0;} -//nop; -t2 = 0x10004a7c; -t9 = MEM_U32(sp + 340); -t7 = s0 << 2; -t2 = t2; -t8 = t9 + t7; -t1 = 0x10004aac; -MEM_U32(sp + 20) = t2; -MEM_U32(sp + 16) = zero; -t5 = MEM_U32(t8 + 0); -//nop; -t1 = t1; -MEM_U32(sp + 28) = t1; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t5; -f_error(mem, sp, a0, a1, a2, a3); -goto L427ca4; -MEM_U32(sp + 24) = t5; -L427ca4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L427cb0: -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -t0 = t6 + t3; -t4 = MEM_U32(t0 + 0); -at = 0x1000a1d4; -t2 = t4 + 0x5; -MEM_U32(at + 0) = t2; -t9 = MEM_U8(t2 + 0); -at = 0x2c; -if (t9 != at) {//nop; -goto L427d94;} -//nop; -L427cdc: -t7 = 0x1000a1d4; -t8 = 0x1000a1d4; -t7 = MEM_U32(t7 + 0); -at = 0x1000a1d4; -MEM_U8(t7 + 0) = (uint8_t)zero; -t8 = MEM_U32(t8 + 0); -//nop; -a0 = 0x1000a5e0; -t5 = t8 + 0x1; -a1 = t5; -MEM_U32(at + 0) = t5; -f_addstr(mem, sp, a0, a1); -goto L427d0c; -MEM_U32(at + 0) = t5; -L427d0c: -// bdead 40020103 gp = MEM_U32(sp + 64); -at = 0x2c; -t1 = 0x1000a1d4; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -t6 = MEM_U8(t1 + 0); -//nop; -if (t6 == at) {//nop; -goto L427d74;} -//nop; -if (t6 == 0) {//nop; -goto L427d74;} -//nop; -L427d3c: -t3 = 0x1000a1d4; -at = 0x1000a1d4; -t3 = MEM_U32(t3 + 0); -t4 = 0x1000a1d4; -t0 = t3 + 0x1; -MEM_U32(at + 0) = t0; -t4 = MEM_U32(t4 + 0); -at = 0x2c; -t2 = MEM_U8(t4 + 0); -//nop; -if (t2 == at) {//nop; -goto L427d74;} -//nop; -if (t2 != 0) {//nop; -goto L427d3c;} -//nop; -L427d74: -t9 = 0x1000a1d4; -at = 0x2c; -t9 = MEM_U32(t9 + 0); -//nop; -t7 = MEM_U8(t9 + 0); -//nop; -if (t7 == at) {//nop; -goto L427cdc;} -//nop; -L427d94: -at = 0x1000043c; -t8 = 0x1; -MEM_U32(at + 0) = t8; -goto L42a934; -MEM_U32(at + 0) = t8; -L427da4: -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x10004ab0; -//nop; -t6 = t5 + t1; -a0 = MEM_U32(t6 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L427dc4; -a1 = a1; -L427dc4: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000234; -goto L427ddc;} -at = 0x10000234; -t3 = 0x1; -MEM_U32(at + 0) = t3; -goto L42a934; -MEM_U32(at + 0) = t3; -L427ddc: -t0 = MEM_U32(sp + 340); -t4 = s0 << 2; -a1 = 0x10004ab8; -//nop; -t2 = t0 + t4; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L427dfc; -a1 = a1; -L427dfc: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000234; -goto L427e1c;} -at = 0x10000234; -t9 = 0x1; -MEM_U32(at + 0) = t9; -at = 0x10000238; -MEM_U32(at + 0) = zero; -goto L42a934; -MEM_U32(at + 0) = zero; -L427e1c: -t7 = MEM_U32(sp + 340); -t8 = s0 << 2; -a1 = 0x10004ac0; -//nop; -t5 = t7 + t8; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L427e3c; -a1 = a1; -L427e3c: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L427e64;} -//nop; -t1 = 0x10000380; -at = 0x10000380; -t1 = MEM_U32(t1 + 0); -//nop; -t6 = t1 + 0x1; -MEM_U32(at + 0) = t6; -goto L42a934; -MEM_U32(at + 0) = t6; -L427e64: -t3 = 0x1000a36c; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -t0 = t3 ^ 0x1; -t0 = t0 < 0x1; -if (t0 == 0) {//nop; -goto L42815c;} -//nop; -if (t0 == 0) {//nop; -goto L427f70;} -//nop; -t4 = 0x10000008; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L427f70;} -//nop; -t2 = MEM_U32(sp + 340); -t9 = s0 << 2; -t7 = t2 + t9; -//nop; -a1 = 0x10004ac8; -a0 = MEM_U32(t7 + 0); -a2 = 0x6; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L427ec8; -a1 = a1; -L427ec8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L427f70;} -//nop; -t8 = MEM_U32(sp + 340); -t5 = s0 << 2; -t1 = t8 + t5; -t6 = MEM_U32(t1 + 0); -at = 0x2c; -t3 = MEM_U8(t6 + 6); -//nop; -if (t3 != at) {//nop; -goto L427f34;} -//nop; -t0 = s0 << 2; -t4 = t8 + t0; -t2 = MEM_U32(t4 + 0); -//nop; -t9 = MEM_U8(t2 + 7); -//nop; -if (t9 == 0) {//nop; -goto L427f34;} -//nop; -t7 = s0 << 2; -t5 = t8 + t7; -t1 = MEM_U32(t5 + 0); -at = 0x1000010c; -t6 = t1 + 0x7; -MEM_U32(at + 0) = t6; -goto L427f40; -MEM_U32(at + 0) = t6; -L427f34: -at = 0x1000010c; -//nop; -MEM_U32(at + 0) = zero; -L427f40: -t3 = MEM_U32(sp + 340); -t0 = s0 << 2; -//nop; -t4 = t3 + t0; -a0 = MEM_U32(t4 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L427f5c; -//nop; -L427f5c: -// bdead 40020103 gp = MEM_U32(sp + 64); -t2 = 0x1; -at = 0x10000108; -MEM_U32(at + 0) = t2; -goto L42a934; -MEM_U32(at + 0) = t2; -L427f70: -t9 = MEM_U32(sp + 340); -t8 = s0 << 2; -t7 = t9 + t8; -//nop; -a1 = 0x10004ad0; -a0 = MEM_U32(t7 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L427f90; -a1 = a1; -L427f90: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000348; -goto L427fb8;} -at = 0x10000348; -t5 = 0x10000254; -MEM_U32(at + 0) = zero; -t5 = MEM_U32(t5 + 0); -at = 0x10000254; -t1 = t5 + 0x1; -MEM_U32(at + 0) = t1; -goto L42a934; -MEM_U32(at + 0) = t1; -L427fb8: -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x10004ad8; -//nop; -t0 = t6 + t3; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L427fd8; -a1 = a1; -L427fd8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000270; -goto L428014;} -at = 0x10000270; -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -MEM_U32(at + 0) = zero; -t9 = t4 + t2; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a310; -//nop; -f_addstr(mem, sp, a0, a1); -goto L428008; -//nop; -L428008: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428014: -t8 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x10004ae0; -//nop; -t5 = t8 + t7; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L428034; -a1 = a1; -L428034: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L428068;} -//nop; -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10004ae8; -//nop; -t3 = t1 + t6; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L428060; -a1 = a1; -L428060: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000270; -goto L4280a0;} -L428068: -at = 0x10000270; -t4 = MEM_U32(sp + 340); -t0 = 0x1; -t2 = s0 << 2; -MEM_U32(at + 0) = t0; -t9 = t4 + t2; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a310; -//nop; -f_addstr(mem, sp, a0, a1); -goto L428094; -//nop; -L428094: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4280a0: -t8 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x10004af0; -//nop; -t5 = t8 + t7; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4280c0; -a1 = a1; -L4280c0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42815c;} -//nop; -a1 = 0x10004af8; -//nop; -a0 = 0x1000a5d0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4280e0; -a1 = a1; -L4280e0: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10004b00; -//nop; -a0 = 0x1000a5e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4280fc; -a1 = a1; -L4280fc: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10004b08; -//nop; -a0 = 0x1000a310; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L428118; -a1 = a1; -L428118: -// bdead 40020103 gp = MEM_U32(sp + 64); -at = 0x1; -t1 = 0x1000a36c; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L42a934;} -//nop; -t6 = 0x10000008; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {at = 0x1000025c; -goto L42a934;} -at = 0x1000025c; -t3 = 0x1; -MEM_U32(at + 0) = t3; -goto L42a934; -MEM_U32(at + 0) = t3; -L42815c: -t0 = 0x1000a36c; -at = 0x4; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L42822c;} -//nop; -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -t9 = t4 + t2; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10004b14; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L428194; -a1 = a1; -L428194: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4281f4;} -//nop; -t8 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x10004b1c; -//nop; -t5 = t8 + t7; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4281c0; -a1 = a1; -L4281c0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L4281f4;} -//nop; -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10004b24; -//nop; -t3 = t1 + t6; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4281ec; -a1 = a1; -L4281ec: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000270; -goto L42822c;} -L4281f4: -at = 0x10000270; -t4 = MEM_U32(sp + 340); -t0 = 0x1; -t2 = s0 << 2; -MEM_U32(at + 0) = t0; -t9 = t4 + t2; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a310; -//nop; -f_addstr(mem, sp, a0, a1); -goto L428220; -//nop; -L428220: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42822c: -t8 = 0x1000a36c; -at = 0x3; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L428378;} -//nop; -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -a1 = 0x10004b2c; -//nop; -t1 = t7 + t5; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L428264; -a1 = a1; -L428264: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42829c;} -//nop; -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -//nop; -t0 = t6 + t3; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L428290; -//nop; -L428290: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42829c: -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -t9 = t4 + t2; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10004b34; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4282bc; -a1 = a1; -L4282bc: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000284; -goto L4282d0;} -at = 0x10000284; -MEM_U32(at + 0) = zero; -goto L42a934; -MEM_U32(at + 0) = zero; -L4282d0: -t8 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x10004b3c; -//nop; -t5 = t8 + t7; -a0 = MEM_U32(t5 + 0); -a2 = 0x7; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L4282f4; -a1 = a1; -L4282f4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L428378;} -//nop; -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -t3 = t1 + t6; -a0 = MEM_U32(t3 + 0); -a1 = 0x10004b44; -//nop; -a0 = a0 + 0x7; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L428324; -a1 = a1; -L428324: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000039c; -goto L42833c;} -at = 0x1000039c; -t0 = 0x1; -MEM_U32(at + 0) = t0; -goto L42a934; -MEM_U32(at + 0) = t0; -L42833c: -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -t9 = t4 + t2; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10004b48; -a0 = a0 + 0x7; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L428360; -a1 = a1; -L428360: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x1000039c; -goto L428378;} -at = 0x1000039c; -t8 = 0x2; -MEM_U32(at + 0) = t8; -goto L42a934; -MEM_U32(at + 0) = t8; -L428378: -t7 = 0x1000a36c; -at = 0x2; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L4283f0;} -//nop; -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -a1 = 0x10004b4c; -//nop; -t6 = t5 + t1; -a0 = MEM_U32(t6 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4283b0; -a1 = a1; -L4283b0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000270; -goto L4283f0;} -at = 0x10000270; -t0 = MEM_U32(sp + 340); -t3 = 0x1; -t4 = s0 << 2; -//nop; -MEM_U32(at + 0) = t3; -t2 = t0 + t4; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a320; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4283e4; -//nop; -L4283e4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4283f0: -t9 = 0x1000a36c; -at = 0x6; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L4284b8;} -//nop; -t8 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x10004b54; -//nop; -t5 = t8 + t7; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L428428; -a1 = a1; -L428428: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42848c;} -//nop; -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10004b60; -//nop; -t3 = t1 + t6; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L428454; -a1 = a1; -L428454: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42848c;} -//nop; -t0 = MEM_U32(sp + 340); -t4 = s0 << 2; -a1 = 0x10004b6c; -//nop; -t2 = t0 + t4; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L428480; -a1 = a1; -L428480: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4284b8;} -//nop; -L42848c: -t9 = MEM_U32(sp + 340); -t8 = s0 << 2; -t7 = t9 + t8; -//nop; -a1 = MEM_U32(t7 + 0); -a0 = 0x1000a418; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4284ac; -//nop; -L4284ac: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4284b8: -t5 = 0x1000a36c; -at = 0x4; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L42a880;} -//nop; -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10004b78; -//nop; -t3 = t1 + t6; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4284f0; -a1 = a1; -L4284f0: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -//nop; -goto L42a934; -//nop; -L428504: -t0 = MEM_U32(sp + 340); -t4 = s0 << 2; -a1 = 0x10004b80; -//nop; -t2 = t0 + t4; -a0 = MEM_U32(t2 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L428524; -a1 = a1; -L428524: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000330; -goto L428550;} -at = 0x10000330; -t9 = 0x1; -MEM_U32(at + 0) = zero; -at = 0x1000032c; -//nop; -MEM_U32(at + 0) = t9; -at = 0x10000334; -MEM_U32(at + 0) = zero; -goto L42a934; -MEM_U32(at + 0) = zero; -L428550: -t8 = MEM_U32(sp + 340); -t7 = s0 << 2; -a1 = 0x10004b94; -//nop; -t5 = t8 + t7; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L428570; -a1 = a1; -L428570: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000350; -goto L4286d0;} -at = 0x10000350; -t6 = MEM_U32(sp + 340); -t1 = 0x1; -t3 = s0 << 2; -//nop; -MEM_U32(at + 0) = t1; -t0 = t6 + t3; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a320; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4285a4; -//nop; -L4285a4: -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -// bdead 40022803 gp = MEM_U32(sp + 64); -t9 = t4 + t2; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4285c8; -//nop; -L4285c8: -// bdead 40020003 gp = MEM_U32(sp + 64); -t8 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t5 = t8 + t7; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a408; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4285ec; -//nop; -L4285ec: -// bdead 40020003 gp = MEM_U32(sp + 64); -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t3 = t1 + t6; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a418; -//nop; -f_addstr(mem, sp, a0, a1); -goto L428610; -//nop; -L428610: -// bdead 40020003 gp = MEM_U32(sp + 64); -t0 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t2 = t0 + t4; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a428; -//nop; -f_addstr(mem, sp, a0, a1); -goto L428634; -//nop; -L428634: -t9 = MEM_U32(sp + 340); -// bdead 44020003 gp = MEM_U32(sp + 64); -t8 = s0 << 2; -t7 = t9 + t8; -//nop; -a1 = MEM_U32(t7 + 0); -a0 = 0x1000a360; -//nop; -f_addstr(mem, sp, a0, a1); -goto L428658; -//nop; -L428658: -// bdead 40020003 gp = MEM_U32(sp + 64); -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -//nop; -t6 = t5 + t1; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a370; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42867c; -//nop; -L42867c: -// bdead 40020003 gp = MEM_U32(sp + 64); -t3 = MEM_U32(sp + 340); -t0 = s0 << 2; -//nop; -t4 = t3 + t0; -a1 = MEM_U32(t4 + 0); -a0 = 0x1000a4c0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4286a0; -//nop; -L4286a0: -t2 = MEM_U32(sp + 340); -// bdead 40020803 gp = MEM_U32(sp + 64); -t9 = s0 << 2; -t8 = t2 + t9; -//nop; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a4d0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4286c4; -//nop; -L4286c4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4286d0: -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -a1 = 0x10004b9c; -//nop; -t1 = t7 + t5; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4286f0; -a1 = a1; -L4286f0: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {at = 0x10000378; -goto L428708;} -at = 0x10000378; -t6 = 0x1; -MEM_U32(at + 0) = t6; -goto L42a934; -MEM_U32(at + 0) = t6; -L428708: -t3 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x10004ba4; -//nop; -t4 = t3 + t0; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L428728; -a1 = a1; -L428728: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L428750;} -//nop; -t2 = 0x100003ec; -at = 0x100003ec; -t2 = MEM_U32(t2 + 0); -//nop; -t9 = t2 + 0x1; -MEM_U32(at + 0) = t9; -goto L42a934; -MEM_U32(at + 0) = t9; -L428750: -t8 = MEM_U32(sp + 340); -t7 = s0 << 2; -t5 = t8 + t7; -t1 = MEM_U32(t5 + 0); -at = 0x1000a1ac; -//nop; -a0 = 0x1000a1c0; -t6 = t1 + 0x2; -a1 = t6; -MEM_U32(at + 0) = t6; -v0 = wrapper_strcat(mem, a0, a1); -goto L42877c; -MEM_U32(at + 0) = t6; -L42877c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428788: -t3 = MEM_U32(sp + 340); -t0 = s0 << 2; -t4 = t3 + t0; -t2 = MEM_U32(t4 + 0); -//nop; -t9 = MEM_U8(t2 + 2); -//nop; -t8 = t9 + 0xffffffbf; -at = t8 < 0x3a; -if (at == 0) {//nop; -goto L428cdc;} -//nop; -//nop; -//nop; -//nop; -//nop; -//nop; -;static void *const Lswitch10007610[] = { -&&L4287d0, -&&L428cdc, -&&L428818, -&&L428cdc, -&&L428cdc, -&&L428860, -&&L428a58, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L4288a8, -&&L428cdc, -&&L4288f0, -&&L428cdc, -&&L428a10, -&&L428cdc, -&&L428cdc, -&&L428938, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428980, -&&L428a88, -&&L428cdc, -&&L4289c8, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428a78, -&&L428bc4, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428bf8, -&&L428cdc, -&&L428cdc, -&&L428cdc, -&&L428c94, -}; -dest = Lswitch10007610[t8]; -//nop; -goto *dest; -//nop; -L4287d0: -t7 = 0x10004bb4; -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -t7 = t7; -MEM_U32(sp + 20) = t7; -MEM_U32(sp + 16) = zero; -t6 = t5 + t1; -t3 = MEM_U32(t6 + 0); -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L42880c; -MEM_U32(sp + 24) = t3; -L42880c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428818: -t0 = 0x10004bc8; -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -t0 = t0; -MEM_U32(sp + 20) = t0; -MEM_U32(sp + 16) = zero; -t9 = t4 + t2; -t8 = MEM_U32(t9 + 0); -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t8; -f_error(mem, sp, a0, a1, a2, a3); -goto L428854; -MEM_U32(sp + 24) = t8; -L428854: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428860: -t7 = 0x10004bdc; -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -t7 = t7; -MEM_U32(sp + 20) = t7; -MEM_U32(sp + 16) = zero; -t6 = t5 + t1; -t3 = MEM_U32(t6 + 0); -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L42889c; -MEM_U32(sp + 24) = t3; -L42889c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4288a8: -t0 = 0x10004bf0; -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -t0 = t0; -MEM_U32(sp + 20) = t0; -MEM_U32(sp + 16) = zero; -t9 = t4 + t2; -t8 = MEM_U32(t9 + 0); -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t8; -f_error(mem, sp, a0, a1, a2, a3); -goto L4288e4; -MEM_U32(sp + 24) = t8; -L4288e4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4288f0: -t7 = 0x10004c04; -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -t7 = t7; -MEM_U32(sp + 20) = t7; -MEM_U32(sp + 16) = zero; -t6 = t5 + t1; -t3 = MEM_U32(t6 + 0); -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L42892c; -MEM_U32(sp + 24) = t3; -L42892c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428938: -t0 = 0x10004c18; -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -t0 = t0; -MEM_U32(sp + 20) = t0; -MEM_U32(sp + 16) = zero; -t9 = t4 + t2; -t8 = MEM_U32(t9 + 0); -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t8; -f_error(mem, sp, a0, a1, a2, a3); -goto L428974; -MEM_U32(sp + 24) = t8; -L428974: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428980: -t7 = 0x10004c2c; -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -t7 = t7; -MEM_U32(sp + 20) = t7; -MEM_U32(sp + 16) = zero; -t6 = t5 + t1; -t3 = MEM_U32(t6 + 0); -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L4289bc; -MEM_U32(sp + 24) = t3; -L4289bc: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4289c8: -t0 = 0x10004c40; -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -t0 = t0; -MEM_U32(sp + 20) = t0; -MEM_U32(sp + 16) = zero; -t9 = t4 + t2; -t8 = MEM_U32(t9 + 0); -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t8; -f_error(mem, sp, a0, a1, a2, a3); -goto L428a04; -MEM_U32(sp + 24) = t8; -L428a04: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428a10: -t7 = 0x10004c54; -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -t7 = t7; -MEM_U32(sp + 20) = t7; -MEM_U32(sp + 16) = zero; -t6 = t5 + t1; -t3 = MEM_U32(t6 + 0); -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L428a4c; -MEM_U32(sp + 24) = t3; -L428a4c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428a58: -a1 = 0x10004c68; -//nop; -a0 = 0x1000a5a8; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L428a6c; -a1 = a1; -L428a6c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428a78: -at = 0x10000234; -t0 = 0x1; -MEM_U32(at + 0) = t0; -goto L42a934; -MEM_U32(at + 0) = t0; -L428a88: -t4 = 0x10004c6c; -//nop; -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L428ab0; -MEM_U32(sp + 16) = zero; -L428ab0: -// bdead 40020103 gp = MEM_U32(sp + 64); -at = 0x1; -t2 = 0x1000a36c; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L428b00;} -//nop; -t9 = 0x10004c90; -a0 = 0x2; -t9 = t9; -MEM_U32(sp + 20) = t9; -//nop; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L428af8; -MEM_U32(sp + 16) = zero; -L428af8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -L428b00: -t8 = 0x1000038c; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L428b30;} -//nop; -t7 = 0x1000a36c; -at = 0x3; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L428b60;} -//nop; -L428b30: -t5 = 0x10004cd4; -//nop; -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L428b58; -MEM_U32(sp + 16) = zero; -L428b58: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -L428b60: -t1 = 0x10000388; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L428b90;} -//nop; -t6 = 0x1000a36c; -at = 0x2; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L42a934;} -//nop; -L428b90: -t3 = 0x10004d08; -//nop; -t3 = t3; -MEM_U32(sp + 20) = t3; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L428bb8; -MEM_U32(sp + 16) = zero; -L428bb8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428bc4: -t0 = 0x10004d50; -//nop; -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L428bec; -MEM_U32(sp + 16) = zero; -L428bec: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428bf8: -at = 0x10000270; -a1 = 0x10004d74; -//nop; -t4 = 0x1; -a0 = 0x1000a310; -MEM_U32(at + 0) = t4; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L428c18; -a1 = a1; -L428c18: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10004d7c; -//nop; -a0 = 0x1000a320; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L428c34; -a1 = a1; -L428c34: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10004d84; -//nop; -a0 = 0x1000a330; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L428c50; -a1 = a1; -L428c50: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10004d8c; -//nop; -a0 = 0x1000a408; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L428c6c; -a1 = a1; -L428c6c: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -a1 = 0x10004d94; -//nop; -a0 = 0x1000a418; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L428c88; -a1 = a1; -L428c88: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428c94: -t2 = 0x10004d9c; -t9 = MEM_U32(sp + 340); -t8 = s0 << 2; -t2 = t2; -t7 = t9 + t8; -MEM_U32(sp + 20) = t2; -MEM_U32(sp + 16) = zero; -t5 = MEM_U32(t7 + 0); -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t5; -f_error(mem, sp, a0, a1, a2, a3); -goto L428cd0; -MEM_U32(sp + 24) = t5; -L428cd0: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428cdc: -t1 = 0x10004db0; -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -t1 = t1; -MEM_U32(sp + 20) = t1; -MEM_U32(sp + 16) = zero; -t0 = t6 + t3; -t4 = MEM_U32(t0 + 0); -//nop; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t4; -f_error(mem, sp, a0, a1, a2, a3); -goto L428d18; -MEM_U32(sp + 24) = t4; -L428d18: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L428d30; -//nop; -L428d30: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428d3c: -t2 = MEM_U32(sp + 340); -t9 = s0 << 2; -t8 = t2 + t9; -t7 = MEM_U32(t8 + 0); -at = 0x6e; -s4 = MEM_U8(t7 + 2); -//nop; -if (s4 == at) {at = 0x78; -goto L428d70;} -at = 0x78; -if (s4 == at) {//nop; -goto L428db8;} -//nop; -//nop; -goto L428e00; -//nop; -L428d70: -t5 = 0x10004dcc; -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -t5 = t5; -MEM_U32(sp + 20) = t5; -MEM_U32(sp + 16) = zero; -t3 = t1 + t6; -t0 = MEM_U32(t3 + 0); -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t0; -f_error(mem, sp, a0, a1, a2, a3); -goto L428dac; -MEM_U32(sp + 24) = t0; -L428dac: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428db8: -t4 = 0x10004ddc; -t2 = MEM_U32(sp + 340); -t9 = s0 << 2; -t4 = t4; -t8 = t2 + t9; -MEM_U32(sp + 20) = t4; -MEM_U32(sp + 16) = zero; -t7 = MEM_U32(t8 + 0); -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t7; -f_error(mem, sp, a0, a1, a2, a3); -goto L428df4; -MEM_U32(sp + 24) = t7; -L428df4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428e00: -t5 = 0x10004dec; -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -t5 = t5; -MEM_U32(sp + 20) = t5; -MEM_U32(sp + 16) = zero; -t3 = t1 + t6; -t0 = MEM_U32(t3 + 0); -//nop; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t0; -f_error(mem, sp, a0, a1, a2, a3); -goto L428e3c; -MEM_U32(sp + 24) = t0; -L428e3c: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L428e54; -//nop; -L428e54: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428e60: -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -t9 = t4 + t2; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10004e08; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L428e80; -a1 = a1; -L428e80: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42a934;} -//nop; -t8 = MEM_U32(sp + 340); -t7 = s0 << 2; -t5 = t8 + t7; -t1 = MEM_U32(t5 + 0); -//nop; -t6 = MEM_U8(t1 + 2); -//nop; -if (t6 != 0) {//nop; -goto L428fb8;} -//nop; -t3 = 0x1000a36c; -at = 0x3; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {at = 0x1000a174; -goto L428f18;} -at = 0x1000a174; -t0 = 0x1; -t4 = s0 << 2; -//nop; -t2 = t8 + t4; -MEM_U32(at + 0) = t0; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L428eec; -//nop; -L428eec: -t9 = MEM_U32(sp + 340); -// bdead 44020003 gp = MEM_U32(sp + 64); -t7 = s0 << 2; -t5 = t9 + t7; -//nop; -a0 = MEM_U32(t5 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L428f0c; -//nop; -L428f0c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428f18: -t1 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t1; -if (at == 0) {//nop; -goto L428f70;} -//nop; -a1 = 0x10004e10; -//nop; -a0 = 0x1000a540; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L428f40; -a1 = a1; -L428f40: -// bdead 40020003 gp = MEM_U32(sp + 64); -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -//nop; -t0 = t6 + t3; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L428f64; -//nop; -L428f64: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L428f70: -t8 = 0x10004e14; -//nop; -t8 = t8; -MEM_U32(sp + 20) = t8; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L428f98; -MEM_U32(sp + 16) = zero; -L428f98: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L428fb0; -//nop; -L428fb0: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L428fb8: -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -t9 = t4 + t2; -a0 = MEM_U32(t9 + 0); -//nop; -a1 = 0x10004e38; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L428fd8; -a1 = a1; -L428fd8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L429030;} -//nop; -t7 = 0x10004e40; -//nop; -t7 = t7; -MEM_U32(sp + 20) = t7; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L42900c; -MEM_U32(sp + 16) = zero; -L42900c: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L429024; -//nop; -L429024: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -goto L4290a0; -//nop; -L429030: -t5 = 0x1000a36c; -at = 0x3; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L4290a0;} -//nop; -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10004e64; -//nop; -t3 = t1 + t6; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L429068; -a1 = a1; -L429068: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4290a0;} -//nop; -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -//nop; -t4 = t0 + t8; -a1 = MEM_U32(t4 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429094; -//nop; -L429094: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4290a0: -t2 = MEM_U32(sp + 340); -t9 = s0 << 2; -t7 = t2 + t9; -//nop; -a1 = 0x10004e70; -a0 = MEM_U32(t7 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4290c0; -a1 = a1; -L4290c0: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42913c;} -//nop; -t5 = 0x1000a36c; -at = 0x1; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L42911c;} -//nop; -t1 = 0x10000008; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L42911c;} -//nop; -a1 = 0x10004e88; -//nop; -a0 = 0x1000a2f0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L429110; -a1 = a1; -L429110: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42911c: -a1 = 0x10004e90; -//nop; -a0 = 0x1000a2b0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L429130; -a1 = a1; -L429130: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42913c: -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x10004ea8; -//nop; -t0 = t6 + t3; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42915c; -a1 = a1; -L42915c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4291d8;} -//nop; -t8 = 0x1000a36c; -at = 0x1; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L4291b8;} -//nop; -t4 = 0x10000008; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L4291b8;} -//nop; -a1 = 0x10004ebc; -//nop; -a0 = 0x1000a2f0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4291ac; -a1 = a1; -L4291ac: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4291b8: -a1 = 0x10004ec4; -//nop; -a0 = 0x1000a2b0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4291cc; -a1 = a1; -L4291cc: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4291d8: -t2 = 0x1000a36c; -at = 0x1; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L42a880;} -//nop; -t9 = MEM_U32(sp + 340); -t7 = s0 << 2; -t5 = t9 + t7; -//nop; -a1 = 0x10004ed8; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L429210; -a1 = a1; -L429210: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -t1 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t1; -if (at != 0) {//nop; -goto L429278;} -//nop; -t6 = 0x10004eec; -//nop; -t6 = t6; -MEM_U32(sp + 20) = t6; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L429258; -MEM_U32(sp + 16) = zero; -L429258: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L429270; -//nop; -L429270: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L429278: -t3 = MEM_U32(sp + 340); -t0 = s0 << 2; -//nop; -t8 = t3 + t0; -a1 = MEM_U32(t8 + -4); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429298; -//nop; -L429298: -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -// bdead 40022803 gp = MEM_U32(sp + 64); -t9 = t4 + t2; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4292bc; -//nop; -L4292bc: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4292c8: -t7 = MEM_U32(sp + 340); -t5 = s0 << 2; -t1 = t7 + t5; -t6 = MEM_U32(t1 + 0); -//nop; -t3 = MEM_U8(t6 + 2); -//nop; -if (t3 != 0) {//nop; -goto L429310;} -//nop; -t0 = 0x10000420; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != 0) {at = 0x10000234; -goto L42a934;} -at = 0x10000234; -t8 = 0x1; -MEM_U32(at + 0) = t8; -goto L42a934; -MEM_U32(at + 0) = t8; -L429310: -t4 = 0x1000a36c; -at = 0x1; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L429420;} -//nop; -t2 = MEM_U32(sp + 340); -t9 = s0 << 2; -t7 = t2 + t9; -//nop; -a1 = 0x10004f1c; -a0 = MEM_U32(t7 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L429348; -a1 = a1; -L429348: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L429388;} -//nop; -t5 = 0x10004f28; -//nop; -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L42937c; -MEM_U32(sp + 16) = zero; -L42937c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L429388: -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10004f70; -//nop; -t3 = t1 + t6; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4293a8; -a1 = a1; -L4293a8: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4293d4;} -//nop; -a1 = 0x10004f7c; -//nop; -a0 = 0x1000a310; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4293c8; -a1 = a1; -L4293c8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4293d4: -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -a1 = 0x10004f88; -//nop; -t4 = t0 + t8; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4293f4; -a1 = a1; -L4293f4: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L429420;} -//nop; -a1 = 0x10004f94; -//nop; -a0 = 0x1000a310; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L429414; -a1 = a1; -L429414: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L429420: -t2 = 0x1000a36c; -at = 0x3; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L4294e0;} -//nop; -t9 = MEM_U32(sp + 340); -t7 = s0 << 2; -t5 = t9 + t7; -//nop; -a1 = 0x10004fa0; -a0 = MEM_U32(t5 + 0); -a2 = 0x4; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L42945c; -a1 = a1; -L42945c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L429494;} -//nop; -t1 = MEM_U32(sp + 340); -t6 = s0 << 2; -a1 = 0x10004fa8; -//nop; -t3 = t1 + t6; -a0 = MEM_U32(t3 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L429488; -a1 = a1; -L429488: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4294e0;} -//nop; -L429494: -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -//nop; -t4 = t0 + t8; -a1 = MEM_U32(t4 + 0); -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4294b4; -//nop; -L4294b4: -t2 = MEM_U32(sp + 340); -// bdead 40020803 gp = MEM_U32(sp + 64); -t9 = s0 << 2; -t7 = t2 + t9; -//nop; -a0 = MEM_U32(t7 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L4294d4; -//nop; -L4294d4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4294e0: -t5 = 0x1000a36c; -at = 0x1; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L42a880;} -//nop; -t1 = 0x10000008; -at = 0x2; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == at) {at = 0x3; -goto L429518;} -at = 0x3; -if (t1 != at) {//nop; -goto L42a880;} -//nop; -L429518: -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x10004fb4; -//nop; -t0 = t6 + t3; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L429538; -a1 = a1; -L429538: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a880;} -//nop; -t8 = 0x1000a36c; -at = 0x1; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L42a934;} -//nop; -t4 = 0x10000008; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L42a934;} -//nop; -t2 = 0x10004fb8; -t9 = MEM_U32(sp + 340); -t7 = s0 << 2; -t2 = t2; -t5 = t9 + t7; -t6 = 0x10004fe8; -MEM_U32(sp + 20) = t2; -MEM_U32(sp + 16) = zero; -t1 = MEM_U32(t5 + 0); -//nop; -t6 = t6; -MEM_U32(sp + 28) = t6; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t1; -f_error(mem, sp, a0, a1, a2, a3); -goto L4295bc; -MEM_U32(sp + 24) = t1; -L4295bc: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4295c8: -t3 = 0x1000a36c; -at = 0x1; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L4296c0;} -//nop; -t0 = MEM_U32(sp + 340); -t8 = s0 << 2; -a1 = 0x10004fec; -//nop; -t4 = t0 + t8; -a0 = MEM_U32(t4 + 0); -a2 = 0x6; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L429604; -a1 = a1; -L429604: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L4296c0;} -//nop; -t2 = 0x1000a36c; -at = 0x1; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L429694;} -//nop; -t9 = 0x10000008; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L429694;} -//nop; -t7 = 0x10004ff4; -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -t7 = t7; -t0 = 0x10005024; -MEM_U32(sp + 20) = t7; -MEM_U32(sp + 16) = zero; -t6 = t5 + t1; -t3 = MEM_U32(t6 + 0); -//nop; -t0 = t0; -MEM_U32(sp + 28) = t0; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L429688; -MEM_U32(sp + 24) = t3; -L429688: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L429694: -t8 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t2 = t8 + t4; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a310; -//nop; -f_addstr(mem, sp, a0, a1); -goto L4296b4; -//nop; -L4296b4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4296c0: -t9 = MEM_U32(sp + 340); -t7 = s0 << 2; -t5 = t9 + t7; -//nop; -a1 = 0x10005028; -a0 = MEM_U32(t5 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4296e0; -a1 = a1; -L4296e0: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L429884;} -//nop; -t1 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t1; -if (at == 0) {//nop; -goto L42983c;} -//nop; -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x10005030; -//nop; -t0 = t6 + t3; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L429720; -a1 = a1; -L429720: -// bdead 4002010b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L429734;} -//nop; -MEM_U32(sp + 304) = zero; -goto L42a934; -MEM_U32(sp + 304) = zero; -L429734: -t8 = MEM_U32(sp + 340); -t4 = s0 << 2; -t2 = t8 + t4; -t9 = MEM_U32(t2 + 0); -//nop; -t7 = MEM_U8(t9 + 0); -//nop; -at = (int)t7 < (int)0x30; -if (at != 0) {//nop; -goto L429780;} -//nop; -t5 = s0 << 2; -t1 = t8 + t5; -t6 = MEM_U32(t1 + 0); -//nop; -t3 = MEM_U8(t6 + 0); -//nop; -at = (int)t3 < (int)0x3a; -if (at != 0) {//nop; -goto L4297b4;} -//nop; -L429780: -t0 = 0x10005038; -//nop; -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4297a8; -MEM_U32(sp + 16) = zero; -L4297a8: -// bdead 40020103 gp = MEM_U32(sp + 64); -s0 = s0 + 0xffffffff; -goto L42a934; -s0 = s0 + 0xffffffff; -L4297b4: -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -t9 = t4 + t2; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000507c; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4297d8; -a0 = a0; -L4297d8: -// bdead 4002000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a2b0; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L4297f0; -a1 = s4; -L4297f0: -// bdead 40020103 gp = MEM_U32(sp + 64); -t7 = MEM_U32(sp + 340); -t8 = s0 << 2; -a0 = 0x10005084; -//nop; -t5 = t7 + t8; -a1 = MEM_U32(t5 + 0); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L429818; -a0 = a0; -L429818: -// bdead 4002000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a2f0; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L429830; -a1 = s4; -L429830: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42983c: -t1 = 0x10005088; -//nop; -t1 = t1; -MEM_U32(sp + 20) = t1; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L429864; -MEM_U32(sp + 16) = zero; -L429864: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L42987c; -//nop; -L42987c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -L429884: -t6 = MEM_U32(sp + 340); -t3 = s0 << 2; -t0 = t6 + t3; -t4 = MEM_U32(t0 + 0); -at = 0x31; -t2 = MEM_U8(t4 + 2); -//nop; -if (t2 != at) {//nop; -goto L429934;} -//nop; -t9 = s0 << 2; -t7 = t6 + t9; -t8 = MEM_U32(t7 + 0); -//nop; -t5 = MEM_U8(t8 + 3); -//nop; -if (t5 != 0) {//nop; -goto L429934;} -//nop; -t1 = 0x1000a36c; -at = 0x3; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == at) {//nop; -goto L429924;} -//nop; -t3 = 0x100050c0; -t0 = s0 << 2; -t3 = t3; -MEM_U32(sp + 20) = t3; -t4 = t6 + t0; -MEM_U32(sp + 16) = zero; -t2 = MEM_U32(t4 + 0); -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t2; -f_error(mem, sp, a0, a1, a2, a3); -goto L429918; -MEM_U32(sp + 24) = t2; -L429918: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L429924: -at = 0x10000398; -t9 = 0x1; -MEM_U32(at + 0) = t9; -goto L42a934; -MEM_U32(at + 0) = t9; -L429934: -t7 = MEM_U32(sp + 340); -t8 = s0 << 2; -t5 = t7 + t8; -t1 = MEM_U32(t5 + 0); -at = 0x30; -t3 = MEM_U8(t1 + 2); -//nop; -if (t3 != at) {//nop; -goto L4299e0;} -//nop; -t6 = s0 << 2; -t0 = t7 + t6; -t4 = MEM_U32(t0 + 0); -//nop; -t2 = MEM_U8(t4 + 3); -//nop; -if (t2 != 0) {//nop; -goto L4299e0;} -//nop; -t9 = 0x1000a36c; -at = 0x3; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == at) {//nop; -goto L4299d4;} -//nop; -t8 = 0x100050d4; -t5 = s0 << 2; -t8 = t8; -MEM_U32(sp + 20) = t8; -t1 = t7 + t5; -MEM_U32(sp + 16) = zero; -t3 = MEM_U32(t1 + 0); -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L4299c8; -MEM_U32(sp + 24) = t3; -L4299c8: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L4299d4: -at = 0x10000398; -MEM_U32(at + 0) = zero; -goto L42a934; -MEM_U32(at + 0) = zero; -L4299e0: -t6 = MEM_U32(sp + 340); -t0 = s0 << 2; -t4 = t6 + t0; -t2 = MEM_U32(t4 + 0); -at = 0x36; -t9 = MEM_U8(t2 + 2); -//nop; -if (t9 != at) {//nop; -goto L429a70;} -//nop; -t8 = 0x1000a36c; -at = 0x3; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L429a44;} -//nop; -t7 = s0 << 2; -t5 = t6 + t7; -t1 = MEM_U32(t5 + 0); -at = 0x36; -t3 = MEM_U8(t1 + 2); -//nop; -if (t3 != at) {at = 0x1000a164; -goto L429a44;} -at = 0x1000a164; -t0 = 0x1; -MEM_U32(at + 0) = t0; -L429a44: -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -t9 = t4 + t2; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a330; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429a64; -//nop; -L429a64: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L429a70: -t8 = MEM_U32(sp + 340); -t6 = s0 << 2; -t7 = t8 + t6; -t5 = MEM_U32(t7 + 0); -//nop; -t1 = MEM_U8(t5 + 2); -//nop; -if (t1 == 0) {//nop; -goto L429b14;} -//nop; -t3 = 0x1000a36c; -at = 0x1; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L429b14;} -//nop; -t0 = 0x10000008; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L429b14;} -//nop; -t4 = 0x100050e8; -t2 = s0 << 2; -t4 = t4; -MEM_U32(sp + 20) = t4; -t9 = t8 + t2; -MEM_U32(sp + 16) = zero; -t6 = MEM_U32(t9 + 0); -t7 = 0x10005118; -//nop; -t7 = t7; -MEM_U32(sp + 28) = t7; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t6; -f_error(mem, sp, a0, a1, a2, a3); -goto L429b08; -MEM_U32(sp + 24) = t6; -L429b08: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L429b14: -t5 = MEM_U32(sp + 340); -t1 = s0 << 2; -t3 = t5 + t1; -t0 = MEM_U32(t3 + 0); -//nop; -t4 = MEM_U8(t0 + 2); -//nop; -if (t4 == 0) {//nop; -goto L429bb8;} -//nop; -t8 = s0 << 2; -t2 = t5 + t8; -t9 = MEM_U32(t2 + 0); -//nop; -t6 = MEM_U8(t9 + 3); -//nop; -if (t6 != 0) {//nop; -goto L42a880;} -//nop; -t7 = s0 << 2; -t1 = t5 + t7; -t3 = MEM_U32(t1 + 0); -at = 0x31; -t0 = MEM_U8(t3 + 2); -//nop; -if (t0 == at) {//nop; -goto L429bb8;} -//nop; -t4 = s0 << 2; -t8 = t5 + t4; -t2 = MEM_U32(t8 + 0); -at = 0x32; -t9 = MEM_U8(t2 + 2); -//nop; -if (t9 == at) {//nop; -goto L429bb8;} -//nop; -t6 = s0 << 2; -t7 = t5 + t6; -t1 = MEM_U32(t7 + 0); -at = 0x33; -t3 = MEM_U8(t1 + 2); -//nop; -if (t3 != at) {//nop; -goto L42a880;} -//nop; -L429bb8: -t0 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t8 = t0 + t4; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a270; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429bd8; -//nop; -L429bd8: -t2 = MEM_U32(sp + 340); -// bdead 40020803 gp = MEM_U32(sp + 64); -t9 = s0 << 2; -t5 = t2 + t9; -//nop; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a310; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429bfc; -//nop; -L429bfc: -// bdead 40020003 gp = MEM_U32(sp + 64); -t6 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t1 = t6 + t7; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a2f0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429c20; -//nop; -L429c20: -// bdead 40020003 gp = MEM_U32(sp + 64); -t0 = MEM_U32(sp + 340); -at = 0x10000398; -t3 = 0x2; -t4 = s0 << 2; -//nop; -t8 = t0 + t4; -MEM_U32(at + 0) = t3; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a320; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429c50; -//nop; -L429c50: -t2 = MEM_U32(sp + 340); -// bdead 40020803 gp = MEM_U32(sp + 64); -t9 = s0 << 2; -t5 = t2 + t9; -//nop; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a408; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429c74; -//nop; -L429c74: -// bdead 40020003 gp = MEM_U32(sp + 64); -t6 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t1 = t6 + t7; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a418; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429c98; -//nop; -L429c98: -// bdead 40020003 gp = MEM_U32(sp + 64); -t3 = MEM_U32(sp + 340); -t0 = s0 << 2; -//nop; -t4 = t3 + t0; -a1 = MEM_U32(t4 + 0); -a0 = 0x1000a428; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429cbc; -//nop; -L429cbc: -t8 = MEM_U32(sp + 340); -t2 = s0 << 2; -// bdead 42020803 gp = MEM_U32(sp + 64); -t9 = t8 + t2; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a448; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429ce0; -//nop; -L429ce0: -// bdead 40020003 gp = MEM_U32(sp + 64); -t5 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t7 = t5 + t6; -a1 = MEM_U32(t7 + 0); -a0 = 0x1000a490; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429d04; -//nop; -L429d04: -// bdead 40020003 gp = MEM_U32(sp + 64); -t1 = MEM_U32(sp + 340); -t3 = s0 << 2; -//nop; -t0 = t1 + t3; -a1 = MEM_U32(t0 + 0); -a0 = 0x1000a4a0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429d28; -//nop; -L429d28: -// bdead 40020003 gp = MEM_U32(sp + 64); -t4 = MEM_U32(sp + 340); -t8 = s0 << 2; -//nop; -t2 = t4 + t8; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a480; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429d4c; -//nop; -L429d4c: -t9 = MEM_U32(sp + 340); -// bdead 44020003 gp = MEM_U32(sp + 64); -t5 = s0 << 2; -t6 = t9 + t5; -//nop; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a4b0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429d70; -//nop; -L429d70: -// bdead 40020003 gp = MEM_U32(sp + 64); -t7 = MEM_U32(sp + 340); -t1 = s0 << 2; -//nop; -t3 = t7 + t1; -a1 = MEM_U32(t3 + 0); -a0 = 0x1000a4c0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429d94; -//nop; -L429d94: -// bdead 40020003 gp = MEM_U32(sp + 64); -t0 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t8 = t0 + t4; -a1 = MEM_U32(t8 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429db8; -//nop; -L429db8: -t2 = MEM_U32(sp + 340); -// bdead 40020803 gp = MEM_U32(sp + 64); -t9 = s0 << 2; -t5 = t2 + t9; -//nop; -a1 = MEM_U32(t5 + 0); -a0 = 0x1000a4d0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429ddc; -//nop; -L429ddc: -// bdead 40020003 gp = MEM_U32(sp + 64); -t6 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t1 = t6 + t7; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429e00; -//nop; -L429e00: -// bdead 40020003 gp = MEM_U32(sp + 64); -t3 = MEM_U32(sp + 340); -t0 = s0 << 2; -//nop; -t4 = t3 + t0; -a1 = MEM_U32(t4 + 0); -a0 = 0x1000a500; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429e24; -//nop; -L429e24: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L429e30: -t8 = MEM_U32(sp + 340); -t2 = s0 << 2; -t9 = t8 + t2; -t5 = MEM_U32(t9 + 0); -//nop; -t6 = MEM_U8(t5 + 2); -//nop; -if (t6 == 0) {//nop; -goto L42a880;} -//nop; -t7 = s0 << 2; -//nop; -t1 = t8 + t7; -a1 = MEM_U32(t1 + 0); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429e70; -//nop; -L429e70: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L429e7c: -t3 = MEM_U32(sp + 340); -t0 = s0 << 2; -a1 = 0x1000511c; -//nop; -t4 = t3 + t0; -a0 = MEM_U32(t4 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L429e9c; -a1 = a1; -L429e9c: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L429f24;} -//nop; -t2 = 0x100003e4; -at = 0x1; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {at = 0x100003e4; -goto L429ec8;} -at = 0x100003e4; -//nop; -MEM_U32(at + 0) = zero; -L429ec8: -at = 0x10000004; -t9 = 0x3; -MEM_U32(at + 0) = t9; -at = 0x100003e8; -//nop; -a0 = 0x10005124; -t5 = 0x3; -a1 = zero; -a2 = zero; -MEM_U32(at + 0) = t5; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L429ef8; -a0 = a0; -L429ef8: -// bdead 40020003 gp = MEM_U32(sp + 64); -t6 = MEM_U32(sp + 340); -t8 = s0 << 2; -//nop; -t7 = t6 + t8; -a0 = MEM_U32(t7 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L429f18; -//nop; -L429f18: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L429f24: -t1 = MEM_U32(sp + 340); -t3 = s0 << 2; -a1 = 0x10005128; -//nop; -t0 = t1 + t3; -a0 = MEM_U32(t0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L429f44; -a1 = a1; -L429f44: -// bdead 4002000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L429f70;} -//nop; -a1 = 0x10005130; -//nop; -a0 = 0x1000a4d0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L429f64; -a1 = a1; -L429f64: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L429f70: -t4 = MEM_U32(sp + 340); -t2 = s0 << 2; -t9 = t4 + t2; -t5 = MEM_U32(t9 + 0); -//nop; -t6 = MEM_U8(t5 + 2); -//nop; -if (t6 != 0) {//nop; -goto L42a880;} -//nop; -t8 = s0 << 2; -//nop; -t7 = t4 + t8; -a1 = MEM_U32(t7 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429fb0; -//nop; -L429fb0: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L429fbc: -t1 = MEM_U32(sp + 340); -t3 = s0 << 2; -t0 = t1 + t3; -t2 = MEM_U32(t0 + 0); -//nop; -t9 = MEM_U8(t2 + 2); -//nop; -if (t9 != 0) {//nop; -goto L42a880;} -//nop; -t5 = s0 << 2; -//nop; -t6 = t1 + t5; -a1 = MEM_U32(t6 + 0); -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L429ffc; -//nop; -L429ffc: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42a008: -t4 = MEM_U32(sp + 340); -t8 = s0 << 2; -t7 = t4 + t8; -t3 = MEM_U32(t7 + 0); -at = 0x2b; -t0 = MEM_U8(t3 + 0); -//nop; -if (t0 != at) {//nop; -goto L42a278;} -//nop; -t2 = 0x1000a36c; -at = 0x1; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L42a278;} -//nop; -t9 = 0x10000008; -at = 0x2; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == at) {at = 0x3; -goto L42a064;} -at = 0x3; -if (t9 != at) {//nop; -goto L42a278;} -//nop; -L42a064: -t1 = MEM_U32(sp + 340); -t5 = s0 << 2; -t6 = t1 + t5; -t4 = MEM_U32(t6 + 0); -//nop; -t8 = MEM_U8(t4 + 1); -//nop; -t7 = t8 + 0xffffffb7; -at = t7 < 0x2f; -if (at == 0) {//nop; -goto L42a880;} -//nop; -//nop; -//nop; -//nop; -//nop; -//nop; -;static void *const Lswitch100076f8[] = { -&&L42a244, -&&L42a880, -&&L42a880, -&&L42a934, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a934, -&&L42a880, -&&L42a880, -&&L42a1b0, -&&L42a1c0, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a0ac, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a880, -&&L42a1a0, -&&L42a190, -}; -dest = Lswitch100076f8[t7]; -//nop; -goto *dest; -//nop; -L42a0ac: -t3 = MEM_U32(sp + 340); -t0 = s0 << 2; -t2 = t3 + t0; -t9 = MEM_U32(t2 + 0); -//nop; -t1 = MEM_U8(t9 + 2); -//nop; -if (t1 != 0) {at = 0x10000248; -goto L42a0d8;} -at = 0x10000248; -MEM_U32(at + 0) = zero; -goto L42a168; -MEM_U32(at + 0) = zero; -L42a0d8: -t5 = MEM_U32(sp + 340); -t6 = s0 << 2; -t4 = t5 + t6; -t8 = MEM_U32(t4 + 0); -at = 0x70; -t7 = MEM_U8(t8 + 2); -//nop; -if (t7 != at) {at = 0x10000248; -goto L42a110;} -at = 0x10000248; -//nop; -MEM_U32(at + 0) = zero; -at = 0x10000250; -MEM_U32(at + 0) = zero; -goto L42a168; -MEM_U32(at + 0) = zero; -L42a110: -t3 = MEM_U32(sp + 340); -t0 = s0 << 2; -t2 = t3 + t0; -t9 = MEM_U32(t2 + 0); -at = 0x61; -t1 = MEM_U8(t9 + 2); -//nop; -if (t1 != at) {at = 0x10000248; -goto L42a13c;} -at = 0x10000248; -MEM_U32(at + 0) = zero; -goto L42a168; -MEM_U32(at + 0) = zero; -L42a13c: -t5 = MEM_U32(sp + 340); -t6 = s0 << 2; -t4 = t5 + t6; -t8 = MEM_U32(t4 + 0); -at = 0x63; -t7 = MEM_U8(t8 + 2); -//nop; -if (t7 != at) {at = 0x10000250; -goto L42a168;} -at = 0x10000250; -//nop; -MEM_U32(at + 0) = zero; -L42a168: -t3 = MEM_U32(sp + 340); -t0 = s0 << 2; -//nop; -t2 = t3 + t0; -a0 = MEM_U32(t2 + 0); -//nop; -f_add_static_opt(mem, sp, a0); -goto L42a184; -//nop; -L42a184: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42a190: -at = 0x1000a198; -t9 = 0x1; -MEM_U32(at + 0) = t9; -goto L42a934; -MEM_U32(at + 0) = t9; -L42a1a0: -at = 0x10000234; -t1 = 0x1; -MEM_U32(at + 0) = t1; -goto L42a934; -MEM_U32(at + 0) = t1; -L42a1b0: -at = 0x1000024c; -t5 = 0x1; -MEM_U32(at + 0) = t5; -goto L42a934; -MEM_U32(at + 0) = t5; -L42a1c0: -t6 = 0x1000a36c; -at = 0x1; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L42a244;} -//nop; -t4 = 0x10000008; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L42a244;} -//nop; -t8 = 0x1000513c; -t7 = MEM_U32(sp + 340); -t9 = 0x1000516c; -t3 = s0 << 2; -t8 = t8; -MEM_U32(sp + 20) = t8; -MEM_U32(sp + 16) = zero; -t0 = t7 + t3; -t2 = MEM_U32(t0 + 0); -t9 = t9; -MEM_U32(sp + 28) = t9; -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t2; -f_error(mem, sp, a0, a1, a2, a3); -goto L42a238; -MEM_U32(sp + 24) = t2; -L42a238: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42a244: -at = 0x10000228; -t1 = 0x1; -MEM_U32(at + 0) = t1; -at = 0x10000258; -t5 = 0x1; -MEM_U32(at + 0) = t5; -at = 0x1000026c; -t6 = 0x1; -MEM_U32(at + 0) = t6; -at = 0x1000a184; -t4 = 0x1; -MEM_U32(at + 0) = t4; -goto L42a934; -MEM_U32(at + 0) = t4; -L42a278: -t8 = MEM_U32(sp + 340); -t7 = s0 << 2; -//nop; -t3 = t8 + t7; -a0 = MEM_U32(t3 + 0); -//nop; -v0 = f_getsuf(mem, sp, a0); -goto L42a294; -//nop; -L42a294: -// bdead 4002010b gp = MEM_U32(sp + 64); -s1 = v0 & 0xff; -at = 0x6d; -if (s1 != at) {//nop; -goto L42a2ac;} -//nop; -s1 = 0x66; -L42a2ac: -at = 0x70; -if (s1 != at) {at = 0x10000388; -goto L42a2c0;} -at = 0x10000388; -t0 = 0x1; -MEM_U32(at + 0) = t0; -L42a2c0: -at = 0x66; -if (s1 != at) {at = 0x1000038c; -goto L42a2d4;} -at = 0x1000038c; -t2 = 0x1; -MEM_U32(at + 0) = t2; -L42a2d4: -at = 0x1; -if (s1 != at) {at = 0x1000a134; -goto L42a2e8;} -at = 0x1000a134; -t9 = 0x1; -MEM_U32(at + 0) = t9; -L42a2e8: -at = 0x63; -if (s1 == at) {at = 0x70; -goto L42a414;} -at = 0x70; -if (s1 == at) {at = 0x66; -goto L42a414;} -at = 0x66; -if (s1 == at) {at = 0x46; -goto L42a414;} -at = 0x46; -if (s1 == at) {at = 0x72; -goto L42a414;} -at = 0x72; -if (s1 == at) {at = 0x65; -goto L42a414;} -at = 0x65; -if (s1 == at) {at = 0x42; -goto L42a414;} -at = 0x42; -if (s1 == at) {at = 0x55; -goto L42a414;} -at = 0x55; -if (s1 == at) {at = 0x73; -goto L42a414;} -at = 0x73; -if (s1 == at) {at = 0x4f; -goto L42a414;} -at = 0x4f; -if (s1 == at) {at = 0x47; -goto L42a414;} -at = 0x47; -if (s1 == at) {at = 0x53; -goto L42a414;} -at = 0x53; -if (s1 == at) {at = 0x4d; -goto L42a414;} -at = 0x4d; -if (s1 == at) {at = 0x56; -goto L42a414;} -at = 0x56; -if (s1 == at) {at = 0x69; -goto L42a414;} -at = 0x69; -if (s1 == at) {at = 0x1; -goto L42a414;} -at = 0x1; -if (s1 == at) {at = 0x44; -goto L42a414;} -at = 0x44; -if (s1 == at) {at = 0x3; -goto L42a414;} -at = 0x3; -if (s1 == at) {at = 0x2; -goto L42a414;} -at = 0x2; -if (s1 == at) {at = 0x75; -goto L42a414;} -at = 0x75; -if (s1 == at) {at = 0x6; -goto L42a414;} -at = 0x6; -if (s1 == at) {//nop; -goto L42a414;} -//nop; -t1 = 0x1000a36c; -at = 0x1; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L42a3e4;} -//nop; -t5 = 0x10000124; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L42a3e4;} -//nop; -t6 = 0x100001fc; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {at = 0x68; -goto L42a3e4;} -at = 0x68; -if (s1 == at) {//nop; -goto L42a414;} -//nop; -L42a3e4: -t4 = 0x10000214; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L42a414;} -//nop; -t8 = 0x1000a36c; -at = 0x4; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L42a780;} -//nop; -L42a414: -t7 = 0x10000394; -at = 0x10000394; -t7 = MEM_U32(t7 + 0); -t2 = MEM_U32(sp + 336); -t3 = t7 + 0x1; -MEM_U32(at + 0) = t3; -t0 = 0x1; -at = (int)t2 < (int)0x2; -if (at != 0) {MEM_U32(sp + 92) = t0; -goto L42a4b4;} -MEM_U32(sp + 92) = t0; -L42a43c: -t1 = MEM_U32(sp + 92); -t9 = MEM_U32(sp + 340); -t5 = t1 << 2; -t6 = t9 + t5; -t4 = MEM_U32(t6 + 0); -at = 0x6a; -t8 = MEM_U8(t4 + 1); -//nop; -if (t8 != at) {//nop; -goto L42a49c;} -//nop; -a1 = 0x10005170; -//nop; -a0 = t4; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42a478; -a1 = a1; -L42a478: -// bdead 4006000b gp = MEM_U32(sp + 64); -if (v0 != 0) {//nop; -goto L42a49c;} -//nop; -t7 = 0x10000224; -at = 0x10000224; -t7 = MEM_U32(t7 + 0); -//nop; -t3 = t7 + 0x1; -MEM_U32(at + 0) = t3; -L42a49c: -t0 = MEM_U32(sp + 92); -t1 = MEM_U32(sp + 336); -t2 = t0 + 0x1; -at = (int)t2 < (int)t1; -if (at != 0) {MEM_U32(sp + 92) = t2; -goto L42a43c;} -MEM_U32(sp + 92) = t2; -L42a4b4: -t9 = 0x10000230; -at = 0x3; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == at) {at = 0x4; -goto L42a4d4;} -at = 0x4; -if (t9 != at) {//nop; -goto L42a68c;} -//nop; -L42a4d4: -t5 = 0x10000224; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {at = 0x63; -goto L42a68c;} -at = 0x63; -if (s1 == at) {at = 0x70; -goto L42a560;} -at = 0x70; -if (s1 == at) {at = 0x66; -goto L42a560;} -at = 0x66; -if (s1 == at) {at = 0x46; -goto L42a560;} -at = 0x46; -if (s1 == at) {at = 0x72; -goto L42a560;} -at = 0x72; -if (s1 == at) {at = 0x65; -goto L42a560;} -at = 0x65; -if (s1 == at) {at = 0x42; -goto L42a560;} -at = 0x42; -if (s1 == at) {at = 0x55; -goto L42a560;} -at = 0x55; -if (s1 == at) {at = 0x69; -goto L42a560;} -at = 0x69; -if (s1 == at) {at = 0x1; -goto L42a560;} -at = 0x1; -if (s1 == at) {at = 0x3; -goto L42a560;} -at = 0x3; -if (s1 == at) {at = 0x2; -goto L42a560;} -at = 0x2; -if (s1 == at) {at = 0x6; -goto L42a560;} -at = 0x6; -if (s1 == at) {at = 0x75; -goto L42a560;} -at = 0x75; -if (s1 == at) {at = 0x44; -goto L42a560;} -at = 0x44; -if (s1 != at) {at = 0x75; -goto L42a68c;} -L42a560: -at = 0x75; -if (s1 == at) {//nop; -goto L42a5b8;} -//nop; -t6 = MEM_U32(sp + 340); -t8 = s0 << 2; -//nop; -t4 = t6 + t8; -a1 = MEM_U32(t4 + 0); -a0 = 0x1000a520; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42a58c; -//nop; -L42a58c: -// bdead 40020003 gp = MEM_U32(sp + 64); -t7 = MEM_U32(sp + 340); -t3 = s0 << 2; -//nop; -t0 = t7 + t3; -a0 = MEM_U32(t0 + 0); -a1 = 0x75; -v0 = f_mksuf(mem, sp, a0, a1); -goto L42a5ac; -a1 = 0x75; -L42a5ac: -// bdead 4002000b gp = MEM_U32(sp + 64); -s2 = v0; -goto L42a5cc; -s2 = v0; -L42a5b8: -t2 = MEM_U32(sp + 340); -t1 = s0 << 2; -t9 = t2 + t1; -s2 = MEM_U32(t9 + 0); -//nop; -L42a5cc: -at = 0x10000408; -t6 = 0x1000040c; -t5 = 0x1; -t6 = MEM_U32(t6 + 0); -MEM_U32(at + 0) = t5; -at = 0xffffffff; -if (t6 != at) {//nop; -goto L42a610;} -//nop; -//nop; -a0 = 0x1000a540; -//nop; -v0 = f_save_place(mem, sp, a0); -goto L42a5fc; -//nop; -L42a5fc: -// bdead 400a000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000040c; -//nop; -MEM_U32(at + 0) = v0; -L42a610: -//nop; -a0 = 0x1000a530; -a1 = s2; -v0 = f_nodup(mem, sp, a0, a1); -goto L42a620; -a1 = s2; -L42a620: -// bdead 400a000b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42a644;} -//nop; -//nop; -a0 = 0x1000a530; -a1 = s2; -f_addstr(mem, sp, a0, a1); -goto L42a63c; -a1 = s2; -L42a63c: -// bdead 40020003 gp = MEM_U32(sp + 64); -//nop; -L42a644: -t8 = MEM_U32(sp + 340); -t4 = s0 << 2; -//nop; -t7 = t8 + t4; -a0 = MEM_U32(t7 + 0); -a1 = 0x6f; -v0 = f_mksuf(mem, sp, a0, a1); -goto L42a660; -a1 = 0x6f; -L42a660: -// bdead 4002000b gp = MEM_U32(sp + 64); -s2 = v0; -//nop; -a0 = 0x1000a540; -a1 = s2; -v0 = f_nodup(mem, sp, a0, a1); -goto L42a678; -a1 = s2; -L42a678: -// bdead 400a010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42a934;} -//nop; -MEM_U32(sp + 312) = s2; -goto L42a934; -MEM_U32(sp + 312) = s2; -L42a68c: -t3 = 0x10000214; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L42a754;} -//nop; -t0 = 0x1000a36c; -at = 0x4; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == at) {//nop; -goto L42a754;} -//nop; -t2 = MEM_U32(sp + 340); -t1 = s0 << 2; -t9 = t2 + t1; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = 0x1000a520; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42a6dc; -//nop; -L42a6dc: -// bdead 40020003 gp = MEM_U32(sp + 64); -t5 = MEM_U32(sp + 340); -t6 = s0 << 2; -//nop; -t8 = t5 + t6; -a0 = MEM_U32(t8 + 0); -a1 = 0x6f; -v0 = f_mksuf(mem, sp, a0, a1); -goto L42a6fc; -a1 = 0x6f; -L42a6fc: -// bdead 4002000b gp = MEM_U32(sp + 64); -s2 = v0; -//nop; -a0 = 0x1000a540; -a1 = s2; -v0 = f_nodup(mem, sp, a0, a1); -goto L42a714; -a1 = s2; -L42a714: -// bdead 400a010b gp = MEM_U32(sp + 64); -if (v0 == 0) {//nop; -goto L42a934;} -//nop; -//nop; -a0 = 0x1000a540; -a1 = s2; -f_addstr(mem, sp, a0, a1); -goto L42a730; -a1 = s2; -L42a730: -// bdead 400a0103 gp = MEM_U32(sp + 64); -MEM_U32(sp + 312) = s2; -t4 = 0x10000418; -at = 0x10000418; -t4 = MEM_U32(t4 + 0); -//nop; -t7 = t4 + 0x1; -MEM_U32(at + 0) = t7; -goto L42a934; -MEM_U32(at + 0) = t7; -L42a754: -t3 = MEM_U32(sp + 340); -t0 = s0 << 2; -//nop; -t2 = t3 + t0; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a520; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42a774; -//nop; -L42a774: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42a780: -at = 0x62; -if (s1 != at) {//nop; -goto L42a834;} -//nop; -t1 = 0x10000230; -at = 0x3; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == at) {at = 0x4; -goto L42a7ac;} -at = 0x4; -if (t1 != at) {//nop; -goto L42a934;} -//nop; -L42a7ac: -t9 = 0x10000224; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L42a934;} -//nop; -t5 = 0x1000040c; -at = 0xffffffff; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L42a800;} -//nop; -//nop; -a0 = 0x1000a540; -//nop; -v0 = f_save_place(mem, sp, a0); -goto L42a7ec; -//nop; -L42a7ec: -// bdead 4002000b gp = MEM_U32(sp + 64); -//nop; -at = 0x1000040c; -//nop; -MEM_U32(at + 0) = v0; -L42a800: -t6 = MEM_U32(sp + 340); -t8 = s0 << 2; -//nop; -t4 = t6 + t8; -a1 = MEM_U32(t4 + 0); -a0 = 0x1000a530; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42a820; -//nop; -L42a820: -// bdead 40020103 gp = MEM_U32(sp + 64); -t7 = 0x1; -at = 0x10000408; -MEM_U32(at + 0) = t7; -goto L42a934; -MEM_U32(at + 0) = t7; -L42a834: -t3 = MEM_U32(sp + 340); -t0 = s0 << 2; -//nop; -t2 = t3 + t0; -a1 = MEM_U32(t2 + 0); -a0 = 0x1000a540; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42a854; -//nop; -L42a854: -// bdead 40060103 gp = MEM_U32(sp + 64); -at = 0x6f; -if (s1 != at) {//nop; -goto L42a934;} -//nop; -t1 = 0x10000418; -at = 0x10000418; -t1 = MEM_U32(t1 + 0); -//nop; -t9 = t1 + 0x1; -MEM_U32(at + 0) = t9; -goto L42a934; -MEM_U32(at + 0) = t9; -L42a880: -t5 = MEM_U32(sp + 304); -//nop; -if (t5 == 0) {//nop; -goto L42a8f0;} -//nop; -t6 = 0x10005174; -t8 = MEM_U32(sp + 340); -t4 = s0 << 2; -t6 = t6; -MEM_U32(sp + 20) = t6; -MEM_U32(sp + 16) = zero; -t7 = t8 + t4; -t3 = MEM_U32(t7 + 0); -//nop; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L42a8cc; -MEM_U32(sp + 24) = t3; -L42a8cc: -// bdead 40020003 gp = MEM_U32(sp + 64); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L42a8e4; -//nop; -L42a8e4: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -goto L42a934; -//nop; -L42a8f0: -t0 = 0x10005198; -t2 = MEM_U32(sp + 340); -t1 = s0 << 2; -t0 = t0; -MEM_U32(sp + 20) = t0; -MEM_U32(sp + 16) = zero; -t9 = t2 + t1; -t5 = MEM_U32(t9 + 0); -//nop; -a0 = 0x2; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t5; -f_error(mem, sp, a0, a1, a2, a3); -goto L42a92c; -MEM_U32(sp + 24) = t5; -L42a92c: -// bdead 40020103 gp = MEM_U32(sp + 64); -//nop; -L42a934: -t6 = MEM_U32(sp + 336); -s0 = s0 + 0x1; -at = (int)s0 < (int)t6; -if (at != 0) {//nop; -goto L41c548;} -//nop; -L42a948: -t8 = MEM_U32(sp + 316); -//nop; -if (t8 == 0) {//nop; -goto L42ae5c;} -//nop; -t4 = 0x1000a520; -at = 0x1; -t4 = MEM_U32(t4 + 4); -//nop; -if (t4 != at) {//nop; -goto L42aa8c;} -//nop; -t7 = 0x1000a520; -//nop; -t7 = MEM_U32(t7 + 8); -//nop; -a0 = MEM_U32(t7 + 0); -//nop; -v0 = wrapper_strdup(mem, a0); -goto L42a98c; -//nop; -L42a98c: -MEM_U32(sp + 88) = v0; -t3 = MEM_U32(sp + 88); -// bdead 40001103 gp = MEM_U32(sp + 64); -if (t3 != 0) {//nop; -goto L42a9ac;} -//nop; -t0 = MEM_U32(sp + 312); -MEM_U32(sp + 88) = t0; -goto L42aa8c; -MEM_U32(sp + 88) = t0; -L42a9ac: -//nop; -a0 = MEM_U32(sp + 88); -//nop; -v0 = wrapper_strlen(mem, a0); -goto L42a9bc; -//nop; -L42a9bc: -MEM_U32(sp + 84) = v0; -t2 = MEM_U32(sp + 84); -// bdead 40000903 gp = MEM_U32(sp + 64); -at = (int)t2 < (int)0x3; -if (at != 0) {//nop; -goto L42aa8c;} -//nop; -t1 = MEM_U32(sp + 88); -at = 0x2e; -t9 = t2 + t1; -t5 = MEM_U8(t9 + -2); -//nop; -if (t5 != at) {//nop; -goto L42aa8c;} -//nop; -t6 = 0x10000214; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L42aa18;} -//nop; -t8 = 0x69; -t4 = t1 + t2; -MEM_U8(t4 + -1) = (uint8_t)t8; -goto L42aa8c; -MEM_U8(t4 + -1) = (uint8_t)t8; -L42aa18: -t7 = 0x1000022c; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L42aa48;} -//nop; -t0 = MEM_U32(sp + 88); -t9 = MEM_U32(sp + 84); -t3 = 0x73; -t5 = t0 + t9; -MEM_U8(t5 + -1) = (uint8_t)t3; -goto L42aa8c; -MEM_U8(t5 + -1) = (uint8_t)t3; -L42aa48: -t6 = 0x10000224; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L42aa78;} -//nop; -t2 = MEM_U32(sp + 88); -t8 = MEM_U32(sp + 84); -t1 = 0x75; -t4 = t2 + t8; -MEM_U8(t4 + -1) = (uint8_t)t1; -goto L42aa8c; -MEM_U8(t4 + -1) = (uint8_t)t1; -L42aa78: -t7 = MEM_U32(sp + 88); -t0 = MEM_U32(sp + 84); -//nop; -t9 = t7 + t0; -MEM_U8(t9 + -2) = (uint8_t)zero; -L42aa8c: -t3 = 0x1000a36c; -at = 0x1; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L42aabc;} -//nop; -t5 = 0x10000008; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L42aaec;} -//nop; -L42aabc: -t6 = 0x1000a36c; -at = 0x3; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L42ac18;} -//nop; -t2 = 0x100001fc; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L42ac18;} -//nop; -L42aaec: -t8 = 0x1000a520; -at = 0x1; -t8 = MEM_U32(t8 + 4); -//nop; -if (t8 != at) {//nop; -goto L42ab68;} -//nop; -t1 = 0x1000a1ec; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L42ab34;} -//nop; -t4 = 0x10000228; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != 0) {//nop; -goto L42ab68;} -//nop; -L42ab34: -a1 = 0x100051bc; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L42ab48; -a1 = a1; -L42ab48: -// bdead 40000003 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 312); -//nop; -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42ab60; -//nop; -L42ab60: -// bdead 40000103 gp = MEM_U32(sp + 64); -//nop; -L42ab68: -a0 = 0x100051c8; -//nop; -a1 = MEM_U32(sp + 316); -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ab80; -a0 = a0; -L42ab80: -// bdead 4000000b gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a270; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L42ab98; -a1 = s4; -L42ab98: -t7 = MEM_U32(sp + 308); -// bdead 40010103 gp = MEM_U32(sp + 64); -if (t7 == 0) {//nop; -goto L42abe0;} -//nop; -a0 = 0x100051cc; -//nop; -a1 = t7; -a2 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42abc0; -a0 = a0; -L42abc0: -// bdead 40000009 gp = MEM_U32(sp + 64); -s4 = v0; -//nop; -a0 = 0x1000a270; -a1 = s4; -f_addstr(mem, sp, a0, a1); -goto L42abd8; -a1 = s4; -L42abd8: -// bdead 40000001 gp = MEM_U32(sp + 64); -//nop; -L42abe0: -a1 = 0x100051d0; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L42abf4; -a1 = a1; -L42abf4: -// bdead 40000001 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 316); -//nop; -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42ac0c; -//nop; -L42ac0c: -// bdead 1 gp = MEM_U32(sp + 64); -//nop; -goto L42ae5c; -//nop; -L42ac18: -t0 = 0x1000a520; -at = 0x1; -t0 = MEM_U32(t0 + 4); -//nop; -if (t0 != at) {//nop; -goto L42ad00;} -//nop; -t9 = 0x1000a1ec; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != 0) {//nop; -goto L42ac60;} -//nop; -t3 = 0x10000228; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L42ad00;} -//nop; -L42ac60: -a1 = 0x100051dc; -//nop; -a0 = 0x1000a270; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L42ac74; -a1 = a1; -L42ac74: -// bdead 40000001 gp = MEM_U32(sp + 64); -//nop; -t5 = 0x1000a1ec; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L42acb0;} -//nop; -//nop; -a0 = 0x1000a270; -a1 = t5; -f_addstr(mem, sp, a0, a1); -goto L42aca4; -a1 = t5; -L42aca4: -// bdead 40000001 gp = MEM_U32(sp + 64); -//nop; -goto L42accc; -//nop; -L42acb0: -//nop; -a0 = 0x1000a270; -a1 = MEM_U32(sp + 88); -//nop; -f_addstr(mem, sp, a0, a1); -goto L42acc4; -//nop; -L42acc4: -// bdead 40000001 gp = MEM_U32(sp + 64); -//nop; -L42accc: -a1 = 0x100051e8; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L42ace0; -a1 = a1; -L42ace0: -// bdead 40000001 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 312); -//nop; -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42acf8; -//nop; -L42acf8: -// bdead 40000001 gp = MEM_U32(sp + 64); -//nop; -L42ad00: -a1 = 0x100051f4; -//nop; -a0 = 0x1000a270; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L42ad14; -a1 = a1; -L42ad14: -// bdead 40000001 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 316); -//nop; -a0 = 0x1000a270; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42ad2c; -//nop; -L42ad2c: -// bdead 40000001 gp = MEM_U32(sp + 64); -at = 0x3; -t6 = 0x10000230; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L42ae28;} -//nop; -a1 = 0x10005200; -//nop; -a0 = 0x1000a448; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L42ad60; -a1 = a1; -L42ad60: -// bdead 40000001 gp = MEM_U32(sp + 64); -//nop; -t2 = 0x1000a1ec; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L42ad9c;} -//nop; -//nop; -a0 = 0x1000a448; -a1 = t2; -f_addstr(mem, sp, a0, a1); -goto L42ad90; -a1 = t2; -L42ad90: -// bdead 40000001 gp = MEM_U32(sp + 64); -//nop; -goto L42adf0; -//nop; -L42ad9c: -t8 = 0x10000228; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L42add4;} -//nop; -a1 = 0x1000520c; -//nop; -a0 = 0x1000a448; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L42adc8; -a1 = a1; -L42adc8: -// bdead 40000001 gp = MEM_U32(sp + 64); -//nop; -goto L42adf0; -//nop; -L42add4: -a1 = 0x10005214; -//nop; -a0 = 0x1000a448; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L42ade8; -a1 = a1; -L42ade8: -// bdead 40000001 gp = MEM_U32(sp + 64); -//nop; -L42adf0: -a1 = 0x1000521c; -//nop; -a0 = 0x1000a448; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L42ae04; -a1 = a1; -L42ae04: -// bdead 40000001 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 316); -//nop; -a0 = 0x1000a448; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42ae1c; -//nop; -L42ae1c: -// bdead 1 gp = MEM_U32(sp + 64); -//nop; -goto L42ae5c; -//nop; -L42ae28: -a1 = 0x10005228; -//nop; -a0 = 0x1000a4e0; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L42ae3c; -a1 = a1; -L42ae3c: -// bdead 40000001 gp = MEM_U32(sp + 64); -a1 = MEM_U32(sp + 316); -//nop; -a0 = 0x1000a4e0; -//nop; -f_addstr(mem, sp, a0, a1); -goto L42ae54; -//nop; -L42ae54: -// bdead 1 gp = MEM_U32(sp + 64); -//nop; -L42ae5c: -// bdead 1 ra = MEM_U32(sp + 68); -// bdead 1 s0 = MEM_U32(sp + 40); -// bdead 1 s1 = MEM_U32(sp + 44); -// bdead 1 s2 = MEM_U32(sp + 48); -// bdead 1 s3 = MEM_U32(sp + 52); -// bdead 1 s4 = MEM_U32(sp + 56); -// bdead 1 s5 = MEM_U32(sp + 60); -// bdead 1 sp = sp + 0x150; -return; -// bdead 1 sp = sp + 0x150; -} - -static void f_get_host_chiptype(uint8_t *mem, uint32_t sp) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L42ae80: -//get_host_chiptype: -//nop; -//nop; -//nop; -//nop; -return; -//nop; -} - -static void f_error(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -L42ae94: -//error: -//nop; -//nop; -//nop; -sp = sp + 0xffffffc8; -t6 = 0x1000023c; -// fdead 400081eb MEM_U32(sp + 44) = ra; -t6 = MEM_U32(t6 + 0); -// fdead 400081eb MEM_U32(sp + 40) = gp; -MEM_U32(sp + 56) = a0; -MEM_U32(sp + 60) = a1; -MEM_U32(sp + 64) = a2; -if (t6 != 0) {MEM_U32(sp + 68) = a3; -goto L42b08c;} -MEM_U32(sp + 68) = a3; -t7 = 0x10000440; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L42b08c;} -//nop; -a0 = 0x1000a31c; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = 0x2f; -v0 = wrapper_strrchr(mem, a0, a1); -goto L42aef4; -a1 = 0x2f; -L42aef4: -// bdead 4000000b gp = MEM_U32(sp + 40); -//nop; -at = 0x10000440; -t8 = 0x10000440; -MEM_U32(at + 0) = v0; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L42af2c;} -//nop; -t9 = 0x1000a31c; -at = 0x10000440; -t9 = MEM_U32(t9 + 0); -MEM_U32(at + 0) = t9; -goto L42af44; -MEM_U32(at + 0) = t9; -L42af2c: -t0 = 0x10000440; -at = 0x10000440; -t0 = MEM_U32(t0 + 0); -//nop; -t1 = t0 + 0x1; -MEM_U32(at + 0) = t1; -L42af44: -a0 = 0x10000440; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_strlen(mem, a0); -goto L42af58; -//nop; -L42af58: -// bdead 4000000b gp = MEM_U32(sp + 40); -MEM_U32(sp + 52) = v0; -a0 = MEM_U32(sp + 52); -//nop; -a0 = a0 + 0x2; -//nop; -v0 = wrapper_malloc(mem, a0); -goto L42af74; -//nop; -L42af74: -// bdead 4000010b gp = MEM_U32(sp + 40); -//nop; -at = 0x10000444; -t2 = 0x10000444; -MEM_U32(at + 0) = v0; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L42b034;} -//nop; -a2 = 0x10000440; -a0 = 0xfb528e4; -a1 = 0x10005260; -//nop; -a2 = MEM_U32(a2 + 0); -a3 = 0x3281; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L42afbc; -a1 = a1; -L42afbc: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -t3 = 0xfb52720; -t4 = 0xfb50300; -t3 = MEM_U32(t3 + 0); -t4 = MEM_U32(t4 + 0); -//nop; -at = (int)t3 < (int)t4; -if (at == 0) {//nop; -goto L42b01c;} -//nop; -t6 = 0xfb500a0; -a2 = 0x10000440; -t5 = t3 << 2; -a0 = 0xfb528e4; -a1 = 0x10005288; -//nop; -t7 = t5 + t6; -a3 = MEM_U32(t7 + 0); -a2 = MEM_U32(a2 + 0); -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L42b014; -a1 = a1; -L42b014: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L42b01c: -//nop; -a0 = 0x1; -//nop; -wrapper_exit(mem, a0); -goto L42b02c; -//nop; -L42b02c: -// bdead 40000103 gp = MEM_U32(sp + 40); -//nop; -L42b034: -t8 = MEM_U32(sp + 52); -MEM_U32(sp + 48) = zero; -if ((int)t8 <= 0) {//nop; -goto L42b074;} -//nop; -L42b044: -t0 = 0x10000444; -t1 = MEM_U32(sp + 48); -t0 = MEM_U32(t0 + 0); -t9 = 0x20; -t2 = t0 + t1; -MEM_U8(t2 + 0) = (uint8_t)t9; -t4 = MEM_U32(sp + 48); -t5 = MEM_U32(sp + 52); -t3 = t4 + 0x1; -at = (int)t3 < (int)t5; -if (at != 0) {MEM_U32(sp + 48) = t3; -goto L42b044;} -MEM_U32(sp + 48) = t3; -L42b074: -t6 = 0x10000444; -t7 = MEM_U32(sp + 48); -t6 = MEM_U32(t6 + 0); -//nop; -t8 = t6 + t7; -MEM_U8(t8 + 0) = (uint8_t)zero; -L42b08c: -t0 = MEM_U32(sp + 56); -at = 0x5; -if (t0 != at) {//nop; -goto L42b0c8;} -//nop; -a2 = 0x10000444; -a0 = 0xfb528e4; -a1 = 0x10005290; -//nop; -a2 = MEM_U32(a2 + 0); -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L42b0bc; -a1 = a1; -L42b0bc: -// bdead 40000101 gp = MEM_U32(sp + 40); -//nop; -goto L42b108; -//nop; -L42b0c8: -t1 = MEM_U32(sp + 56); -t2 = 0x10000448; -t9 = t1 << 2; -t2 = t2; -a2 = 0x10000440; -t4 = t9 + t2; -//nop; -a0 = 0xfb528e4; -a1 = 0x10005298; -a3 = MEM_U32(t4 + 0); -a2 = MEM_U32(a2 + 0); -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L42b100; -a1 = a1; -L42b100: -// bdead 40000101 gp = MEM_U32(sp + 40); -//nop; -L42b108: -t3 = MEM_U32(sp + 60); -//nop; -if (t3 == 0) {//nop; -goto L42b178;} -//nop; -t5 = MEM_U32(sp + 64); -//nop; -if (t5 == 0) {//nop; -goto L42b154;} -//nop; -a0 = 0xfb528e4; -a1 = 0x100052a4; -//nop; -a2 = t3; -a3 = t5; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L42b148; -a1 = a1; -L42b148: -// bdead 40000101 gp = MEM_U32(sp + 40); -//nop; -goto L42b178; -//nop; -L42b154: -a0 = 0xfb528e4; -a1 = 0x100052b4; -//nop; -a2 = MEM_U32(sp + 60); -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L42b170; -a1 = a1; -L42b170: -// bdead 40000101 gp = MEM_U32(sp + 40); -//nop; -L42b178: -t6 = MEM_U32(sp + 68); -//nop; -if (t6 == 0) {//nop; -goto L42b1e8;} -//nop; -t7 = MEM_U32(sp + 72); -//nop; -if (t7 == 0) {//nop; -goto L42b1c4;} -//nop; -a0 = 0xfb528e4; -a1 = 0x100052bc; -//nop; -a2 = t6; -a3 = t7; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L42b1b8; -a1 = a1; -L42b1b8: -// bdead 40000001 gp = MEM_U32(sp + 40); -//nop; -goto L42b1e8; -//nop; -L42b1c4: -a0 = 0xfb528e4; -a1 = 0x100052cc; -//nop; -a2 = MEM_U32(sp + 68); -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L42b1e0; -a1 = a1; -L42b1e0: -// bdead 40000001 gp = MEM_U32(sp + 40); -//nop; -L42b1e8: -t8 = MEM_U32(sp + 76); -//nop; -if (t8 != 0) {//nop; -goto L42b208;} -//nop; -t0 = 0x100052d4; -//nop; -t0 = t0; -MEM_U32(sp + 76) = t0; -L42b208: -t9 = MEM_U32(sp + 92); -a0 = 0xfb528e4; -MEM_U32(sp + 20) = t9; -//nop; -t1 = MEM_U32(sp + 88); -t2 = MEM_U32(sp + 96); -t4 = MEM_U32(sp + 100); -a1 = MEM_U32(sp + 76); -a2 = MEM_U32(sp + 80); -a3 = MEM_U32(sp + 84); -a0 = a0 + 0x20; -MEM_U32(sp + 16) = t1; -MEM_U32(sp + 24) = t2; -MEM_U32(sp + 28) = t4; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L42b244; -MEM_U32(sp + 28) = t4; -L42b244: -// bdead 1 ra = MEM_U32(sp + 44); -// bdead 1 gp = MEM_U32(sp + 40); -// bdead 1 sp = sp + 0x38; -return; -// bdead 1 sp = sp + 0x38; -} - -static void f_relocate_passes(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a3 = 0; -L42b254: -//relocate_passes: -//nop; -//nop; -//nop; -sp = sp + 0xffffffb0; -t6 = 0x100052d8; -MEM_U32(sp + 88) = a2; -at = 0x1000a32c; -t7 = MEM_U32(sp + 88); -t6 = t6; -// fdead 400180ef MEM_U32(sp + 60) = ra; -// fdead 400180ef MEM_U32(sp + 56) = gp; -MEM_U32(sp + 80) = a0; -MEM_U32(sp + 84) = a1; -// fdead 400180ef MEM_U32(sp + 52) = s3; -// fdead 400180ef MEM_U32(sp + 48) = s2; -// fdead 400180ef MEM_U32(sp + 44) = s1; -if (t7 != 0) {MEM_U32(at + 0) = t6; -goto L42b2b0;} -MEM_U32(at + 0) = t6; -t8 = 0x1000a1b4; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -MEM_U32(sp + 88) = t8; -L42b2b0: -t9 = MEM_U32(sp + 80); -//nop; -if (t9 != 0) {//nop; -goto L42b2d8;} -//nop; -s1 = 0x100052dc; -t0 = MEM_U32(sp + 88); -at = 0x1000a1b8; -s1 = s1; -MEM_U32(at + 0) = t0; -goto L42b2e0; -MEM_U32(at + 0) = t0; -L42b2d8: -s1 = MEM_U32(sp + 80); -//nop; -L42b2e0: -a0 = 0x10000400; -a1 = 0x10005304; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L42b2f8; -a1 = a1; -L42b2f8: -// bdead 4004010b gp = MEM_U32(sp + 56); -if (v0 != 0) {//nop; -goto L42b338;} -//nop; -t1 = 0x100002e4; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {at = 0x100002e4; -goto L42b338;} -at = 0x100002e4; -a0 = 0x10005308; -//nop; -MEM_U32(at + 0) = zero; -a0 = a0; -f_compose_G0_libs(mem, sp, a0); -goto L42b330; -a0 = a0; -L42b330: -// bdead 40040103 gp = MEM_U32(sp + 56); -//nop; -L42b338: -t2 = MEM_U8(s1 + 0); -//nop; -if (t2 == 0) {//nop; -goto L42f198;} -//nop; -L42b348: -t3 = MEM_U32(sp + 84); -//nop; -if (t3 != 0) {//nop; -goto L42b378;} -//nop; -//nop; -a0 = 0x1000a1c0; -a1 = MEM_U8(s1 + 0); -//nop; -v0 = wrapper_strchr(mem, a0, a1); -goto L42b36c; -//nop; -L42b36c: -// bdead 4004010b gp = MEM_U32(sp + 56); -if (v0 != 0) {//nop; -goto L42f188;} -//nop; -L42b378: -t4 = MEM_U8(s1 + 0); -//nop; -t5 = t4 + 0xffffffcf; -at = t5 < 0x4a; -if (at == 0) {//nop; -goto L42f138;} -//nop; -//nop; -//nop; -//nop; -//nop; -//nop; -;static void *const Lswitch100077b4[] = { -&&L42d8ec, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f188, -&&L42f138, -&&L42da00, -&&L42e8fc, -&&L42f138, -&&L42f138, -&&L42ea90, -&&L42f138, -&&L42ef1c, -&&L42f138, -&&L42e434, -&&L42f138, -&&L42e1e8, -&&L42d768, -&&L42f138, -&&L42f138, -&&L42ec14, -&&L42f138, -&&L42ed98, -&&L42f138, -&&L42dc98, -&&L42e064, -&&L42f0ac, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42f138, -&&L42c7a0, -&&L42c858, -&&L42c650, -&&L42c2d8, -&&L42be84, -&&L42b758, -&&L42f138, -&&L42b3ac, -&&L42f138, -&&L42bff4, -&&L42bf3c, -&&L42ca60, -&&L42c390, -&&L42e2fc, -&&L42c500, -&&L42b638, -&&L42c220, -&&L42d008, -&&L42c168, -&&L42cd48, -&&L42c0ac, -&&L42c448, -&&L42c9a8, -&&L42f138, -&&L42ce98, -&&L42cf50, -}; -dest = Lswitch100077b4[t5]; -//nop; -goto *dest; -//nop; -L42b3ac: -t6 = 0x10000088; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L42b3dc;} -//nop; -//nop; -a0 = t6; -//nop; -wrapper_free(mem, a0); -goto L42b3d4; -//nop; -L42b3d4: -// bdead 40040103 gp = MEM_U32(sp + 56); -//nop; -L42b3dc: -t7 = 0x10000090; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L42b40c;} -//nop; -//nop; -a0 = t7; -//nop; -wrapper_free(mem, a0); -goto L42b404; -//nop; -L42b404: -// bdead 40040103 gp = MEM_U32(sp + 56); -//nop; -L42b40c: -t8 = MEM_U32(sp + 80); -//nop; -if (t8 != 0) {//nop; -goto L42b43c;} -//nop; -t9 = MEM_U32(sp + 88); -//nop; -if (t9 == 0) {//nop; -goto L42b62c;} -//nop; -t0 = MEM_U8(t9 + 0); -//nop; -if (t0 == 0) {//nop; -goto L42b62c;} -//nop; -L42b43c: -t1 = MEM_U32(sp + 84); -//nop; -if (t1 == 0) {//nop; -goto L42b534;} -//nop; -t2 = 0x10000280; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L42b494;} -//nop; -a1 = 0x10005318; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t1; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42b480; -a1 = a1; -L42b480: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000088; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42b494: -t3 = 0x1000037c; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L42b4dc;} -//nop; -a1 = 0x10005328; -//nop; -a0 = MEM_U32(sp + 84); -a2 = MEM_U32(sp + 88); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42b4c8; -a1 = a1; -L42b4c8: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000088; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42b4dc: -a1 = 0x10005338; -//nop; -a0 = MEM_U32(sp + 84); -a2 = MEM_U32(sp + 88); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42b4f8; -a1 = a1; -L42b4f8: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x10000090; -a1 = 0x10005348; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42b520; -a1 = a1; -L42b520: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000088; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42b534: -t4 = 0x10000280; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L42b580;} -//nop; -a0 = 0x1000a25c; -a1 = 0x10005354; -//nop; -a2 = MEM_U32(sp + 88); -a0 = MEM_U32(a0 + 0); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42b56c; -a1 = a1; -L42b56c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000088; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42b580: -t5 = 0x1000037c; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L42b5cc;} -//nop; -a0 = 0x1000a25c; -a1 = 0x10005364; -//nop; -a2 = MEM_U32(sp + 88); -a0 = MEM_U32(a0 + 0); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42b5b8; -a1 = a1; -L42b5b8: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000088; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42b5cc: -a0 = 0x1000a25c; -a1 = 0x10005374; -//nop; -a2 = MEM_U32(sp + 88); -a0 = MEM_U32(a0 + 0); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42b5ec; -a1 = a1; -L42b5ec: -// bdead 4004000b gp = MEM_U32(sp + 56); -a2 = MEM_U32(sp + 88); -a0 = 0x1000a25c; -at = 0x10000090; -a1 = 0x10005384; -//nop; -a0 = MEM_U32(a0 + 0); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42b618; -a1 = a1; -L42b618: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000088; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42b62c: -at = 0x10000088; -MEM_U32(at + 0) = zero; -goto L42f188; -MEM_U32(at + 0) = zero; -L42b638: -t6 = 0x10000094; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L42b668;} -//nop; -//nop; -a0 = t6; -//nop; -wrapper_free(mem, a0); -goto L42b660; -//nop; -L42b660: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42b668: -t7 = MEM_U32(sp + 84); -//nop; -if (t7 == 0) {//nop; -goto L42b6dc;} -//nop; -t8 = 0x100003e8; -at = 0x1; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == at) {at = 0x3; -goto L42b6a4;} -at = 0x3; -if (t8 == at) {//nop; -goto L42b6a4;} -//nop; -s2 = 0x10005390; -s2 = s2; -goto L42b6b0; -s2 = s2; -L42b6a4: -s2 = 0x10005394; -//nop; -s2 = s2; -L42b6b0: -//nop; -a0 = MEM_U32(sp + 84); -a2 = MEM_U32(sp + 88); -a1 = s2; -a3 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42b6c8; -a3 = zero; -L42b6c8: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000094; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42b6dc: -t9 = 0x100003e8; -at = 0x1; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == at) {at = 0x3; -goto L42b708;} -at = 0x3; -if (t9 == at) {//nop; -goto L42b708;} -//nop; -s2 = 0x100053a8; -s2 = s2; -goto L42b714; -s2 = s2; -L42b708: -s2 = 0x100053ac; -//nop; -s2 = s2; -L42b714: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x1000539c; -t0 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -a3 = s2; -MEM_U32(sp + 20) = zero; -a1 = a1; -MEM_U32(sp + 16) = t0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42b744; -MEM_U32(sp + 16) = t0; -L42b744: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000094; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42b758: -t2 = 0x1000009c; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L42b788;} -//nop; -//nop; -a0 = t2; -//nop; -wrapper_free(mem, a0); -goto L42b780; -//nop; -L42b780: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42b788: -t1 = 0x10000098; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L42b7b8;} -//nop; -//nop; -a0 = t1; -//nop; -wrapper_free(mem, a0); -goto L42b7b0; -//nop; -L42b7b0: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42b7b8: -t3 = 0x100000a0; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L42b7e8;} -//nop; -//nop; -a0 = t3; -//nop; -wrapper_free(mem, a0); -goto L42b7e0; -//nop; -L42b7e0: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42b7e8: -t4 = 0x100000a4; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L42b818;} -//nop; -//nop; -a0 = t4; -//nop; -wrapper_free(mem, a0); -goto L42b810; -//nop; -L42b810: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42b818: -t5 = 0x100000a8; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L42b848;} -//nop; -//nop; -a0 = t5; -//nop; -wrapper_free(mem, a0); -goto L42b840; -//nop; -L42b840: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42b848: -t6 = 0x100000ac; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L42b878;} -//nop; -//nop; -a0 = t6; -//nop; -wrapper_free(mem, a0); -goto L42b870; -//nop; -L42b870: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42b878: -t7 = 0x100000b8; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L42b8a8;} -//nop; -//nop; -a0 = t7; -//nop; -wrapper_free(mem, a0); -goto L42b8a0; -//nop; -L42b8a0: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42b8a8: -t8 = MEM_U32(sp + 84); -//nop; -if (t8 == 0) {//nop; -goto L42baac;} -//nop; -t9 = 0x1000a188; -at = 0x10000; -t9 = MEM_U32(t9 + 0); -//nop; -t0 = t9 & at; -if (t0 == 0) {//nop; -goto L42b904;} -//nop; -a1 = 0x100053b4; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t8; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42b8f0; -a1 = a1; -L42b8f0: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x1000009c; -//nop; -MEM_U32(at + 0) = v0; -L42b904: -t2 = 0x10000004; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L42b928;} -//nop; -s2 = 0x100053b8; -s2 = s2; -goto L42b934; -s2 = s2; -L42b928: -s2 = 0x100053c0; -//nop; -s2 = s2; -L42b934: -//nop; -a0 = MEM_U32(sp + 84); -a2 = MEM_U32(sp + 88); -a1 = s2; -a3 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42b94c; -a3 = zero; -L42b94c: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -t1 = 0x10000008; -at = 0x10000098; -t1 = MEM_U32(t1 + 0); -MEM_U32(at + 0) = v0; -if (t1 != 0) {//nop; -goto L42b99c;} -//nop; -t3 = 0x1000a36c; -at = 0x3; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L42b9d4;} -//nop; -t4 = 0x100001fc; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L42b9d4;} -//nop; -L42b99c: -t5 = 0x10000000; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L42b9c0;} -//nop; -s3 = 0x100053c8; -s3 = s3; -goto L42b9cc; -s3 = s3; -L42b9c0: -s3 = 0x100053d4; -//nop; -s3 = s3; -L42b9cc: -s2 = s3; -goto L42b9e0; -s2 = s3; -L42b9d4: -s2 = 0x100053dc; -//nop; -s2 = s2; -L42b9e0: -//nop; -a0 = MEM_U32(sp + 84); -a2 = MEM_U32(sp + 88); -a1 = s2; -a3 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42b9f8; -a3 = zero; -L42b9f8: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x100000a0; -a1 = 0x100053e0; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ba20; -a1 = a1; -L42ba20: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x100000a4; -a1 = 0x100053e8; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ba48; -a1 = a1; -L42ba48: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x100000a8; -a1 = 0x100053f0; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ba70; -a1 = a1; -L42ba70: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x100000ac; -a1 = 0x100053f8; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ba98; -a1 = a1; -L42ba98: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000b8; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42baac: -t6 = 0x1000a188; -at = 0x10000; -t6 = MEM_U32(t6 + 0); -//nop; -t7 = t6 & at; -if (t7 == 0) {//nop; -goto L42bb10;} -//nop; -t9 = MEM_U32(sp + 88); -a0 = 0x1000a26c; -a2 = 0x1000a32c; -MEM_U32(sp + 16) = t9; -//nop; -a1 = 0x10005400; -a3 = 0x1000540c; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42bafc; -a3 = a3; -L42bafc: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x1000009c; -//nop; -MEM_U32(at + 0) = v0; -L42bb10: -t0 = 0x10000004; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L42bb34;} -//nop; -s2 = 0x1000541c; -s2 = s2; -goto L42bb40; -s2 = s2; -L42bb34: -s2 = 0x10005424; -//nop; -s2 = s2; -L42bb40: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x10005410; -t8 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -a3 = s2; -MEM_U32(sp + 20) = zero; -a1 = a1; -MEM_U32(sp + 16) = t8; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42bb70; -MEM_U32(sp + 16) = t8; -L42bb70: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000098; -t2 = 0x1000a36c; -MEM_U32(at + 0) = v0; -t2 = MEM_U32(t2 + 0); -at = 0x1; -if (t2 != at) {//nop; -goto L42bbac;} -//nop; -t1 = 0x10000008; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L42bbdc;} -//nop; -L42bbac: -t3 = 0x1000a36c; -at = 0x3; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != at) {//nop; -goto L42bcac;} -//nop; -t4 = 0x100001fc; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L42bcac;} -//nop; -L42bbdc: -t5 = 0x10000008; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L42bc24;} -//nop; -t6 = 0x1000a36c; -at = 0x3; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L42bc5c;} -//nop; -t7 = 0x100001fc; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L42bc5c;} -//nop; -L42bc24: -t9 = 0x10000000; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L42bc48;} -//nop; -s3 = 0x1000543c; -s3 = s3; -goto L42bc54; -s3 = s3; -L42bc48: -s3 = 0x10005448; -//nop; -s3 = s3; -L42bc54: -s2 = s3; -goto L42bc68; -s2 = s3; -L42bc5c: -s2 = 0x10005450; -//nop; -s2 = s2; -L42bc68: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x1000542c; -t0 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -a3 = s2; -MEM_U32(sp + 20) = zero; -a1 = a1; -MEM_U32(sp + 16) = t0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42bc98; -MEM_U32(sp + 16) = t0; -L42bc98: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000a0; -MEM_U32(at + 0) = v0; -goto L42bd7c; -MEM_U32(at + 0) = v0; -L42bcac: -t8 = 0x10000008; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L42bcf4;} -//nop; -t2 = 0x1000a36c; -at = 0x3; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != at) {//nop; -goto L42bd2c;} -//nop; -t1 = 0x100001fc; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L42bd2c;} -//nop; -L42bcf4: -t3 = 0x10000000; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L42bd18;} -//nop; -s3 = 0x10005460; -s3 = s3; -goto L42bd24; -s3 = s3; -L42bd18: -s3 = 0x1000546c; -//nop; -s3 = s3; -L42bd24: -s2 = s3; -goto L42bd38; -s2 = s3; -L42bd2c: -s2 = 0x10005474; -//nop; -s2 = s2; -L42bd38: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x10005454; -t4 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -a3 = s2; -MEM_U32(sp + 20) = zero; -a1 = a1; -MEM_U32(sp + 16) = t4; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42bd68; -MEM_U32(sp + 16) = t4; -L42bd68: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000a0; -//nop; -MEM_U32(at + 0) = v0; -L42bd7c: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x10005478; -a3 = 0x10005484; -t5 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t5; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42bdb0; -MEM_U32(sp + 16) = t5; -L42bdb0: -// bdead 4004000b gp = MEM_U32(sp + 56); -t6 = MEM_U32(sp + 88); -a0 = 0x1000a26c; -a2 = 0x1000a32c; -at = 0x100000a4; -a1 = 0x1000548c; -a3 = 0x10005498; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -MEM_U32(sp + 16) = t6; -MEM_U32(at + 0) = v0; -a1 = a1; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42bdf0; -a3 = a3; -L42bdf0: -// bdead 4004000b gp = MEM_U32(sp + 56); -t7 = MEM_U32(sp + 88); -a0 = 0x1000a26c; -a2 = 0x1000a32c; -at = 0x100000a8; -a1 = 0x100054a0; -a3 = 0x100054ac; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -MEM_U32(sp + 16) = t7; -MEM_U32(at + 0) = v0; -a1 = a1; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42be30; -a3 = a3; -L42be30: -// bdead 4004000b gp = MEM_U32(sp + 56); -t9 = MEM_U32(sp + 88); -a0 = 0x1000a26c; -a2 = 0x1000a32c; -MEM_U32(sp + 16) = t9; -at = 0x100000ac; -//nop; -a1 = 0x100054b4; -a3 = 0x100054c0; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42be70; -a3 = a3; -L42be70: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000b8; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42be84: -t0 = 0x100000b0; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L42beb4;} -//nop; -//nop; -a0 = t0; -//nop; -wrapper_free(mem, a0); -goto L42beac; -//nop; -L42beac: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42beb4: -t8 = MEM_U32(sp + 84); -//nop; -if (t8 == 0) {//nop; -goto L42bef4;} -//nop; -a1 = 0x100054c8; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t8; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42bee0; -a1 = a1; -L42bee0: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000b0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42bef4: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x100054d4; -a3 = 0x100054e0; -t2 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42bf28; -MEM_U32(sp + 16) = t2; -L42bf28: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000b0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42bf3c: -t1 = 0x100000b4; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L42bf6c;} -//nop; -//nop; -a0 = t1; -//nop; -wrapper_free(mem, a0); -goto L42bf64; -//nop; -L42bf64: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42bf6c: -t3 = MEM_U32(sp + 84); -//nop; -if (t3 == 0) {//nop; -goto L42bfac;} -//nop; -a1 = 0x100054ec; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t3; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42bf98; -a1 = a1; -L42bf98: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000b4; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42bfac: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x100054f4; -a3 = 0x10005500; -t4 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t4; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42bfe0; -MEM_U32(sp + 16) = t4; -L42bfe0: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000b4; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42bff4: -t5 = 0x100000bc; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L42c024;} -//nop; -//nop; -a0 = t5; -//nop; -wrapper_free(mem, a0); -goto L42c01c; -//nop; -L42c01c: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42c024: -t6 = MEM_U32(sp + 84); -//nop; -if (t6 == 0) {//nop; -goto L42c064;} -//nop; -a1 = 0x10005508; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t6; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c050; -a1 = a1; -L42c050: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000bc; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c064: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x10005510; -a3 = 0x1000551c; -t7 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t7; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c098; -MEM_U32(sp + 16) = t7; -L42c098: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000bc; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c0ac: -t9 = 0x100000c4; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L42c0e0;} -//nop; -a0 = t9; -//nop; -//nop; -//nop; -wrapper_free(mem, a0); -goto L42c0d8; -//nop; -L42c0d8: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42c0e0: -t0 = MEM_U32(sp + 84); -//nop; -if (t0 == 0) {//nop; -goto L42c120;} -//nop; -a1 = 0x10005524; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t0; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c10c; -a1 = a1; -L42c10c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000c4; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c120: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x10005528; -a3 = 0x10005534; -t8 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t8; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c154; -MEM_U32(sp + 16) = t8; -L42c154: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000c4; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c168: -t2 = 0x100000c0; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L42c198;} -//nop; -//nop; -a0 = t2; -//nop; -wrapper_free(mem, a0); -goto L42c190; -//nop; -L42c190: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42c198: -t1 = MEM_U32(sp + 84); -//nop; -if (t1 == 0) {//nop; -goto L42c1d8;} -//nop; -a1 = 0x10005538; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t1; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c1c4; -a1 = a1; -L42c1c4: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000c0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c1d8: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x10005540; -a3 = 0x1000554c; -t3 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c20c; -MEM_U32(sp + 16) = t3; -L42c20c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000c0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c220: -t4 = 0x100000d0; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L42c250;} -//nop; -//nop; -a0 = t4; -//nop; -wrapper_free(mem, a0); -goto L42c248; -//nop; -L42c248: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42c250: -t5 = MEM_U32(sp + 84); -//nop; -if (t5 == 0) {//nop; -goto L42c290;} -//nop; -a1 = 0x10005554; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t5; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c27c; -a1 = a1; -L42c27c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000d0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c290: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x1000555c; -a3 = 0x10005568; -t6 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t6; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c2c4; -MEM_U32(sp + 16) = t6; -L42c2c4: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000d0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c2d8: -t7 = 0x100000d4; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L42c308;} -//nop; -//nop; -a0 = t7; -//nop; -wrapper_free(mem, a0); -goto L42c300; -//nop; -L42c300: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42c308: -t9 = MEM_U32(sp + 84); -//nop; -if (t9 == 0) {//nop; -goto L42c348;} -//nop; -a0 = t9; -//nop; -a1 = 0x10005570; -a2 = MEM_U32(sp + 88); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c334; -a1 = a1; -L42c334: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000d4; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c348: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x10005578; -a3 = 0x10005584; -t0 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c37c; -MEM_U32(sp + 16) = t0; -L42c37c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000d4; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c390: -t8 = 0x100000c8; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L42c3c0;} -//nop; -//nop; -a0 = t8; -//nop; -wrapper_free(mem, a0); -goto L42c3b8; -//nop; -L42c3b8: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42c3c0: -t2 = MEM_U32(sp + 84); -//nop; -if (t2 == 0) {//nop; -goto L42c400;} -//nop; -a1 = 0x1000558c; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t2; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c3ec; -a1 = a1; -L42c3ec: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000c8; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c400: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x10005594; -a3 = 0x100055a0; -t1 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c434; -MEM_U32(sp + 16) = t1; -L42c434: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000c8; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c448: -t3 = 0x100000cc; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L42c478;} -//nop; -//nop; -a0 = t3; -//nop; -wrapper_free(mem, a0); -goto L42c470; -//nop; -L42c470: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42c478: -t4 = MEM_U32(sp + 84); -//nop; -if (t4 == 0) {//nop; -goto L42c4b8;} -//nop; -a1 = 0x100055a8; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t4; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c4a4; -a1 = a1; -L42c4a4: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000cc; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c4b8: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x100055b0; -a3 = 0x100055bc; -t5 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t5; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c4ec; -MEM_U32(sp + 16) = t5; -L42c4ec: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000cc; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c500: -t6 = 0x100000d8; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L42c530;} -//nop; -//nop; -a0 = t6; -//nop; -wrapper_free(mem, a0); -goto L42c528; -//nop; -L42c528: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42c530: -t7 = MEM_U32(sp + 84); -//nop; -if (t7 == 0) {//nop; -goto L42c570;} -//nop; -a1 = 0x100055c4; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t7; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c55c; -a1 = a1; -L42c55c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000d8; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c570: -t9 = 0x1000a36c; -at = 0x1; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L42c608;} -//nop; -t0 = 0x10000008; -at = 0x2; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == at) {at = 0x3; -goto L42c5a8;} -at = 0x3; -if (t0 != at) {//nop; -goto L42c608;} -//nop; -L42c5a8: -t8 = 0x10000210; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L42c608;} -//nop; -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x100055cc; -a3 = 0x100055dc; -t2 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c5f4; -MEM_U32(sp + 16) = t2; -L42c5f4: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000d8; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c608: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x100055e4; -a3 = 0x100055f0; -t1 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c63c; -MEM_U32(sp + 16) = t1; -L42c63c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000d8; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c650: -t3 = 0x100000dc; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L42c680;} -//nop; -//nop; -a0 = t3; -//nop; -wrapper_free(mem, a0); -goto L42c678; -//nop; -L42c678: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42c680: -t4 = MEM_U32(sp + 84); -//nop; -if (t4 == 0) {//nop; -goto L42c6c0;} -//nop; -a1 = 0x100055f8; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t4; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c6ac; -a1 = a1; -L42c6ac: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000dc; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c6c0: -t5 = 0x1000a36c; -at = 0x1; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L42c758;} -//nop; -t6 = 0x10000008; -at = 0x2; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == at) {at = 0x3; -goto L42c6f8;} -at = 0x3; -if (t6 != at) {//nop; -goto L42c758;} -//nop; -L42c6f8: -t7 = 0x10000210; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L42c758;} -//nop; -t9 = MEM_U32(sp + 88); -a0 = 0x1000a26c; -a2 = 0x1000a32c; -MEM_U32(sp + 16) = t9; -//nop; -a1 = 0x10005600; -a3 = 0x10005610; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c744; -a3 = a3; -L42c744: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000dc; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c758: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x10005618; -a3 = 0x10005624; -t0 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c78c; -MEM_U32(sp + 16) = t0; -L42c78c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000dc; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c7a0: -t8 = 0x100000e0; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L42c7d0;} -//nop; -//nop; -a0 = t8; -//nop; -wrapper_free(mem, a0); -goto L42c7c8; -//nop; -L42c7c8: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42c7d0: -t2 = MEM_U32(sp + 84); -//nop; -if (t2 == 0) {//nop; -goto L42c810;} -//nop; -a1 = 0x1000562c; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t2; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c7fc; -a1 = a1; -L42c7fc: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000e0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c810: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x10005630; -a3 = 0x1000563c; -t1 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c844; -MEM_U32(sp + 16) = t1; -L42c844: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000e0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c858: -t3 = 0x100000e4; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L42c888;} -//nop; -//nop; -a0 = t3; -//nop; -wrapper_free(mem, a0); -goto L42c880; -//nop; -L42c880: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42c888: -t4 = MEM_U32(sp + 84); -//nop; -if (t4 == 0) {//nop; -goto L42c8c8;} -//nop; -a1 = 0x10005640; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t4; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c8b4; -a1 = a1; -L42c8b4: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000e4; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c8c8: -t5 = 0x1000a36c; -at = 0x1; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != at) {//nop; -goto L42c960;} -//nop; -t6 = 0x10000008; -at = 0x2; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == at) {at = 0x3; -goto L42c900;} -at = 0x3; -if (t6 != at) {//nop; -goto L42c960;} -//nop; -L42c900: -t7 = 0x10000210; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L42c960;} -//nop; -t9 = MEM_U32(sp + 88); -a0 = 0x1000a26c; -a2 = 0x1000a32c; -MEM_U32(sp + 16) = t9; -//nop; -a1 = 0x10005644; -a3 = 0x10005654; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c94c; -a3 = a3; -L42c94c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000e4; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c960: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x10005658; -a3 = 0x10005664; -t0 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42c994; -MEM_U32(sp + 16) = t0; -L42c994: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000e4; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42c9a8: -t8 = 0x10000104; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L42c9d8;} -//nop; -//nop; -a0 = t8; -//nop; -wrapper_free(mem, a0); -goto L42c9d0; -//nop; -L42c9d0: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42c9d8: -t2 = MEM_U32(sp + 84); -//nop; -if (t2 == 0) {//nop; -goto L42ca18;} -//nop; -a1 = 0x10005668; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t2; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ca04; -a1 = a1; -L42ca04: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000104; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42ca18: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x10005674; -a3 = 0x10005684; -t1 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ca4c; -MEM_U32(sp + 16) = t1; -L42ca4c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000104; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42ca60: -t3 = 0x100000e8; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L42ca90;} -//nop; -//nop; -a0 = t3; -//nop; -wrapper_free(mem, a0); -goto L42ca88; -//nop; -L42ca88: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42ca90: -t4 = 0x100000fc; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L42cac0;} -//nop; -//nop; -a0 = t4; -//nop; -wrapper_free(mem, a0); -goto L42cab8; -//nop; -L42cab8: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42cac0: -t5 = 0x10000100; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L42caf0;} -//nop; -//nop; -a0 = t5; -//nop; -wrapper_free(mem, a0); -goto L42cae8; -//nop; -L42cae8: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42caf0: -t6 = MEM_U32(sp + 84); -//nop; -if (t6 == 0) {//nop; -goto L42cb80;} -//nop; -a1 = 0x10005690; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t6; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42cb1c; -a1 = a1; -L42cb1c: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x100000e8; -a1 = 0x10005694; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42cb44; -a1 = a1; -L42cb44: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x100000fc; -a1 = 0x100056a0; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42cb6c; -a1 = a1; -L42cb6c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000100; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42cb80: -t7 = 0x1000a36c; -at = 0x1; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != at) {//nop; -goto L42cc18;} -//nop; -t9 = 0x10000008; -at = 0x2; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == at) {at = 0x3; -goto L42cbb8;} -at = 0x3; -if (t9 != at) {//nop; -goto L42cc18;} -//nop; -L42cbb8: -t0 = 0x10000210; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L42cc18;} -//nop; -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x100056a8; -a3 = 0x100056b8; -t8 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t8; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42cc04; -MEM_U32(sp + 16) = t8; -L42cc04: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000e8; -MEM_U32(at + 0) = v0; -goto L42ccc0; -MEM_U32(at + 0) = v0; -L42cc18: -t2 = 0x10000424; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L42cc78;} -//nop; -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x100056bc; -a3 = 0x100056c8; -t1 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42cc64; -MEM_U32(sp + 16) = t1; -L42cc64: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000e8; -MEM_U32(at + 0) = v0; -goto L42ccc0; -MEM_U32(at + 0) = v0; -L42cc78: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x100056cc; -a3 = 0x100056d8; -t3 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ccac; -MEM_U32(sp + 16) = t3; -L42ccac: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000e8; -//nop; -MEM_U32(at + 0) = v0; -L42ccc0: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x100056dc; -a3 = 0x100056ec; -t4 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t4; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ccf4; -MEM_U32(sp + 16) = t4; -L42ccf4: -// bdead 4004000b gp = MEM_U32(sp + 56); -t5 = MEM_U32(sp + 88); -a0 = 0x1000a26c; -a2 = 0x1000a32c; -at = 0x100000fc; -a1 = 0x100056f8; -a3 = 0x10005708; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -MEM_U32(sp + 16) = t5; -MEM_U32(at + 0) = v0; -a1 = a1; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42cd34; -a3 = a3; -L42cd34: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000100; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42cd48: -t6 = 0x100000f4; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L42cd78;} -//nop; -//nop; -a0 = t6; -//nop; -wrapper_free(mem, a0); -goto L42cd70; -//nop; -L42cd70: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42cd78: -t7 = 0x100000f8; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L42cda8;} -//nop; -//nop; -a0 = t7; -//nop; -wrapper_free(mem, a0); -goto L42cda0; -//nop; -L42cda0: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42cda8: -t9 = MEM_U32(sp + 84); -//nop; -if (t9 == 0) {//nop; -goto L42ce10;} -//nop; -a0 = t9; -//nop; -a1 = 0x10005710; -a2 = MEM_U32(sp + 88); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42cdd4; -a1 = a1; -L42cdd4: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x100000f4; -a1 = 0x10005718; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42cdfc; -a1 = a1; -L42cdfc: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000f8; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42ce10: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x10005720; -a3 = 0x1000572c; -t0 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ce44; -MEM_U32(sp + 16) = t0; -L42ce44: -// bdead 4004000b gp = MEM_U32(sp + 56); -t8 = MEM_U32(sp + 88); -a0 = 0x1000a26c; -a2 = 0x1000a32c; -at = 0x100000f4; -a1 = 0x10005734; -a3 = 0x10005740; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -MEM_U32(sp + 16) = t8; -MEM_U32(at + 0) = v0; -a1 = a1; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ce84; -a3 = a3; -L42ce84: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000f8; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42ce98: -t2 = 0x100000ec; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L42cec8;} -//nop; -//nop; -a0 = t2; -//nop; -wrapper_free(mem, a0); -goto L42cec0; -//nop; -L42cec0: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42cec8: -t1 = MEM_U32(sp + 84); -//nop; -if (t1 == 0) {//nop; -goto L42cf08;} -//nop; -a1 = 0x10005748; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t1; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42cef4; -a1 = a1; -L42cef4: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000ec; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42cf08: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x10005750; -a3 = 0x1000575c; -t3 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42cf3c; -MEM_U32(sp + 16) = t3; -L42cf3c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000ec; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42cf50: -t4 = 0x100000f0; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L42cf80;} -//nop; -//nop; -a0 = t4; -//nop; -wrapper_free(mem, a0); -goto L42cf78; -//nop; -L42cf78: -// bdead 40040003 gp = MEM_U32(sp + 56); -//nop; -L42cf80: -t5 = MEM_U32(sp + 84); -//nop; -if (t5 == 0) {//nop; -goto L42cfc0;} -//nop; -a1 = 0x10005764; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t5; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42cfac; -a1 = a1; -L42cfac: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000f0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42cfc0: -a0 = 0x1000a26c; -a2 = 0x1000a32c; -a1 = 0x1000576c; -a3 = 0x10005778; -t6 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t6; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42cff4; -MEM_U32(sp + 16) = t6; -L42cff4: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100000f0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42d008: -t7 = MEM_U32(sp + 84); -//nop; -if (t7 == 0) {//nop; -goto L42d180;} -//nop; -t9 = 0x10000220; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L42d0d8;} -//nop; -a1 = 0x1000a258; -//nop; -a2 = MEM_U32(sp + 88); -a1 = MEM_U32(a1 + 0); -a0 = t7; -a3 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d04c; -a3 = zero; -L42d04c: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x10000164; -a1 = 0x10005780; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d074; -a1 = a1; -L42d074: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x1000016c; -a1 = 0x1000578c; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d09c; -a1 = a1; -L42d09c: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x10000170; -a1 = 0x1000579c; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d0c4; -a1 = a1; -L42d0c4: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000168; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42d0d8: -a1 = 0x1000a254; -//nop; -a0 = MEM_U32(sp + 84); -a2 = MEM_U32(sp + 88); -a1 = MEM_U32(a1 + 0); -a3 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d0f4; -a3 = zero; -L42d0f4: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x10000164; -a1 = 0x100057a4; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d11c; -a1 = a1; -L42d11c: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x1000016c; -a1 = 0x100057b0; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d144; -a1 = a1; -L42d144: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x10000170; -a1 = 0x100057c0; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d16c; -a1 = a1; -L42d16c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000168; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42d180: -t0 = 0x10000220; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L42d510;} -//nop; -t8 = 0x1000037c; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L42d2c8;} -//nop; -a0 = 0x1000a258; -//nop; -a1 = MEM_U32(sp + 88); -a0 = MEM_U32(a0 + 0); -a2 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d1c8; -a2 = zero; -L42d1c8: -// bdead 4004000b gp = MEM_U32(sp + 56); -s2 = v0; -a1 = 0x1000a598; -//nop; -a1 = MEM_U32(a1 + 8); -// fdead 601c004f t9 = t9; -a0 = s2; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d1e8; -a0 = s2; -L42d1e8: -// bdead 4004010b gp = MEM_U32(sp + 56); -a1 = MEM_U32(sp + 88); -at = 0x10000164; -a0 = 0x100057c8; -//nop; -a2 = zero; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d20c; -a0 = a0; -L42d20c: -// bdead 4004000b gp = MEM_U32(sp + 56); -s2 = v0; -a1 = 0x1000a598; -//nop; -a1 = MEM_U32(a1 + 8); -// fdead 601c004f t9 = t9; -a0 = s2; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d22c; -a0 = s2; -L42d22c: -// bdead 4004010b gp = MEM_U32(sp + 56); -a1 = MEM_U32(sp + 88); -at = 0x10000168; -a0 = 0x100057d0; -//nop; -a2 = zero; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d250; -a0 = a0; -L42d250: -// bdead 4004000b gp = MEM_U32(sp + 56); -s2 = v0; -a1 = 0x1000a598; -//nop; -a1 = MEM_U32(a1 + 8); -// fdead 601c004f t9 = t9; -a0 = s2; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d270; -a0 = s2; -L42d270: -// bdead 4004010b gp = MEM_U32(sp + 56); -a1 = MEM_U32(sp + 88); -at = 0x1000016c; -a0 = 0x100057dc; -//nop; -a2 = zero; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d294; -a0 = a0; -L42d294: -// bdead 4004000b gp = MEM_U32(sp + 56); -s2 = v0; -a1 = 0x1000a598; -//nop; -a1 = MEM_U32(a1 + 8); -// fdead 601c004f t9 = t9; -a0 = s2; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d2b4; -a0 = s2; -L42d2b4: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000170; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42d2c8: -t2 = 0x10000324; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L42d3f8;} -//nop; -a0 = 0x1000a258; -//nop; -a1 = MEM_U32(sp + 88); -a0 = MEM_U32(a0 + 0); -a2 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d2f8; -a2 = zero; -L42d2f8: -// bdead 4004000b gp = MEM_U32(sp + 56); -s2 = v0; -a1 = 0x1000a588; -//nop; -a1 = MEM_U32(a1 + 8); -// fdead 601c004f t9 = t9; -a0 = s2; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d318; -a0 = s2; -L42d318: -// bdead 4004010b gp = MEM_U32(sp + 56); -a1 = MEM_U32(sp + 88); -at = 0x10000164; -a0 = 0x100057ec; -//nop; -a2 = zero; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d33c; -a0 = a0; -L42d33c: -// bdead 4004000b gp = MEM_U32(sp + 56); -s2 = v0; -a1 = 0x1000a588; -//nop; -a1 = MEM_U32(a1 + 8); -// fdead 601c004f t9 = t9; -a0 = s2; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d35c; -a0 = s2; -L42d35c: -// bdead 4004010b gp = MEM_U32(sp + 56); -a1 = MEM_U32(sp + 88); -at = 0x10000168; -a0 = 0x100057f4; -//nop; -a2 = zero; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d380; -a0 = a0; -L42d380: -// bdead 4004000b gp = MEM_U32(sp + 56); -s2 = v0; -a1 = 0x1000a588; -//nop; -a1 = MEM_U32(a1 + 8); -// fdead 601c004f t9 = t9; -a0 = s2; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d3a0; -a0 = s2; -L42d3a0: -// bdead 4004010b gp = MEM_U32(sp + 56); -a1 = MEM_U32(sp + 88); -at = 0x1000016c; -a0 = 0x10005800; -//nop; -a2 = zero; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d3c4; -a0 = a0; -L42d3c4: -// bdead 4004000b gp = MEM_U32(sp + 56); -s2 = v0; -a1 = 0x1000a588; -//nop; -a1 = MEM_U32(a1 + 8); -// fdead 601c004f t9 = t9; -a0 = s2; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d3e4; -a0 = s2; -L42d3e4: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000170; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42d3f8: -a0 = 0x1000a258; -//nop; -a1 = MEM_U32(sp + 88); -a0 = MEM_U32(a0 + 0); -a2 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d410; -a2 = zero; -L42d410: -// bdead 4004000b gp = MEM_U32(sp + 56); -s2 = v0; -a1 = 0x1000a578; -//nop; -a1 = MEM_U32(a1 + 8); -// fdead 601c004f t9 = t9; -a0 = s2; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d430; -a0 = s2; -L42d430: -// bdead 4004010b gp = MEM_U32(sp + 56); -a1 = MEM_U32(sp + 88); -at = 0x10000164; -a0 = 0x10005810; -//nop; -a2 = zero; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d454; -a0 = a0; -L42d454: -// bdead 4004000b gp = MEM_U32(sp + 56); -s2 = v0; -a1 = 0x1000a578; -//nop; -a1 = MEM_U32(a1 + 8); -// fdead 601c004f t9 = t9; -a0 = s2; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d474; -a0 = s2; -L42d474: -// bdead 4004010b gp = MEM_U32(sp + 56); -a1 = MEM_U32(sp + 88); -at = 0x10000168; -a0 = 0x10005818; -//nop; -a2 = zero; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d498; -a0 = a0; -L42d498: -// bdead 4004000b gp = MEM_U32(sp + 56); -s2 = v0; -a1 = 0x1000a578; -//nop; -a1 = MEM_U32(a1 + 8); -// fdead 601c004f t9 = t9; -a0 = s2; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d4b8; -a0 = s2; -L42d4b8: -// bdead 4004010b gp = MEM_U32(sp + 56); -a1 = MEM_U32(sp + 88); -at = 0x1000016c; -a0 = 0x10005824; -//nop; -a2 = zero; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d4dc; -a0 = a0; -L42d4dc: -// bdead 4004000b gp = MEM_U32(sp + 56); -s2 = v0; -a1 = 0x1000a578; -//nop; -a1 = MEM_U32(a1 + 8); -// fdead 601c004f t9 = t9; -a0 = s2; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d4fc; -a0 = s2; -L42d4fc: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000170; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42d510: -t1 = 0x1000037c; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L42d5e0;} -//nop; -a0 = 0x1000a254; -a1 = 0x1000a598; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -// bdead 40040063 t9 = t9; -//nop; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d548; -//nop; -L42d548: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -a1 = 0x1000a598; -//nop; -at = 0x10000164; -a0 = 0x10005834; -a1 = MEM_U32(a1 + 8); -// fdead 601c006f t9 = t9; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d574; -a0 = a0; -L42d574: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -a1 = 0x1000a598; -//nop; -at = 0x10000168; -a0 = 0x1000583c; -a1 = MEM_U32(a1 + 8); -// fdead 601c006f t9 = t9; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d5a0; -a0 = a0; -L42d5a0: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -a1 = 0x1000a598; -//nop; -at = 0x1000016c; -a0 = 0x10005848; -a1 = MEM_U32(a1 + 8); -// fdead 601c006f t9 = t9; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d5cc; -a0 = a0; -L42d5cc: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000170; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42d5e0: -t3 = 0x10000324; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L42d6b0;} -//nop; -a0 = 0x1000a254; -a1 = 0x1000a588; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -// bdead 40040063 t9 = t9; -//nop; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d618; -//nop; -L42d618: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -a1 = 0x1000a588; -//nop; -at = 0x10000164; -a0 = 0x10005858; -a1 = MEM_U32(a1 + 8); -// fdead 601c006f t9 = t9; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d644; -a0 = a0; -L42d644: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -a1 = 0x1000a588; -//nop; -at = 0x10000168; -a0 = 0x10005860; -a1 = MEM_U32(a1 + 8); -// fdead 601c006f t9 = t9; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d670; -a0 = a0; -L42d670: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -a1 = 0x1000a588; -//nop; -at = 0x1000016c; -a0 = 0x1000586c; -a1 = MEM_U32(a1 + 8); -// fdead 601c006f t9 = t9; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d69c; -a0 = a0; -L42d69c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000170; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42d6b0: -a0 = 0x1000a254; -a1 = 0x1000a578; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 8); -// bdead 40040063 t9 = t9; -//nop; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d6d0; -//nop; -L42d6d0: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -a1 = 0x1000a578; -//nop; -at = 0x10000164; -a0 = 0x1000587c; -a1 = MEM_U32(a1 + 8); -// fdead 601c006f t9 = t9; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d6fc; -a0 = a0; -L42d6fc: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -a1 = 0x1000a578; -//nop; -at = 0x10000168; -a0 = 0x10005884; -a1 = MEM_U32(a1 + 8); -// fdead 601c006f t9 = t9; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d728; -a0 = a0; -L42d728: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -a1 = 0x1000a578; -//nop; -at = 0x1000016c; -a0 = 0x10005890; -a1 = MEM_U32(a1 + 8); -// fdead 601c006f t9 = t9; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42d754; -a0 = a0; -L42d754: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000170; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42d768: -t4 = MEM_U32(sp + 84); -//nop; -if (t4 == 0) {//nop; -goto L42d840;} -//nop; -t5 = MEM_U32(sp + 88); -//nop; -if (t5 == 0) {//nop; -goto L42d7dc;} -//nop; -t6 = MEM_U8(t5 + 0); -//nop; -if (t6 == 0) {//nop; -goto L42d7dc;} -//nop; -t9 = 0x10000130; -a0 = 0x100058a0; -t9 = MEM_U32(t9 + 0); -a2 = 0x100058a4; -MEM_U32(sp + 16) = t9; -//nop; -a1 = t4; -a3 = t5; -MEM_U32(sp + 20) = zero; -a0 = a0; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d7c8; -a2 = a2; -L42d7c8: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000174; -MEM_U32(at + 0) = v0; -goto L42d810; -MEM_U32(at + 0) = v0; -L42d7dc: -a2 = 0x10000130; -a0 = 0x100058a8; -//nop; -a1 = MEM_U32(sp + 84); -a2 = MEM_U32(a2 + 0); -a3 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d7fc; -a0 = a0; -L42d7fc: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000174; -//nop; -MEM_U32(at + 0) = v0; -L42d810: -a1 = 0x100058ac; -//nop; -a0 = MEM_U32(sp + 84); -a2 = MEM_U32(sp + 88); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d82c; -a1 = a1; -L42d82c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000178; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42d840: -t0 = 0x10000324; -t7 = 0x100058b4; -at = 0x10000174; -t0 = MEM_U32(t0 + 0); -t7 = t7; -if (t0 == 0) {MEM_U32(at + 0) = t7; -goto L42d8a4;} -MEM_U32(at + 0) = t7; -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x100058b8; -a3 = 0x100058cc; -t8 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t8; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d890; -MEM_U32(sp + 16) = t8; -L42d890: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000178; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42d8a4: -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x100058d4; -a3 = 0x100058e0; -t2 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d8d8; -MEM_U32(sp + 16) = t2; -L42d8d8: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000178; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42d8ec: -t1 = MEM_U32(sp + 84); -//nop; -if (t1 == 0) {//nop; -goto L42d954;} -//nop; -a1 = 0x1000014c; -//nop; -a2 = MEM_U32(sp + 88); -a1 = MEM_U32(a1 + 0); -a0 = t1; -a3 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d918; -a3 = zero; -L42d918: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x100001b4; -a1 = 0x100058e8; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d940; -a1 = a1; -L42d940: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001b8; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42d954: -t6 = 0x10000324; -t3 = 0x100058f4; -at = 0x100001b4; -t6 = MEM_U32(t6 + 0); -t3 = t3; -if (t6 == 0) {MEM_U32(at + 0) = t3; -goto L42d9b8;} -MEM_U32(at + 0) = t3; -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x100058fc; -a3 = 0x10005910; -t4 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t4; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d9a4; -MEM_U32(sp + 16) = t4; -L42d9a4: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001b8; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42d9b8: -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x1000591c; -a3 = 0x10005928; -t5 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t5; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42d9ec; -MEM_U32(sp + 16) = t5; -L42d9ec: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001b8; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42da00: -t9 = MEM_U32(sp + 84); -//nop; -if (t9 == 0) {//nop; -goto L42db40;} -//nop; -t7 = MEM_U32(sp + 88); -//nop; -if (t7 == 0) {//nop; -goto L42dab0;} -//nop; -t0 = MEM_U8(t7 + 0); -//nop; -if (t0 == 0) {//nop; -goto L42dab0;} -//nop; -t8 = 0x10000144; -a1 = t9; -//nop; -a0 = 0x10005934; -a2 = 0x10005938; -t8 = MEM_U32(t8 + 0); -a3 = t7; -MEM_U32(sp + 20) = zero; -a0 = a0; -a2 = a2; -MEM_U32(sp + 16) = t8; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42da60; -MEM_U32(sp + 16) = t8; -L42da60: -// bdead 4004000b gp = MEM_U32(sp + 56); -a1 = MEM_U32(sp + 84); -t2 = 0x10000160; -at = 0x100001bc; -a0 = 0x1000593c; -a2 = 0x10005940; -//nop; -t2 = MEM_U32(t2 + 0); -a3 = MEM_U32(sp + 88); -MEM_U32(sp + 20) = zero; -MEM_U32(at + 0) = v0; -a0 = a0; -a2 = a2; -MEM_U32(sp + 16) = t2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42da9c; -MEM_U32(sp + 16) = t2; -L42da9c: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001e4; -MEM_U32(at + 0) = v0; -goto L42db10; -MEM_U32(at + 0) = v0; -L42dab0: -a2 = 0x10000144; -a0 = 0x10005944; -//nop; -a1 = MEM_U32(sp + 84); -a2 = MEM_U32(a2 + 0); -a3 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42dad0; -a0 = a0; -L42dad0: -// bdead 4004000b gp = MEM_U32(sp + 56); -a1 = MEM_U32(sp + 84); -a2 = 0x10000160; -at = 0x100001bc; -a0 = 0x10005948; -//nop; -a2 = MEM_U32(a2 + 0); -a3 = zero; -MEM_U32(at + 0) = v0; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42dafc; -a0 = a0; -L42dafc: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001e4; -//nop; -MEM_U32(at + 0) = v0; -L42db10: -a1 = 0x1000594c; -//nop; -a0 = MEM_U32(sp + 84); -a2 = MEM_U32(sp + 88); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42db2c; -a1 = a1; -L42db2c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001c0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42db40: -t1 = MEM_U32(sp + 88); -//nop; -if (t1 == 0) {//nop; -goto L42dbd0;} -//nop; -t3 = MEM_U8(t1 + 0); -//nop; -if (t3 == 0) {//nop; -goto L42dbd0;} -//nop; -a3 = 0x10000144; -a0 = 0x10005958; -a1 = 0x1000595c; -//nop; -a3 = MEM_U32(a3 + 0); -a2 = t1; -MEM_U32(sp + 16) = zero; -a0 = a0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42db88; -a1 = a1; -L42db88: -// bdead 4004000b gp = MEM_U32(sp + 56); -a2 = MEM_U32(sp + 88); -a3 = 0x10000160; -at = 0x100001bc; -a0 = 0x10005960; -a1 = 0x10005964; -//nop; -a3 = MEM_U32(a3 + 0); -MEM_U32(sp + 16) = zero; -MEM_U32(at + 0) = v0; -a0 = a0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42dbbc; -a1 = a1; -L42dbbc: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001e4; -MEM_U32(at + 0) = v0; -goto L42dbf0; -MEM_U32(at + 0) = v0; -L42dbd0: -t6 = 0x10005968; -at = 0x100001bc; -t6 = t6; -t4 = 0x10005970; -MEM_U32(at + 0) = t6; -at = 0x100001e4; -t4 = t4; -MEM_U32(at + 0) = t4; -L42dbf0: -t5 = 0x10000324; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L42dc50;} -//nop; -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005978; -a3 = 0x1000598c; -t0 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42dc3c; -MEM_U32(sp + 16) = t0; -L42dc3c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001c0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42dc50: -t9 = MEM_U32(sp + 88); -a0 = 0x1000a25c; -a2 = 0x1000a32c; -MEM_U32(sp + 16) = t9; -//nop; -a1 = 0x10005998; -a3 = 0x100059a4; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42dc84; -a3 = a3; -L42dc84: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001c0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42dc98: -t7 = MEM_U32(sp + 84); -//nop; -if (t7 == 0) {//nop; -goto L42dd98;} -//nop; -t8 = MEM_U32(sp + 88); -//nop; -if (t8 == 0) {//nop; -goto L42dd0c;} -//nop; -t2 = MEM_U8(t8 + 0); -//nop; -if (t2 == 0) {//nop; -goto L42dd0c;} -//nop; -t3 = 0x10000148; -a0 = 0x100059b0; -a2 = 0x100059b4; -//nop; -t3 = MEM_U32(t3 + 0); -a1 = t7; -a3 = t8; -MEM_U32(sp + 20) = zero; -a0 = a0; -a2 = a2; -MEM_U32(sp + 16) = t3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42dcf8; -MEM_U32(sp + 16) = t3; -L42dcf8: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001ac; -MEM_U32(at + 0) = v0; -goto L42dd40; -MEM_U32(at + 0) = v0; -L42dd0c: -a2 = 0x10000148; -a0 = 0x100059b8; -//nop; -a1 = MEM_U32(sp + 84); -a2 = MEM_U32(a2 + 0); -a3 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42dd2c; -a0 = a0; -L42dd2c: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001ac; -//nop; -MEM_U32(at + 0) = v0; -L42dd40: -a1 = 0x100059bc; -//nop; -a0 = MEM_U32(sp + 84); -a2 = MEM_U32(sp + 88); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42dd5c; -a1 = a1; -L42dd5c: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x100001a8; -a1 = 0x100059c4; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42dd84; -a1 = a1; -L42dd84: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001b0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42dd98: -t1 = MEM_U32(sp + 88); -//nop; -if (t1 == 0) {//nop; -goto L42de8c;} -//nop; -t6 = MEM_U8(t1 + 0); -//nop; -if (t6 == 0) {//nop; -goto L42de8c;} -//nop; -t4 = 0x10000324; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L42de2c;} -//nop; -t0 = 0x10000148; -a1 = 0x1000a25c; -a3 = 0x1000a32c; -t5 = 0x100059e4; -a0 = 0x100059cc; -a2 = 0x100059d0; -//nop; -t0 = MEM_U32(t0 + 0); -a1 = MEM_U32(a1 + 0); -a3 = MEM_U32(a3 + 0); -t5 = t5; -MEM_U32(sp + 16) = t5; -MEM_U32(sp + 20) = t1; -MEM_U32(sp + 28) = zero; -a0 = a0; -a2 = a2; -MEM_U32(sp + 24) = t0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42de18; -MEM_U32(sp + 24) = t0; -L42de18: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001ac; -MEM_U32(at + 0) = v0; -goto L42df3c; -MEM_U32(at + 0) = v0; -L42de2c: -t9 = 0x100059f8; -t7 = 0x10000148; -t9 = t9; -a1 = 0x1000a25c; -a3 = 0x1000a32c; -MEM_U32(sp + 16) = t9; -//nop; -a0 = 0x100059e8; -a2 = 0x100059ec; -t2 = MEM_U32(sp + 88); -t7 = MEM_U32(t7 + 0); -a1 = MEM_U32(a1 + 0); -a3 = MEM_U32(a3 + 0); -MEM_U32(sp + 28) = zero; -a0 = a0; -a2 = a2; -MEM_U32(sp + 20) = t2; -MEM_U32(sp + 24) = t7; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42de78; -MEM_U32(sp + 24) = t7; -L42de78: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001ac; -MEM_U32(at + 0) = v0; -goto L42df3c; -MEM_U32(at + 0) = v0; -L42de8c: -t8 = 0x10000324; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L42def0;} -//nop; -t3 = 0x10000148; -a1 = 0x1000a25c; -a3 = 0x1000a32c; -a0 = 0x100059fc; -a2 = 0x10005a00; -//nop; -t3 = MEM_U32(t3 + 0); -a1 = MEM_U32(a1 + 0); -a3 = MEM_U32(a3 + 0); -MEM_U32(sp + 20) = zero; -a0 = a0; -a2 = a2; -MEM_U32(sp + 16) = t3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42dedc; -MEM_U32(sp + 16) = t3; -L42dedc: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001ac; -MEM_U32(at + 0) = v0; -goto L42df3c; -MEM_U32(at + 0) = v0; -L42def0: -t6 = 0x10000148; -a1 = 0x1000a25c; -a3 = 0x1000a32c; -a0 = 0x10005a0c; -a2 = 0x10005a10; -//nop; -t6 = MEM_U32(t6 + 0); -a1 = MEM_U32(a1 + 0); -a3 = MEM_U32(a3 + 0); -MEM_U32(sp + 20) = zero; -a0 = a0; -a2 = a2; -MEM_U32(sp + 16) = t6; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42df28; -MEM_U32(sp + 16) = t6; -L42df28: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001ac; -//nop; -MEM_U32(at + 0) = v0; -L42df3c: -t4 = 0x10000324; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L42dfdc;} -//nop; -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005a1c; -a3 = 0x10005a30; -t5 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t5; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42df88; -MEM_U32(sp + 16) = t5; -L42df88: -// bdead 4004000b gp = MEM_U32(sp + 56); -t1 = MEM_U32(sp + 88); -a0 = 0x1000a25c; -a2 = 0x1000a32c; -at = 0x100001a8; -a1 = 0x10005a38; -a3 = 0x10005a4c; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -MEM_U32(sp + 16) = t1; -MEM_U32(at + 0) = v0; -a1 = a1; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42dfc8; -a3 = a3; -L42dfc8: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001b0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42dfdc: -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005a54; -a3 = 0x10005a60; -t0 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e010; -MEM_U32(sp + 16) = t0; -L42e010: -// bdead 4004000b gp = MEM_U32(sp + 56); -t9 = MEM_U32(sp + 88); -a0 = 0x1000a25c; -a2 = 0x1000a32c; -MEM_U32(sp + 16) = t9; -at = 0x100001a8; -//nop; -a1 = 0x10005a68; -a3 = 0x10005a74; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e050; -a3 = a3; -L42e050: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001b0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e064: -t2 = MEM_U32(sp + 84); -//nop; -if (t2 == 0) {//nop; -goto L42e13c;} -//nop; -t7 = MEM_U32(sp + 88); -//nop; -if (t7 == 0) {//nop; -goto L42e0d8;} -//nop; -t8 = MEM_U8(t7 + 0); -//nop; -if (t8 == 0) {//nop; -goto L42e0d8;} -//nop; -t3 = 0x1000015c; -a0 = 0x10005a7c; -a2 = 0x10005a80; -//nop; -t3 = MEM_U32(t3 + 0); -a1 = t2; -a3 = t7; -MEM_U32(sp + 20) = zero; -a0 = a0; -a2 = a2; -MEM_U32(sp + 16) = t3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e0c4; -MEM_U32(sp + 16) = t3; -L42e0c4: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001d8; -MEM_U32(at + 0) = v0; -goto L42e10c; -MEM_U32(at + 0) = v0; -L42e0d8: -a2 = 0x1000015c; -a0 = 0x10005a84; -//nop; -a1 = MEM_U32(sp + 84); -a2 = MEM_U32(a2 + 0); -a3 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e0f8; -a0 = a0; -L42e0f8: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001d8; -//nop; -MEM_U32(at + 0) = v0; -L42e10c: -a1 = 0x10005a88; -//nop; -a0 = MEM_U32(sp + 84); -a2 = MEM_U32(sp + 88); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e128; -a1 = a1; -L42e128: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001dc; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e13c: -t4 = 0x10000324; -t6 = 0x10005a98; -at = 0x100001d8; -t4 = MEM_U32(t4 + 0); -t6 = t6; -if (t4 == 0) {MEM_U32(at + 0) = t6; -goto L42e1a0;} -MEM_U32(at + 0) = t6; -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005aa4; -a3 = 0x10005ab8; -t5 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t5; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e18c; -MEM_U32(sp + 16) = t5; -L42e18c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001dc; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e1a0: -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005ac8; -a3 = 0x10005ad4; -t1 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e1d4; -MEM_U32(sp + 16) = t1; -L42e1d4: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001dc; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e1e8: -t0 = MEM_U32(sp + 84); -//nop; -if (t0 == 0) {//nop; -goto L42e250;} -//nop; -a1 = 0x10000154; -//nop; -a2 = MEM_U32(sp + 88); -a1 = MEM_U32(a1 + 0); -a0 = t0; -a3 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e214; -a3 = zero; -L42e214: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x100001cc; -a1 = 0x10005ae4; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e23c; -a1 = a1; -L42e23c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001d0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e250: -t8 = 0x10000324; -t9 = 0x10005af0; -at = 0x100001cc; -t8 = MEM_U32(t8 + 0); -t9 = t9; -if (t8 == 0) {MEM_U32(at + 0) = t9; -goto L42e2b4;} -MEM_U32(at + 0) = t9; -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005af8; -a3 = 0x10005b0c; -t2 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e2a0; -MEM_U32(sp + 16) = t2; -L42e2a0: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001d0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e2b4: -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005b18; -a3 = 0x10005b24; -t7 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t7; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e2e8; -MEM_U32(sp + 16) = t7; -L42e2e8: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001d0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e2fc: -t3 = 0x10000220; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L42f188;} -//nop; -t6 = MEM_U32(sp + 84); -//nop; -if (t6 == 0) {//nop; -goto L42e3bc;} -//nop; -t4 = MEM_U32(sp + 88); -//nop; -if (t4 == 0) {//nop; -goto L42e388;} -//nop; -t5 = MEM_U8(t4 + 0); -//nop; -if (t5 == 0) {//nop; -goto L42e388;} -//nop; -t1 = 0x10000158; -a0 = 0x10005b30; -a2 = 0x10005b34; -//nop; -t1 = MEM_U32(t1 + 0); -a1 = t6; -a3 = t4; -MEM_U32(sp + 20) = zero; -a0 = a0; -a2 = a2; -MEM_U32(sp + 16) = t1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e374; -MEM_U32(sp + 16) = t1; -L42e374: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001d4; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e388: -a2 = 0x10000158; -a0 = 0x10005b38; -//nop; -a1 = MEM_U32(sp + 84); -a2 = MEM_U32(a2 + 0); -a3 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e3a8; -a0 = a0; -L42e3a8: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001d4; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e3bc: -t0 = 0x10000324; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L42e404;} -//nop; -a1 = 0x1000a588; -//nop; -a0 = 0x10005b3c; -a1 = MEM_U32(a1 + 8); -// bdead 40040063 t9 = t9; -a0 = a0; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42e3f0; -a0 = a0; -L42e3f0: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001d4; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e404: -a1 = 0x1000a578; -//nop; -a0 = 0x10005b48; -a1 = MEM_U32(a1 + 8); -// bdead 40040063 t9 = t9; -a0 = a0; -v0 = func_4339c8(mem, sp, a0, a1); -goto L42e420; -a0 = a0; -L42e420: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001d4; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e434: -t9 = MEM_U32(sp + 84); -//nop; -if (t9 == 0) {//nop; -goto L42e5d8;} -//nop; -s2 = 0x10000414; -//nop; -s2 = MEM_U32(s2 + 0); -//nop; -if (s2 == 0) {at = 0x1; -goto L42e46c;} -at = 0x1; -if (s2 == at) {at = 0x2; -goto L42e528;} -at = 0x2; -if (s2 == at) {//nop; -goto L42e580;} -//nop; -L42e46c: -t8 = MEM_U32(sp + 88); -//nop; -if (t8 == 0) {//nop; -goto L42e4c4;} -//nop; -t2 = MEM_U8(t8 + 0); -//nop; -if (t2 == 0) {//nop; -goto L42e4c4;} -//nop; -a3 = 0x1000012c; -a1 = 0x10005b54; -//nop; -a0 = MEM_U32(sp + 84); -a3 = MEM_U32(a3 + 0); -a2 = t8; -MEM_U32(sp + 16) = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e4b0; -a1 = a1; -L42e4b0: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x1000017c; -MEM_U32(at + 0) = v0; -goto L42e4f8; -MEM_U32(at + 0) = v0; -L42e4c4: -a2 = 0x1000012c; -a0 = 0x10005b58; -//nop; -a1 = MEM_U32(sp + 84); -a2 = MEM_U32(a2 + 0); -a3 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e4e4; -a0 = a0; -L42e4e4: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x1000017c; -//nop; -MEM_U32(at + 0) = v0; -L42e4f8: -a1 = 0x10005b5c; -//nop; -a0 = MEM_U32(sp + 84); -a2 = MEM_U32(sp + 88); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e514; -a1 = a1; -L42e514: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000180; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e528: -a1 = 0x10005b64; -//nop; -a0 = MEM_U32(sp + 84); -a2 = MEM_U32(sp + 88); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e544; -a1 = a1; -L42e544: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x1000017c; -a1 = 0x10005b74; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e56c; -a1 = a1; -L42e56c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000180; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e580: -a1 = 0x10005b84; -//nop; -a0 = MEM_U32(sp + 84); -a2 = MEM_U32(sp + 88); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e59c; -a1 = a1; -L42e59c: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x1000017c; -a1 = 0x10005b94; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e5c4; -a1 = a1; -L42e5c4: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000180; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e5d8: -s2 = 0x10000414; -//nop; -s2 = MEM_U32(s2 + 0); -//nop; -if (s2 == 0) {at = 0x1; -goto L42e600;} -at = 0x1; -if (s2 == at) {at = 0x2; -goto L42e6ac;} -at = 0x2; -if (s2 == at) {//nop; -goto L42e7d4;} -//nop; -L42e600: -t3 = 0x10000324; -t7 = 0x10005ba4; -at = 0x1000017c; -t3 = MEM_U32(t3 + 0); -t7 = t7; -if (t3 == 0) {MEM_U32(at + 0) = t7; -goto L42e664;} -MEM_U32(at + 0) = t7; -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005ba8; -a3 = 0x10005bbc; -t5 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t5; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e650; -MEM_U32(sp + 16) = t5; -L42e650: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000180; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e664: -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005bc4; -a3 = 0x10005bd0; -t6 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t6; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e698; -MEM_U32(sp + 16) = t6; -L42e698: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000180; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e6ac: -t4 = 0x10000324; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L42e74c;} -//nop; -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005bd8; -a3 = 0x10005bec; -t1 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e6f8; -MEM_U32(sp + 16) = t1; -L42e6f8: -// bdead 4004000b gp = MEM_U32(sp + 56); -t0 = MEM_U32(sp + 88); -a0 = 0x1000a25c; -a2 = 0x1000a32c; -at = 0x1000017c; -a1 = 0x10005bfc; -a3 = 0x10005c10; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -MEM_U32(sp + 16) = t0; -MEM_U32(at + 0) = v0; -a1 = a1; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e738; -a3 = a3; -L42e738: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000180; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e74c: -t9 = MEM_U32(sp + 88); -a0 = 0x1000a25c; -a2 = 0x1000a32c; -MEM_U32(sp + 16) = t9; -//nop; -a1 = 0x10005c20; -a3 = 0x10005c2c; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e780; -a3 = a3; -L42e780: -// bdead 4004000b gp = MEM_U32(sp + 56); -t2 = MEM_U32(sp + 88); -a0 = 0x1000a25c; -a2 = 0x1000a32c; -at = 0x1000017c; -a1 = 0x10005c3c; -a3 = 0x10005c48; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -MEM_U32(sp + 16) = t2; -MEM_U32(at + 0) = v0; -a1 = a1; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e7c0; -a3 = a3; -L42e7c0: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000180; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e7d4: -t8 = 0x10000324; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L42e874;} -//nop; -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005c58; -a3 = 0x10005c6c; -t7 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t7; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e820; -MEM_U32(sp + 16) = t7; -L42e820: -// bdead 4004000b gp = MEM_U32(sp + 56); -t3 = MEM_U32(sp + 88); -a0 = 0x1000a25c; -a2 = 0x1000a32c; -at = 0x1000017c; -a1 = 0x10005c7c; -a3 = 0x10005c90; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -MEM_U32(sp + 16) = t3; -MEM_U32(at + 0) = v0; -a1 = a1; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e860; -a3 = a3; -L42e860: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000180; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e874: -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005ca0; -a3 = 0x10005cac; -t5 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t5; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e8a8; -MEM_U32(sp + 16) = t5; -L42e8a8: -// bdead 4004000b gp = MEM_U32(sp + 56); -t6 = MEM_U32(sp + 88); -a0 = 0x1000a25c; -a2 = 0x1000a32c; -at = 0x1000017c; -a1 = 0x10005cbc; -a3 = 0x10005cc8; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -MEM_U32(sp + 16) = t6; -MEM_U32(at + 0) = v0; -a1 = a1; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e8e8; -a3 = a3; -L42e8e8: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000180; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e8fc: -t4 = MEM_U32(sp + 84); -//nop; -if (t4 == 0) {//nop; -goto L42e9d4;} -//nop; -t1 = MEM_U32(sp + 88); -//nop; -if (t1 == 0) {//nop; -goto L42e970;} -//nop; -t0 = MEM_U8(t1 + 0); -//nop; -if (t0 == 0) {//nop; -goto L42e970;} -//nop; -t9 = 0x10000134; -a0 = 0x10005cd8; -t9 = MEM_U32(t9 + 0); -a2 = 0x10005cdc; -MEM_U32(sp + 16) = t9; -//nop; -a1 = t4; -a3 = t1; -MEM_U32(sp + 20) = zero; -a0 = a0; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e95c; -a2 = a2; -L42e95c: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000184; -MEM_U32(at + 0) = v0; -goto L42e9a4; -MEM_U32(at + 0) = v0; -L42e970: -a2 = 0x10000134; -a0 = 0x10005ce0; -//nop; -a1 = MEM_U32(sp + 84); -a2 = MEM_U32(a2 + 0); -a3 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e990; -a0 = a0; -L42e990: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000184; -//nop; -MEM_U32(at + 0) = v0; -L42e9a4: -a1 = 0x10005ce4; -//nop; -a0 = MEM_U32(sp + 84); -a2 = MEM_U32(sp + 88); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42e9c0; -a1 = a1; -L42e9c0: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000188; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42e9d4: -t2 = 0x10005cf0; -at = 0x10000198; -t7 = 0x10000324; -t2 = t2; -t8 = 0x10005cf8; -MEM_U32(at + 0) = t2; -at = 0x10000184; -t7 = MEM_U32(t7 + 0); -t8 = t8; -if (t7 == 0) {MEM_U32(at + 0) = t8; -goto L42ea48;} -MEM_U32(at + 0) = t8; -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005d00; -a3 = 0x10005d14; -t3 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ea34; -MEM_U32(sp + 16) = t3; -L42ea34: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000188; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42ea48: -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005d20; -a3 = 0x10005d2c; -t5 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t5; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ea7c; -MEM_U32(sp + 16) = t5; -L42ea7c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000188; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42ea90: -t6 = MEM_U32(sp + 84); -//nop; -if (t6 == 0) {//nop; -goto L42eb68;} -//nop; -t0 = MEM_U32(sp + 88); -//nop; -if (t0 == 0) {//nop; -goto L42eb04;} -//nop; -t4 = MEM_U8(t0 + 0); -//nop; -if (t4 == 0) {//nop; -goto L42eb04;} -//nop; -t1 = 0x10000138; -a0 = 0x10005d38; -a2 = 0x10005d3c; -//nop; -t1 = MEM_U32(t1 + 0); -a1 = t6; -a3 = t0; -MEM_U32(sp + 20) = zero; -a0 = a0; -a2 = a2; -MEM_U32(sp + 16) = t1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42eaf0; -MEM_U32(sp + 16) = t1; -L42eaf0: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x1000018c; -MEM_U32(at + 0) = v0; -goto L42eb38; -MEM_U32(at + 0) = v0; -L42eb04: -a2 = 0x10000138; -a0 = 0x10005d40; -//nop; -a1 = MEM_U32(sp + 84); -a2 = MEM_U32(a2 + 0); -a3 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42eb24; -a0 = a0; -L42eb24: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x1000018c; -//nop; -MEM_U32(at + 0) = v0; -L42eb38: -a1 = 0x10005d44; -//nop; -a0 = MEM_U32(sp + 84); -a2 = MEM_U32(sp + 88); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42eb54; -a1 = a1; -L42eb54: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000190; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42eb68: -t2 = 0x10000324; -t9 = 0x10005d50; -at = 0x1000018c; -t2 = MEM_U32(t2 + 0); -t9 = t9; -if (t2 == 0) {MEM_U32(at + 0) = t9; -goto L42ebcc;} -MEM_U32(at + 0) = t9; -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005d58; -a3 = 0x10005d6c; -t8 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t8; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ebb8; -MEM_U32(sp + 16) = t8; -L42ebb8: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000190; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42ebcc: -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005d78; -a3 = 0x10005d84; -t7 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t7; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ec00; -MEM_U32(sp + 16) = t7; -L42ec00: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000190; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42ec14: -t3 = MEM_U32(sp + 84); -//nop; -if (t3 == 0) {//nop; -goto L42ecec;} -//nop; -t5 = MEM_U32(sp + 88); -//nop; -if (t5 == 0) {//nop; -goto L42ec88;} -//nop; -t4 = MEM_U8(t5 + 0); -//nop; -if (t4 == 0) {//nop; -goto L42ec88;} -//nop; -t6 = 0x10000140; -a0 = 0x10005d90; -a2 = 0x10005d94; -//nop; -t6 = MEM_U32(t6 + 0); -a1 = t3; -a3 = t5; -MEM_U32(sp + 20) = zero; -a0 = a0; -a2 = a2; -MEM_U32(sp + 16) = t6; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ec74; -MEM_U32(sp + 16) = t6; -L42ec74: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001a0; -MEM_U32(at + 0) = v0; -goto L42ecbc; -MEM_U32(at + 0) = v0; -L42ec88: -a2 = 0x10000140; -a0 = 0x10005d98; -//nop; -a1 = MEM_U32(sp + 84); -a2 = MEM_U32(a2 + 0); -a3 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42eca8; -a0 = a0; -L42eca8: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001a0; -//nop; -MEM_U32(at + 0) = v0; -L42ecbc: -a1 = 0x10005d9c; -//nop; -a0 = MEM_U32(sp + 84); -a2 = MEM_U32(sp + 88); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ecd8; -a1 = a1; -L42ecd8: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001a4; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42ecec: -t1 = 0x10000324; -t0 = 0x10005da8; -at = 0x100001a0; -t1 = MEM_U32(t1 + 0); -t0 = t0; -if (t1 == 0) {MEM_U32(at + 0) = t0; -goto L42ed50;} -MEM_U32(at + 0) = t0; -t9 = MEM_U32(sp + 88); -a0 = 0x1000a25c; -a2 = 0x1000a32c; -MEM_U32(sp + 16) = t9; -//nop; -a1 = 0x10005db0; -a3 = 0x10005dc4; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ed3c; -a3 = a3; -L42ed3c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001a4; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42ed50: -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005dd0; -a3 = 0x10005ddc; -t2 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ed84; -MEM_U32(sp + 16) = t2; -L42ed84: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001a4; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42ed98: -t8 = MEM_U32(sp + 84); -//nop; -if (t8 == 0) {//nop; -goto L42ee70;} -//nop; -t7 = MEM_U32(sp + 88); -//nop; -if (t7 == 0) {//nop; -goto L42ee0c;} -//nop; -t4 = MEM_U8(t7 + 0); -//nop; -if (t4 == 0) {//nop; -goto L42ee0c;} -//nop; -t3 = 0x1000013c; -a0 = 0x10005de8; -a2 = 0x10005dec; -//nop; -t3 = MEM_U32(t3 + 0); -a1 = t8; -a3 = t7; -MEM_U32(sp + 20) = zero; -a0 = a0; -a2 = a2; -MEM_U32(sp + 16) = t3; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42edf8; -MEM_U32(sp + 16) = t3; -L42edf8: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000194; -MEM_U32(at + 0) = v0; -goto L42ee40; -MEM_U32(at + 0) = v0; -L42ee0c: -a2 = 0x1000013c; -a0 = 0x10005df0; -//nop; -a1 = MEM_U32(sp + 84); -a2 = MEM_U32(a2 + 0); -a3 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ee2c; -a0 = a0; -L42ee2c: -// bdead 4004000b gp = MEM_U32(sp + 56); -//nop; -at = 0x10000194; -//nop; -MEM_U32(at + 0) = v0; -L42ee40: -a1 = 0x10005df4; -//nop; -a0 = MEM_U32(sp + 84); -a2 = MEM_U32(sp + 88); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ee5c; -a1 = a1; -L42ee5c: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x1000019c; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42ee70: -t6 = 0x10000324; -t5 = 0x10005e00; -at = 0x10000194; -t6 = MEM_U32(t6 + 0); -t5 = t5; -if (t6 == 0) {MEM_U32(at + 0) = t5; -goto L42eed4;} -MEM_U32(at + 0) = t5; -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005e08; -a3 = 0x10005e1c; -t0 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42eec0; -MEM_U32(sp + 16) = t0; -L42eec0: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x1000019c; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42eed4: -a0 = 0x1000a25c; -a2 = 0x1000a32c; -a1 = 0x10005e28; -a3 = 0x10005e34; -t1 = MEM_U32(sp + 88); -//nop; -a0 = MEM_U32(a0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 20) = zero; -a1 = a1; -a3 = a3; -MEM_U32(sp + 16) = t1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ef08; -MEM_U32(sp + 16) = t1; -L42ef08: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x1000019c; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42ef1c: -t9 = MEM_U32(sp + 84); -//nop; -if (t9 == 0) {//nop; -goto L42efd4;} -//nop; -a0 = t9; -//nop; -a1 = 0x10005e40; -a2 = MEM_U32(sp + 88); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ef48; -a1 = a1; -L42ef48: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x100001f4; -a1 = 0x10005e48; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ef70; -a1 = a1; -L42ef70: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x100001f8; -a1 = 0x10005e50; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42ef98; -a1 = a1; -L42ef98: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x1000a5c4; -a1 = 0x10005e54; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42efc0; -a1 = a1; -L42efc0: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001ec; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42efd4: -a0 = 0x1000a26c; -a1 = 0x10005e58; -a2 = 0x10005e64; -//nop; -a3 = MEM_U32(sp + 88); -a0 = MEM_U32(a0 + 0); -MEM_U32(sp + 16) = zero; -a1 = a1; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42effc; -a2 = a2; -L42effc: -// bdead 4004000b gp = MEM_U32(sp + 56); -a3 = MEM_U32(sp + 88); -a0 = 0x1000a26c; -at = 0x100001f4; -a1 = 0x10005e6c; -a2 = 0x10005e78; -//nop; -a0 = MEM_U32(a0 + 0); -MEM_U32(sp + 16) = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42f030; -a2 = a2; -L42f030: -// bdead 4004000b gp = MEM_U32(sp + 56); -a3 = MEM_U32(sp + 88); -a0 = 0x1000a26c; -at = 0x100001f8; -a1 = 0x10005e80; -a2 = 0x10005e8c; -//nop; -a0 = MEM_U32(a0 + 0); -MEM_U32(sp + 16) = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42f064; -a2 = a2; -L42f064: -// bdead 4004000b gp = MEM_U32(sp + 56); -a3 = MEM_U32(sp + 88); -a0 = 0x1000a26c; -at = 0x1000a5c4; -a1 = 0x10005e90; -a2 = 0x10005e9c; -//nop; -a0 = MEM_U32(a0 + 0); -MEM_U32(sp + 16) = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -a2 = a2; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42f098; -a2 = a2; -L42f098: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001ec; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42f0ac: -t2 = MEM_U32(sp + 84); -//nop; -if (t2 == 0) {//nop; -goto L42f114;} -//nop; -a1 = 0x10005ea0; -//nop; -a2 = MEM_U32(sp + 88); -a0 = t2; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42f0d8; -a1 = a1; -L42f0d8: -// bdead 4004000b gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 84); -at = 0x1000a5c8; -a1 = 0x10005eac; -//nop; -a2 = MEM_U32(sp + 88); -a3 = zero; -MEM_U32(at + 0) = v0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42f100; -a1 = a1; -L42f100: -// bdead 4004010b gp = MEM_U32(sp + 56); -//nop; -at = 0x100001f0; -MEM_U32(at + 0) = v0; -goto L42f188; -MEM_U32(at + 0) = v0; -L42f114: -t4 = 0x10005eb8; -at = 0x1000a5c8; -t4 = t4; -t8 = 0x10005ec4; -MEM_U32(at + 0) = t4; -at = 0x100001f0; -t8 = t8; -MEM_U32(at + 0) = t8; -goto L42f188; -MEM_U32(at + 0) = t8; -L42f138: -t7 = 0x10005ecc; -MEM_U32(sp + 16) = zero; -t7 = t7; -MEM_U32(sp + 20) = t7; -t3 = MEM_U8(s1 + 0); -//nop; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L42f168; -MEM_U32(sp + 24) = t3; -L42f168: -// bdead 40040003 gp = MEM_U32(sp + 56); -a0 = 0x2; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L42f180; -//nop; -L42f180: -// bdead 40040103 gp = MEM_U32(sp + 56); -//nop; -L42f188: -t5 = MEM_U8(s1 + 1); -s1 = s1 + 0x1; -if (t5 != 0) {//nop; -goto L42b348;} -//nop; -L42f198: -// bdead 1 ra = MEM_U32(sp + 60); -// bdead 1 s1 = MEM_U32(sp + 44); -// bdead 1 s2 = MEM_U32(sp + 48); -// bdead 1 s3 = MEM_U32(sp + 52); -// bdead 1 sp = sp + 0x50; -return; -// bdead 1 sp = sp + 0x50; -} - -static void f_newrunlib(uint8_t *mem, uint32_t sp) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L42f1b0: -//newrunlib: -//nop; -//nop; -//nop; -t6 = 0x10000280; -sp = sp + 0xffffffe0; -t6 = MEM_U32(t6 + 0); -// fdead 4000800b MEM_U32(sp + 28) = ra; -if (t6 == 0) {// fdead 4000800b MEM_U32(sp + 24) = gp; -goto L42f1e8;} -// fdead 4000800b MEM_U32(sp + 24) = gp; -t7 = 0x10005ee8; -at = 0x1000042c; -t7 = t7; -MEM_U32(at + 0) = t7; -goto L42f224; -MEM_U32(at + 0) = t7; -L42f1e8: -t8 = 0x10000424; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L42f214;} -//nop; -t9 = 0x10005ef4; -at = 0x1000042c; -t9 = t9; -MEM_U32(at + 0) = t9; -goto L42f224; -MEM_U32(at + 0) = t9; -L42f214: -t0 = 0x10005f00; -at = 0x1000042c; -t0 = t0; -MEM_U32(at + 0) = t0; -L42f224: -//nop; -//nop; -//nop; -v0 = f_gethostsex(mem, sp); -goto L42f234; -//nop; -L42f234: -// bdead 4000000b gp = MEM_U32(sp + 24); -//nop; -t1 = 0x1000041c; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (v0 != t1) {//nop; -goto L42f268;} -//nop; -t2 = 0x1000042c; -at = 0x10000428; -t2 = MEM_U32(t2 + 0); -MEM_U32(at + 0) = t2; -goto L42f2a4; -MEM_U32(at + 0) = t2; -L42f268: -t3 = 0x1000041c; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L42f294;} -//nop; -t4 = 0x10005f04; -at = 0x10000428; -t4 = t4; -MEM_U32(at + 0) = t4; -goto L42f2a4; -MEM_U32(at + 0) = t4; -L42f294: -t5 = 0x10005f08; -at = 0x10000428; -t5 = t5; -MEM_U32(at + 0) = t5; -L42f2a4: -a0 = 0x10005f0c; -//nop; -a1 = zero; -a2 = zero; -a0 = a0; -f_relocate_passes(mem, sp, a0, a1, a2); -goto L42f2bc; -a0 = a0; -L42f2bc: -// bdead 1 ra = MEM_U32(sp + 28); -// bdead 1 gp = MEM_U32(sp + 24); -// bdead 1 sp = sp + 0x20; -return; -// bdead 1 sp = sp + 0x20; -} - -static void f_compose_G0_libs(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L42f2cc: -//compose_G0_libs: -//nop; -//nop; -//nop; -sp = sp + 0xffffffe0; -MEM_U32(sp + 32) = a0; -t6 = MEM_U32(sp + 32); -// fdead 4000802b MEM_U32(sp + 28) = ra; -// fdead 4000802b MEM_U32(sp + 24) = gp; -t7 = MEM_U8(t6 + 0); -//nop; -if (t7 == 0) {//nop; -goto L42f5c8;} -//nop; -L42f2fc: -t8 = MEM_U32(sp + 32); -//nop; -t9 = MEM_U8(t8 + 0); -//nop; -t0 = t9 + 0xffffffcf; -at = t0 < 0x3e; -if (at == 0) {//nop; -goto L42f5a8;} -//nop; -//nop; -//nop; -//nop; -//nop; -//nop; -;static void *const Lswitch100078dc[] = { -&&L42f398, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f3c8, -&&L42f5a8, -&&L42f368, -&&L42f458, -&&L42f5a8, -&&L42f5a8, -&&L42f488, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f428, -&&L42f5a8, -&&L42f3f8, -&&L42f338, -&&L42f5a8, -&&L42f5a8, -&&L42f4e8, -&&L42f5a8, -&&L42f4b8, -&&L42f5a8, -&&L42f518, -&&L42f548, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f5a8, -&&L42f578, -}; -dest = Lswitch100078dc[t0]; -//nop; -goto *dest; -//nop; -L42f338: -a0 = 0x10000130; -a1 = 0x10005f1c; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42f354; -a1 = a1; -L42f354: -// bdead 4000010b gp = MEM_U32(sp + 24); -//nop; -at = 0x10000130; -MEM_U32(at + 0) = v0; -goto L42f5a8; -MEM_U32(at + 0) = v0; -L42f368: -a0 = 0x10000144; -a1 = 0x10005f20; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42f384; -a1 = a1; -L42f384: -// bdead 4000010b gp = MEM_U32(sp + 24); -//nop; -at = 0x10000144; -MEM_U32(at + 0) = v0; -goto L42f5a8; -MEM_U32(at + 0) = v0; -L42f398: -a0 = 0x1000014c; -a1 = 0x10005f24; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42f3b4; -a1 = a1; -L42f3b4: -// bdead 4000010b gp = MEM_U32(sp + 24); -//nop; -at = 0x1000014c; -MEM_U32(at + 0) = v0; -goto L42f5a8; -MEM_U32(at + 0) = v0; -L42f3c8: -a0 = 0x10000150; -a1 = 0x10005f28; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42f3e4; -a1 = a1; -L42f3e4: -// bdead 4000010b gp = MEM_U32(sp + 24); -//nop; -at = 0x10000150; -MEM_U32(at + 0) = v0; -goto L42f5a8; -MEM_U32(at + 0) = v0; -L42f3f8: -a0 = 0x10000154; -a1 = 0x10005f2c; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42f414; -a1 = a1; -L42f414: -// bdead 4000010b gp = MEM_U32(sp + 24); -//nop; -at = 0x10000154; -MEM_U32(at + 0) = v0; -goto L42f5a8; -MEM_U32(at + 0) = v0; -L42f428: -a0 = 0x1000012c; -a1 = 0x10005f30; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42f444; -a1 = a1; -L42f444: -// bdead 4000010b gp = MEM_U32(sp + 24); -//nop; -at = 0x1000012c; -MEM_U32(at + 0) = v0; -goto L42f5a8; -MEM_U32(at + 0) = v0; -L42f458: -a0 = 0x10000134; -a1 = 0x10005f34; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42f474; -a1 = a1; -L42f474: -// bdead 4000010b gp = MEM_U32(sp + 24); -//nop; -at = 0x10000134; -MEM_U32(at + 0) = v0; -goto L42f5a8; -MEM_U32(at + 0) = v0; -L42f488: -a0 = 0x10000138; -a1 = 0x10005f38; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42f4a4; -a1 = a1; -L42f4a4: -// bdead 4000010b gp = MEM_U32(sp + 24); -//nop; -at = 0x10000138; -MEM_U32(at + 0) = v0; -goto L42f5a8; -MEM_U32(at + 0) = v0; -L42f4b8: -a0 = 0x1000013c; -a1 = 0x10005f3c; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42f4d4; -a1 = a1; -L42f4d4: -// bdead 4000010b gp = MEM_U32(sp + 24); -//nop; -at = 0x1000013c; -MEM_U32(at + 0) = v0; -goto L42f5a8; -MEM_U32(at + 0) = v0; -L42f4e8: -a0 = 0x10000140; -a1 = 0x10005f40; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42f504; -a1 = a1; -L42f504: -// bdead 4000010b gp = MEM_U32(sp + 24); -//nop; -at = 0x10000140; -MEM_U32(at + 0) = v0; -goto L42f5a8; -MEM_U32(at + 0) = v0; -L42f518: -a0 = 0x10000148; -a1 = 0x10005f44; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42f534; -a1 = a1; -L42f534: -// bdead 4000010b gp = MEM_U32(sp + 24); -//nop; -at = 0x10000148; -MEM_U32(at + 0) = v0; -goto L42f5a8; -MEM_U32(at + 0) = v0; -L42f548: -a0 = 0x1000015c; -a1 = 0x10005f48; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42f564; -a1 = a1; -L42f564: -// bdead 4000010b gp = MEM_U32(sp + 24); -//nop; -at = 0x1000015c; -MEM_U32(at + 0) = v0; -goto L42f5a8; -MEM_U32(at + 0) = v0; -L42f578: -a0 = 0x10000158; -a1 = 0x10005f4c; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L42f594; -a1 = a1; -L42f594: -// bdead 4000010b gp = MEM_U32(sp + 24); -//nop; -at = 0x10000158; -//nop; -MEM_U32(at + 0) = v0; -L42f5a8: -t1 = MEM_U32(sp + 32); -//nop; -t2 = t1 + 0x1; -MEM_U32(sp + 32) = t2; -t3 = MEM_U8(t2 + 0); -//nop; -if (t3 != 0) {//nop; -goto L42f2fc;} -//nop; -L42f5c8: -// bdead 1 ra = MEM_U32(sp + 28); -// bdead 1 sp = sp + 0x20; -//nop; -return; -//nop; -} - -static uint32_t f_mkstr(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -L42f8b4: -//mkstr: -//nop; -//nop; -//nop; -sp = sp + 0xffffff88; -t6 = sp + 0x78; -t7 = t6 + 0xffffffff; -t8 = t7 + 0x3; -at = 0xfffffffc; -t9 = t8 & at; -MEM_U32(sp + 72) = t7; -t0 = t9 + 0x4; -// fdead 460183ef MEM_U32(sp + 60) = ra; -// fdead 460183ef MEM_U32(sp + 56) = gp; -MEM_U32(sp + 120) = a0; -MEM_U32(sp + 124) = a1; -MEM_U32(sp + 128) = a2; -MEM_U32(sp + 132) = a3; -MEM_U32(sp + 96) = f12.w[1]; -MEM_U32(sp + 100) = f12.w[0]; -MEM_U32(sp + 88) = f14.w[1]; -MEM_U32(sp + 92) = f14.w[0]; -// fdead 460183ef MEM_U32(sp + 52) = s3; -// fdead 460183ef MEM_U32(sp + 48) = s2; -// fdead 460183ef MEM_U32(sp + 44) = s1; -// fdead 460183ef MEM_U32(sp + 40) = s0; -MEM_U32(sp + 72) = t0; -s1 = MEM_U32(t9 + 0); -s2 = 0x1; -if (s1 == 0) {//nop; -goto L42f968;} -//nop; -L42f92c: -//nop; -a0 = s1; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L42f93c; -//nop; -L42f93c: -t1 = MEM_U32(sp + 72); -at = 0xfffffffc; -t2 = t1 + 0x3; -t3 = t2 & at; -t4 = t3 + 0x4; -MEM_U32(sp + 72) = t4; -s1 = MEM_U32(t3 + 0); -// bdead 400c000b gp = MEM_U32(sp + 56); -s3 = v0; -if (s1 != 0) {s2 = s2 + s3; -goto L42f92c;} -s2 = s2 + s3; -L42f968: -//nop; -a0 = s2; -//nop; -v0 = wrapper_malloc(mem, a0); -goto L42f978; -//nop; -L42f978: -// bdead 4000000b gp = MEM_U32(sp + 56); -s0 = v0; -if (s0 != 0) {//nop; -goto L42fa3c;} -//nop; -t6 = 0x10005ff0; -a3 = 0x10005fe4; -//nop; -t5 = 0x3717; -t6 = t6; -MEM_U32(sp + 20) = t6; -MEM_U32(sp + 16) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = a3; -f_error(mem, sp, a0, a1, a2, a3); -goto L42f9b8; -a3 = a3; -L42f9b8: -// bdead 40020003 gp = MEM_U32(sp + 56); -//nop; -t7 = 0xfb52720; -t8 = 0xfb50300; -t7 = MEM_U32(t7 + 0); -t8 = MEM_U32(t8 + 0); -//nop; -at = (int)t7 < (int)t8; -if (at == 0) {//nop; -goto L42fa24;} -//nop; -t0 = 0x10006000; -t1 = 0xfb500a0; -t9 = t7 << 2; -t0 = t0; -t2 = t9 + t1; -MEM_U32(sp + 20) = t0; -MEM_U32(sp + 16) = zero; -t4 = MEM_U32(t2 + 0); -//nop; -a0 = 0x5; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t4; -f_error(mem, sp, a0, a1, a2, a3); -goto L42fa1c; -MEM_U32(sp + 24) = t4; -L42fa1c: -// bdead 40020003 gp = MEM_U32(sp + 56); -//nop; -L42fa24: -//nop; -a0 = 0x1; -//nop; -wrapper_exit(mem, a0); -goto L42fa34; -//nop; -L42fa34: -// bdead 40020003 gp = MEM_U32(sp + 56); -//nop; -L42fa3c: -t3 = sp + 0x78; -t5 = t3 + 0xffffffff; -t6 = t5 + 0x3; -at = 0xfffffffc; -MEM_U8(s0 + 0) = (uint8_t)zero; -t8 = t6 & at; -MEM_U32(sp + 72) = t5; -t0 = t8 + 0x4; -MEM_U32(sp + 72) = t0; -s1 = MEM_U32(t8 + 0); -//nop; -if (s1 == 0) {//nop; -goto L42faa8;} -//nop; -L42fa70: -//nop; -a0 = s0; -a1 = s1; -v0 = wrapper_strcat(mem, a0, a1); -goto L42fa80; -a1 = s1; -L42fa80: -t7 = MEM_U32(sp + 72); -at = 0xfffffffc; -t9 = t7 + 0x3; -t1 = t9 & at; -t2 = t1 + 0x4; -MEM_U32(sp + 72) = t2; -s1 = MEM_U32(t1 + 0); -// bdead 40060001 gp = MEM_U32(sp + 56); -if (s1 != 0) {//nop; -goto L42fa70;} -//nop; -L42faa8: -// bdead 20001 ra = MEM_U32(sp + 60); -v0 = s0; -// bdead 9 s0 = MEM_U32(sp + 40); -// bdead 9 s1 = MEM_U32(sp + 44); -// bdead 9 s2 = MEM_U32(sp + 48); -// bdead 9 s3 = MEM_U32(sp + 52); -// bdead 9 sp = sp + 0x78; -return v0; -// bdead 9 sp = sp + 0x78; -} - -static void f_mklist(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L42fac8: -//mklist: -//nop; -//nop; -//nop; -sp = sp + 0xffffffc8; -//nop; -// fdead 4000006b MEM_U32(sp + 44) = ra; -MEM_U32(sp + 56) = a0; -// fdead 4000006b MEM_U32(sp + 40) = gp; -// fdead 4000006b MEM_U32(sp + 36) = s0; -a0 = 0x50; -v0 = wrapper_malloc(mem, a0); -goto L42faf4; -a0 = 0x50; -L42faf4: -t6 = MEM_U32(sp + 56); -// bdead 4000800b gp = MEM_U32(sp + 40); -s0 = v0; -if (s0 != 0) {MEM_U32(t6 + 8) = s0; -goto L42fbbc;} -MEM_U32(t6 + 8) = s0; -t8 = 0x10006010; -a3 = 0x10006004; -//nop; -t7 = 0x373c; -t8 = t8; -MEM_U32(sp + 20) = t8; -MEM_U32(sp + 16) = t7; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = a3; -f_error(mem, sp, a0, a1, a2, a3); -goto L42fb38; -a3 = a3; -L42fb38: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -t9 = 0xfb52720; -t0 = 0xfb50300; -t9 = MEM_U32(t9 + 0); -t0 = MEM_U32(t0 + 0); -//nop; -at = (int)t9 < (int)t0; -if (at == 0) {//nop; -goto L42fba4;} -//nop; -t1 = 0x10006020; -t3 = 0xfb500a0; -t2 = t9 << 2; -t1 = t1; -MEM_U32(sp + 20) = t1; -MEM_U32(sp + 16) = zero; -t4 = t2 + t3; -t5 = MEM_U32(t4 + 0); -//nop; -a0 = 0x5; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t5; -f_error(mem, sp, a0, a1, a2, a3); -goto L42fb9c; -MEM_U32(sp + 24) = t5; -L42fb9c: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L42fba4: -//nop; -a0 = 0x1; -//nop; -wrapper_exit(mem, a0); -goto L42fbb4; -//nop; -L42fbb4: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L42fbbc: -t7 = MEM_U32(sp + 56); -t6 = 0x14; -MEM_U32(t7 + 0) = t6; -t8 = MEM_U32(sp + 56); -//nop; -MEM_U32(t8 + 4) = zero; -t0 = MEM_U32(sp + 56); -//nop; -t1 = MEM_U32(t0 + 8); -//nop; -MEM_U32(t1 + 0) = zero; -// bdead 1 ra = MEM_U32(sp + 44); -// bdead 1 s0 = MEM_U32(sp + 36); -// bdead 1 sp = sp + 0x38; -return; -// bdead 1 sp = sp + 0x38; -} - -static void f_addstr(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L42fbf8: -//addstr: -//nop; -//nop; -//nop; -sp = sp + 0xffffffc8; -MEM_U32(sp + 56) = a0; -t6 = MEM_U32(sp + 56); -// fdead 400080eb MEM_U32(sp + 44) = ra; -// fdead 400080eb MEM_U32(sp + 40) = gp; -MEM_U32(sp + 60) = a1; -// fdead 400080eb MEM_U32(sp + 36) = s0; -t8 = MEM_U32(t6 + 4); -t7 = MEM_U32(t6 + 0); -t9 = t8 + 0x1; -at = (int)t9 < (int)t7; -if (at != 0) {//nop; -goto L42fd2c;} -//nop; -//nop; -a0 = MEM_U32(t6 + 8); -a1 = t7 << 2; -a1 = a1 + 0x50; -v0 = wrapper_realloc(mem, a0, a1); -goto L42fc4c; -a1 = a1 + 0x50; -L42fc4c: -t0 = MEM_U32(sp + 56); -// bdead 4000020b gp = MEM_U32(sp + 40); -s0 = v0; -if (s0 != 0) {MEM_U32(t0 + 8) = s0; -goto L42fd14;} -MEM_U32(t0 + 8) = s0; -t2 = 0x10006030; -a3 = 0x10006024; -//nop; -t1 = 0x375e; -t2 = t2; -MEM_U32(sp + 20) = t2; -MEM_U32(sp + 16) = t1; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = a3; -f_error(mem, sp, a0, a1, a2, a3); -goto L42fc90; -a3 = a3; -L42fc90: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -t3 = 0xfb52720; -t4 = 0xfb50300; -t3 = MEM_U32(t3 + 0); -t4 = MEM_U32(t4 + 0); -//nop; -at = (int)t3 < (int)t4; -if (at == 0) {//nop; -goto L42fcfc;} -//nop; -t5 = 0x10006040; -t9 = 0xfb500a0; -t8 = t3 << 2; -t5 = t5; -t6 = t8 + t9; -MEM_U32(sp + 20) = t5; -MEM_U32(sp + 16) = zero; -t7 = MEM_U32(t6 + 0); -//nop; -a0 = 0x5; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t7; -f_error(mem, sp, a0, a1, a2, a3); -goto L42fcf4; -MEM_U32(sp + 24) = t7; -L42fcf4: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L42fcfc: -//nop; -a0 = 0x1; -//nop; -wrapper_exit(mem, a0); -goto L42fd0c; -//nop; -L42fd0c: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L42fd14: -t0 = MEM_U32(sp + 56); -//nop; -t1 = MEM_U32(t0 + 0); -//nop; -t2 = t1 + 0x14; -MEM_U32(t0 + 0) = t2; -L42fd2c: -t5 = MEM_U32(sp + 56); -t4 = MEM_U32(sp + 60); -t8 = MEM_U32(t5 + 4); -t3 = MEM_U32(t5 + 8); -t9 = t8 << 2; -t6 = t3 + t9; -MEM_U32(t6 + 0) = t4; -t7 = MEM_U32(sp + 56); -//nop; -t1 = MEM_U32(t7 + 4); -//nop; -t2 = t1 + 0x1; -MEM_U32(t7 + 4) = t2; -t0 = MEM_U32(sp + 56); -//nop; -t8 = MEM_U32(t0 + 4); -t5 = MEM_U32(t0 + 8); -t3 = t8 << 2; -t9 = t5 + t3; -MEM_U32(t9 + 0) = zero; -// bdead 1 ra = MEM_U32(sp + 44); -// bdead 1 s0 = MEM_U32(sp + 36); -// bdead 1 sp = sp + 0x38; -return; -// bdead 1 sp = sp + 0x38; -} - -static void f_addspacedstr(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L42fd8c: -//addspacedstr: -//nop; -//nop; -//nop; -sp = sp + 0xffffffc8; -MEM_U32(sp + 60) = a1; -t6 = MEM_U32(sp + 60); -// fdead 4000806b MEM_U32(sp + 44) = ra; -// fdead 4000806b MEM_U32(sp + 40) = gp; -MEM_U32(sp + 56) = a0; -// fdead 4000806b MEM_U32(sp + 36) = s0; -MEM_U32(sp + 52) = t6; -L42fdb8: -//nop; -a0 = MEM_U32(sp + 52); -a1 = 0x20; -v0 = wrapper_strchr(mem, a0, a1); -goto L42fdc8; -a1 = 0x20; -L42fdc8: -MEM_U32(sp + 52) = v0; -t7 = MEM_U32(sp + 52); -// bdead 40010003 gp = MEM_U32(sp + 40); -if (t7 == 0) {//nop; -goto L42fdf0;} -//nop; -MEM_U8(t7 + 0) = (uint8_t)zero; -t8 = MEM_U32(sp + 52); -//nop; -t9 = t8 + 0x1; -MEM_U32(sp + 52) = t9; -L42fdf0: -t0 = MEM_U32(sp + 56); -//nop; -t2 = MEM_U32(t0 + 4); -t1 = MEM_U32(t0 + 0); -t3 = t2 + 0x1; -at = (int)t3 < (int)t1; -if (at != 0) {//nop; -goto L42ff04;} -//nop; -//nop; -a0 = MEM_U32(t0 + 8); -a1 = t1 << 2; -a1 = a1 + 0x50; -v0 = wrapper_realloc(mem, a0, a1); -goto L42fe24; -a1 = a1 + 0x50; -L42fe24: -t4 = MEM_U32(sp + 56); -// bdead 4000200b gp = MEM_U32(sp + 40); -s0 = v0; -if (s0 != 0) {MEM_U32(t4 + 8) = s0; -goto L42feec;} -MEM_U32(t4 + 8) = s0; -t6 = 0x10006054; -a3 = 0x10006044; -//nop; -t5 = 0x378a; -t6 = t6; -MEM_U32(sp + 20) = t6; -MEM_U32(sp + 16) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = a3; -f_error(mem, sp, a0, a1, a2, a3); -goto L42fe68; -a3 = a3; -L42fe68: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -t7 = 0xfb52720; -t8 = 0xfb50300; -t7 = MEM_U32(t7 + 0); -t8 = MEM_U32(t8 + 0); -//nop; -at = (int)t7 < (int)t8; -if (at == 0) {//nop; -goto L42fed4;} -//nop; -t9 = 0x10006064; -t3 = 0xfb500a0; -t9 = t9; -MEM_U32(sp + 20) = t9; -t2 = t7 << 2; -MEM_U32(sp + 16) = zero; -t0 = t2 + t3; -t1 = MEM_U32(t0 + 0); -//nop; -a0 = 0x5; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t1; -f_error(mem, sp, a0, a1, a2, a3); -goto L42fecc; -MEM_U32(sp + 24) = t1; -L42fecc: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L42fed4: -//nop; -a0 = 0x1; -//nop; -wrapper_exit(mem, a0); -goto L42fee4; -//nop; -L42fee4: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L42feec: -t4 = MEM_U32(sp + 56); -//nop; -t5 = MEM_U32(t4 + 0); -//nop; -t6 = t5 + 0x14; -MEM_U32(t4 + 0) = t6; -L42ff04: -t9 = MEM_U32(sp + 56); -t8 = MEM_U32(sp + 60); -t2 = MEM_U32(t9 + 4); -t7 = MEM_U32(t9 + 8); -t3 = t2 << 2; -t0 = t7 + t3; -MEM_U32(t0 + 0) = t8; -t1 = MEM_U32(sp + 56); -//nop; -t5 = MEM_U32(t1 + 4); -//nop; -t6 = t5 + 0x1; -MEM_U32(t1 + 4) = t6; -t4 = MEM_U32(sp + 56); -//nop; -t2 = MEM_U32(t4 + 4); -t9 = MEM_U32(t4 + 8); -t7 = t2 << 2; -t3 = t9 + t7; -MEM_U32(t3 + 0) = zero; -t8 = MEM_U32(sp + 52); -//nop; -if (t8 != 0) {MEM_U32(sp + 60) = t8; -goto L42fdb8;} -MEM_U32(sp + 60) = t8; -// bdead 1 ra = MEM_U32(sp + 44); -// bdead 1 s0 = MEM_U32(sp + 36); -// bdead 1 sp = sp + 0x38; -return; -// bdead 1 sp = sp + 0x38; -} - -static uint32_t f_newstr(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L42ff74: -//newstr: -//nop; -//nop; -//nop; -sp = sp + 0xffffffd8; -//nop; -MEM_U32(sp + 40) = a0; -// fdead 4000002b MEM_U32(sp + 28) = ra; -a0 = MEM_U32(sp + 40); -// fdead 4000002b MEM_U32(sp + 24) = gp; -// fdead 4000002b MEM_U32(sp + 20) = s0; -v0 = wrapper_strlen(mem, a0); -goto L42ffa0; -// fdead 4000002b MEM_U32(sp + 20) = s0; -L42ffa0: -// bdead 40000009 gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0 + 0x1; -//nop; -v0 = wrapper_malloc(mem, a0); -goto L42ffb8; -//nop; -L42ffb8: -MEM_U32(sp + 36) = v0; -t6 = MEM_U32(sp + 36); -// bdead 40008181 gp = MEM_U32(sp + 24); -if (t6 == 0) {//nop; -goto L42ffe8;} -//nop; -//nop; -a1 = MEM_U32(sp + 40); -a0 = t6; -v0 = wrapper_strcpy(mem, a0, a1); -goto L42ffdc; -a0 = t6; -L42ffdc: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -goto L430004; -//nop; -L42ffe8: -a0 = 0x10006068; -//nop; -a1 = MEM_U32(sp + 40); -a0 = a0; -f_error(mem, sp, a0, a1, a2, a3); -goto L42fffc; -a0 = a0; -L42fffc: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L430004: -// bdead 40000001 ra = MEM_U32(sp + 28); -v0 = MEM_U32(sp + 36); -// bdead 9 s0 = MEM_U32(sp + 20); -// bdead 9 sp = sp + 0x28; -return v0; -// bdead 9 sp = sp + 0x28; -} - -static uint32_t f_save_place(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L430018: -//save_place: -//nop; -//nop; -//nop; -sp = sp + 0xffffffc8; -MEM_U32(sp + 56) = a0; -t6 = MEM_U32(sp + 56); -// fdead 4000802b MEM_U32(sp + 44) = ra; -// fdead 4000802b MEM_U32(sp + 40) = gp; -// fdead 4000802b MEM_U32(sp + 36) = s0; -t8 = MEM_U32(t6 + 4); -t7 = MEM_U32(t6 + 0); -t9 = t8 + 0x1; -at = (int)t9 < (int)t7; -if (at != 0) {//nop; -goto L430148;} -//nop; -//nop; -a0 = MEM_U32(t6 + 8); -a1 = t7 << 2; -a1 = a1 + 0x50; -v0 = wrapper_realloc(mem, a0, a1); -goto L430068; -a1 = a1 + 0x50; -L430068: -t0 = MEM_U32(sp + 56); -// bdead 4000020b gp = MEM_U32(sp + 40); -s0 = v0; -if (s0 != 0) {MEM_U32(t0 + 8) = s0; -goto L430130;} -MEM_U32(t0 + 8) = s0; -t2 = 0x100060a0; -a3 = 0x10006090; -//nop; -t1 = 0x37bf; -t2 = t2; -MEM_U32(sp + 20) = t2; -MEM_U32(sp + 16) = t1; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = a3; -f_error(mem, sp, a0, a1, a2, a3); -goto L4300ac; -a3 = a3; -L4300ac: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -t3 = 0xfb52720; -t4 = 0xfb50300; -t3 = MEM_U32(t3 + 0); -t4 = MEM_U32(t4 + 0); -//nop; -at = (int)t3 < (int)t4; -if (at == 0) {//nop; -goto L430118;} -//nop; -t5 = 0x100060b0; -t9 = 0xfb500a0; -t8 = t3 << 2; -t5 = t5; -t6 = t8 + t9; -MEM_U32(sp + 20) = t5; -MEM_U32(sp + 16) = zero; -t7 = MEM_U32(t6 + 0); -//nop; -a0 = 0x5; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t7; -f_error(mem, sp, a0, a1, a2, a3); -goto L430110; -MEM_U32(sp + 24) = t7; -L430110: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L430118: -//nop; -a0 = 0x1; -//nop; -wrapper_exit(mem, a0); -goto L430128; -//nop; -L430128: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L430130: -t0 = MEM_U32(sp + 56); -//nop; -t1 = MEM_U32(t0 + 0); -//nop; -t2 = t1 + 0x14; -MEM_U32(t0 + 0) = t2; -L430148: -t4 = MEM_U32(sp + 56); -//nop; -t5 = MEM_U32(t4 + 4); -//nop; -MEM_U32(sp + 52) = t5; -t3 = MEM_U32(t4 + 4); -//nop; -t8 = t3 + 0x1; -MEM_U32(t4 + 4) = t8; -t9 = MEM_U32(sp + 56); -//nop; -t7 = MEM_U32(t9 + 4); -t6 = MEM_U32(t9 + 8); -t1 = t7 << 2; -t2 = t6 + t1; -MEM_U32(t2 + 0) = zero; -// bdead 40000001 ra = MEM_U32(sp + 44); -// bdead 40000001 s0 = MEM_U32(sp + 36); -v0 = MEM_U32(sp + 52); -// bdead 9 sp = sp + 0x38; -return v0; -// bdead 9 sp = sp + 0x38; -} - -static void f_set_place(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a3 = 0; -L43019c: -//set_place: -//nop; -//nop; -//nop; -sp = sp + 0xffffffd8; -MEM_U32(sp + 48) = a2; -t6 = MEM_U32(sp + 48); -// fdead 400080eb MEM_U32(sp + 36) = ra; -// fdead 400080eb MEM_U32(sp + 32) = gp; -MEM_U32(sp + 40) = a0; -if ((int)t6 < 0) {MEM_U32(sp + 44) = a1; -goto L4301e4;} -MEM_U32(sp + 44) = a1; -t7 = MEM_U32(sp + 40); -//nop; -t8 = MEM_U32(t7 + 4); -//nop; -at = (int)t6 < (int)t8; -if (at != 0) {//nop; -goto L430234;} -//nop; -L4301e4: -t9 = 0x37de; -t0 = 0x100060c4; -MEM_U32(sp + 16) = t9; -//nop; -a3 = 0x100060b4; -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = zero; -a1 = zero; -a2 = zero; -a3 = a3; -f_error(mem, sp, a0, a1, a2, a3); -goto L430214; -a3 = a3; -L430214: -// bdead 40000001 gp = MEM_U32(sp + 32); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L43022c; -//nop; -L43022c: -// bdead 40000001 gp = MEM_U32(sp + 32); -//nop; -L430234: -t2 = MEM_U32(sp + 40); -t4 = MEM_U32(sp + 48); -t3 = MEM_U32(t2 + 8); -t1 = MEM_U32(sp + 44); -t5 = t4 << 2; -t7 = t3 + t5; -MEM_U32(t7 + 0) = t1; -// bdead 1 ra = MEM_U32(sp + 36); -// bdead 1 sp = sp + 0x28; -//nop; -return; -//nop; -} - -static void f_addlist(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L430260: -//addlist: -//nop; -//nop; -//nop; -sp = sp + 0xffffffc8; -MEM_U32(sp + 56) = a0; -MEM_U32(sp + 60) = a1; -t9 = MEM_U32(sp + 60); -t6 = MEM_U32(sp + 56); -// fdead 4400806b MEM_U32(sp + 44) = ra; -// fdead 4400806b MEM_U32(sp + 40) = gp; -// fdead 4400806b MEM_U32(sp + 36) = s0; -t0 = MEM_U32(t9 + 4); -t8 = MEM_U32(t6 + 4); -t7 = MEM_U32(t6 + 0); -t1 = t8 + t0; -t2 = t1 + 0x1; -at = (int)t2 < (int)t7; -if (at != 0) {//nop; -goto L4303b4;} -//nop; -t3 = MEM_U32(t9 + 0); -//nop; -a1 = t7 + t3; -t4 = a1 << 2; -a1 = t4; -a0 = MEM_U32(t6 + 8); -a1 = a1 + 0x50; -v0 = wrapper_realloc(mem, a0, a1); -goto L4302cc; -a1 = a1 + 0x50; -L4302cc: -t5 = MEM_U32(sp + 56); -// bdead 4000400b gp = MEM_U32(sp + 40); -s0 = v0; -if (s0 != 0) {MEM_U32(t5 + 8) = s0; -goto L430394;} -MEM_U32(t5 + 8) = s0; -t0 = 0x100060e4; -a3 = 0x100060d8; -//nop; -t8 = 0x37fc; -t0 = t0; -MEM_U32(sp + 20) = t0; -MEM_U32(sp + 16) = t8; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = a3; -f_error(mem, sp, a0, a1, a2, a3); -goto L430310; -a3 = a3; -L430310: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -t1 = 0xfb52720; -t2 = 0xfb50300; -t1 = MEM_U32(t1 + 0); -t2 = MEM_U32(t2 + 0); -//nop; -at = (int)t1 < (int)t2; -if (at == 0) {//nop; -goto L43037c;} -//nop; -t6 = 0x100060f4; -t7 = 0xfb500a0; -t9 = t1 << 2; -t6 = t6; -t3 = t9 + t7; -MEM_U32(sp + 20) = t6; -MEM_U32(sp + 16) = zero; -t4 = MEM_U32(t3 + 0); -//nop; -a0 = 0x5; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t4; -f_error(mem, sp, a0, a1, a2, a3); -goto L430374; -MEM_U32(sp + 24) = t4; -L430374: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L43037c: -//nop; -a0 = 0x1; -//nop; -wrapper_exit(mem, a0); -goto L43038c; -//nop; -L43038c: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L430394: -t5 = MEM_U32(sp + 56); -t0 = MEM_U32(sp + 60); -t8 = MEM_U32(t5 + 0); -t2 = MEM_U32(t0 + 0); -//nop; -t6 = t8 + t2; -t1 = t6 + 0x14; -MEM_U32(t5 + 0) = t1; -L4303b4: -t9 = MEM_U32(sp + 60); -MEM_U32(sp + 52) = zero; -t7 = MEM_U32(t9 + 4); -//nop; -if ((int)t7 <= 0) {//nop; -goto L430448;} -//nop; -L4303cc: -t3 = MEM_U32(sp + 60); -t0 = MEM_U32(sp + 52); -t4 = MEM_U32(t3 + 8); -t8 = t0 << 2; -t2 = t4 + t8; -t6 = MEM_U32(t2 + 0); -//nop; -if (t6 == 0) {//nop; -goto L430424;} -//nop; -t1 = MEM_U32(sp + 56); -//nop; -t9 = MEM_U32(t1 + 4); -t5 = MEM_U32(t1 + 8); -t7 = t9 << 2; -t3 = t5 + t7; -MEM_U32(t3 + 0) = t6; -t0 = MEM_U32(sp + 56); -//nop; -t4 = MEM_U32(t0 + 4); -//nop; -t8 = t4 + 0x1; -MEM_U32(t0 + 4) = t8; -L430424: -t2 = MEM_U32(sp + 52); -t9 = MEM_U32(sp + 60); -t1 = t2 + 0x1; -MEM_U32(sp + 52) = t1; -t5 = MEM_U32(t9 + 4); -//nop; -at = (int)t1 < (int)t5; -if (at != 0) {//nop; -goto L4303cc;} -//nop; -L430448: -t7 = MEM_U32(sp + 56); -//nop; -t3 = MEM_U32(t7 + 4); -t6 = MEM_U32(t7 + 8); -t4 = t3 << 2; -t8 = t6 + t4; -MEM_U32(t8 + 0) = zero; -// bdead 1 ra = MEM_U32(sp + 44); -// bdead 1 s0 = MEM_U32(sp + 36); -// bdead 1 sp = sp + 0x38; -return; -// bdead 1 sp = sp + 0x38; -} - -static void f_adduldlist(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a3 = 0; -L430474: -//adduldlist: -//nop; -//nop; -//nop; -sp = sp + 0xffffffc0; -MEM_U32(sp + 64) = a0; -MEM_U32(sp + 68) = a1; -MEM_U32(sp + 72) = a2; -t9 = MEM_U32(sp + 68); -t6 = MEM_U32(sp + 64); -// fdead 440080eb MEM_U32(sp + 44) = ra; -// fdead 440080eb MEM_U32(sp + 40) = gp; -// fdead 440080eb MEM_U32(sp + 36) = s0; -t2 = MEM_U32(sp + 72); -t0 = MEM_U32(t9 + 4); -t8 = MEM_U32(t6 + 4); -t3 = MEM_U32(t2 + 4); -t1 = t8 + t0; -t7 = MEM_U32(t6 + 0); -t4 = t1 + t3; -t5 = t4 + 0x1; -at = (int)t5 < (int)t7; -if (at != 0) {//nop; -goto L4305e8;} -//nop; -t8 = MEM_U32(t9 + 0); -t1 = MEM_U32(t2 + 0); -t0 = t7 + t8; -a1 = t0 + t1; -//nop; -t3 = a1 << 2; -a1 = t3; -a0 = MEM_U32(t6 + 8); -a1 = a1 + 0x50; -v0 = wrapper_realloc(mem, a0, a1); -goto L4304f8; -a1 = a1 + 0x50; -L4304f8: -t4 = MEM_U32(sp + 64); -// bdead 4000200b gp = MEM_U32(sp + 40); -s0 = v0; -if (s0 != 0) {MEM_U32(t4 + 8) = s0; -goto L4305c0;} -MEM_U32(t4 + 8) = s0; -t6 = 0x10006104; -a3 = 0x100060f8; -//nop; -t5 = 0x3823; -t6 = t6; -MEM_U32(sp + 20) = t6; -MEM_U32(sp + 16) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = a3; -f_error(mem, sp, a0, a1, a2, a3); -goto L43053c; -a3 = a3; -L43053c: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -t9 = 0xfb52720; -t7 = 0xfb50300; -t9 = MEM_U32(t9 + 0); -t7 = MEM_U32(t7 + 0); -//nop; -at = (int)t9 < (int)t7; -if (at == 0) {//nop; -goto L4305a8;} -//nop; -t8 = 0x10006114; -t0 = 0xfb500a0; -t2 = t9 << 2; -t8 = t8; -MEM_U32(sp + 20) = t8; -MEM_U32(sp + 16) = zero; -t1 = t2 + t0; -t3 = MEM_U32(t1 + 0); -//nop; -a0 = 0x5; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L4305a0; -MEM_U32(sp + 24) = t3; -L4305a0: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L4305a8: -//nop; -a0 = 0x1; -//nop; -wrapper_exit(mem, a0); -goto L4305b8; -//nop; -L4305b8: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L4305c0: -t4 = MEM_U32(sp + 68); -t6 = MEM_U32(sp + 72); -t9 = MEM_U32(sp + 64); -t5 = MEM_U32(t4 + 0); -t7 = MEM_U32(t6 + 0); -t2 = MEM_U32(t9 + 0); -t8 = t5 + t7; -t0 = t2 + t8; -t1 = t0 + 0x14; -MEM_U32(t9 + 0) = t1; -L4305e8: -t3 = MEM_U32(sp + 72); -MEM_U32(sp + 60) = zero; -t4 = MEM_U32(t3 + 4); -//nop; -if ((int)t4 <= 0) {//nop; -goto L4306a0;} -//nop; -t6 = MEM_U32(t3 + 8); -//nop; -t5 = MEM_U32(t6 + 0); -//nop; -if (t5 == 0) {//nop; -goto L4306a0;} -//nop; -L430618: -t7 = MEM_U32(sp + 72); -t8 = MEM_U32(sp + 60); -t4 = MEM_U32(sp + 64); -t2 = MEM_U32(t7 + 8); -t6 = MEM_U32(t4 + 4); -t0 = t8 << 2; -t3 = MEM_U32(t4 + 8); -t1 = t2 + t0; -t9 = MEM_U32(t1 + 0); -t5 = t6 << 2; -t7 = t3 + t5; -MEM_U32(t7 + 0) = t9; -t8 = MEM_U32(sp + 64); -//nop; -t2 = MEM_U32(t8 + 4); -//nop; -t0 = t2 + 0x1; -MEM_U32(t8 + 4) = t0; -t1 = MEM_U32(sp + 60); -t6 = MEM_U32(sp + 72); -t4 = t1 + 0x1; -MEM_U32(sp + 60) = t4; -t3 = MEM_U32(t6 + 4); -//nop; -at = (int)t4 < (int)t3; -if (at == 0) {//nop; -goto L4306a0;} -//nop; -t5 = MEM_U32(t6 + 8); -t9 = t4 << 2; -t7 = t5 + t9; -t2 = MEM_U32(t7 + 0); -//nop; -if (t2 != 0) {//nop; -goto L430618;} -//nop; -L4306a0: -t0 = MEM_U32(sp + 68); -MEM_U32(sp + 56) = zero; -t8 = MEM_U32(t0 + 4); -//nop; -if ((int)t8 <= 0) {//nop; -goto L430734;} -//nop; -L4306b8: -t1 = MEM_U32(sp + 68); -t6 = MEM_U32(sp + 56); -t3 = MEM_U32(t1 + 8); -t4 = t6 << 2; -t5 = t3 + t4; -t9 = MEM_U32(t5 + 0); -//nop; -if (t9 == 0) {//nop; -goto L430710;} -//nop; -t7 = MEM_U32(sp + 64); -//nop; -t0 = MEM_U32(t7 + 4); -t2 = MEM_U32(t7 + 8); -t8 = t0 << 2; -t1 = t2 + t8; -MEM_U32(t1 + 0) = t9; -t6 = MEM_U32(sp + 64); -//nop; -t3 = MEM_U32(t6 + 4); -//nop; -t4 = t3 + 0x1; -MEM_U32(t6 + 4) = t4; -L430710: -t5 = MEM_U32(sp + 56); -t0 = MEM_U32(sp + 68); -t7 = t5 + 0x1; -MEM_U32(sp + 56) = t7; -t2 = MEM_U32(t0 + 4); -//nop; -at = (int)t7 < (int)t2; -if (at != 0) {//nop; -goto L4306b8;} -//nop; -L430734: -t9 = MEM_U32(sp + 72); -t8 = MEM_U32(sp + 60); -t1 = MEM_U32(t9 + 4); -//nop; -at = (int)t8 < (int)t1; -if (at == 0) {//nop; -goto L4307cc;} -//nop; -L430750: -t3 = MEM_U32(sp + 72); -t6 = MEM_U32(sp + 60); -t4 = MEM_U32(t3 + 8); -t5 = t6 << 2; -t0 = t4 + t5; -t7 = MEM_U32(t0 + 0); -//nop; -if (t7 == 0) {//nop; -goto L4307a8;} -//nop; -t2 = MEM_U32(sp + 64); -//nop; -t8 = MEM_U32(t2 + 4); -t9 = MEM_U32(t2 + 8); -t1 = t8 << 2; -t3 = t9 + t1; -MEM_U32(t3 + 0) = t7; -t6 = MEM_U32(sp + 64); -//nop; -t4 = MEM_U32(t6 + 4); -//nop; -t5 = t4 + 0x1; -MEM_U32(t6 + 4) = t5; -L4307a8: -t0 = MEM_U32(sp + 60); -t8 = MEM_U32(sp + 72); -t2 = t0 + 0x1; -MEM_U32(sp + 60) = t2; -t9 = MEM_U32(t8 + 4); -//nop; -at = (int)t2 < (int)t9; -if (at != 0) {//nop; -goto L430750;} -//nop; -L4307cc: -t1 = MEM_U32(sp + 64); -//nop; -t3 = MEM_U32(t1 + 4); -t7 = MEM_U32(t1 + 8); -t4 = t3 << 2; -t5 = t7 + t4; -MEM_U32(t5 + 0) = zero; -// bdead 1 ra = MEM_U32(sp + 44); -// bdead 1 s0 = MEM_U32(sp + 36); -// bdead 1 sp = sp + 0x40; -return; -// bdead 1 sp = sp + 0x40; -} - -static uint32_t f_nodup(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L4307f8: -//nodup: -//nop; -//nop; -//nop; -sp = sp + 0xffffffd0; -MEM_U32(sp + 48) = a0; -t6 = MEM_U32(sp + 48); -// fdead 4000806b MEM_U32(sp + 36) = ra; -// fdead 4000806b MEM_U32(sp + 32) = gp; -MEM_U32(sp + 52) = a1; -// fdead 4000806b MEM_U32(sp + 28) = s1; -// fdead 4000806b MEM_U32(sp + 24) = s0; -t7 = MEM_U32(t6 + 4); -s0 = zero; -at = (int)s0 < (int)t7; -if (at == 0) {//nop; -goto L43089c;} -//nop; -L430838: -t8 = MEM_U32(sp + 48); -t0 = s0 << 2; -t9 = MEM_U32(t8 + 8); -//nop; -t1 = t9 + t0; -s1 = MEM_U32(t1 + 0); -//nop; -if (s1 == 0) {//nop; -goto L430880;} -//nop; -//nop; -a1 = MEM_U32(sp + 52); -a0 = s1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L43086c; -a0 = s1; -L43086c: -// bdead 4002000b gp = MEM_U32(sp + 32); -if (v0 != 0) {//nop; -goto L430880;} -//nop; -v0 = zero; -goto L4308a0; -v0 = zero; -L430880: -t2 = MEM_U32(sp + 48); -s0 = s0 + 0x1; -t3 = MEM_U32(t2 + 4); -//nop; -at = (int)s0 < (int)t3; -if (at != 0) {//nop; -goto L430838;} -//nop; -L43089c: -v0 = 0x1; -L4308a0: -// bdead 9 ra = MEM_U32(sp + 36); -// bdead 9 s0 = MEM_U32(sp + 24); -// bdead 9 s1 = MEM_U32(sp + 28); -// bdead 9 sp = sp + 0x30; -return v0; -// bdead 9 sp = sp + 0x30; -} - -static uint32_t f_getsuf(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L4308b4: -//getsuf: -//nop; -//nop; -//nop; -sp = sp + 0xffffffc8; -MEM_U32(sp + 56) = a0; -t6 = MEM_U32(sp + 56); -// fdead 400081eb MEM_U32(sp + 28) = ra; -// fdead 400081eb MEM_U32(sp + 24) = gp; -// fdead 400081eb MEM_U32(sp + 20) = s0; -MEM_U32(sp + 52) = zero; -MEM_U32(sp + 40) = t6; -t7 = MEM_U8(t6 + 0); -t8 = t6 + 0x1; -s0 = t7; -MEM_U32(sp + 56) = t8; -if (s0 == 0) {MEM_U8(sp + 47) = (uint8_t)t7; -goto L430948;} -MEM_U8(sp + 47) = (uint8_t)t7; -L4308f8: -t9 = MEM_U8(sp + 47); -at = 0x2f; -if (t9 != at) {//nop; -goto L430918;} -//nop; -t0 = MEM_U32(sp + 56); -MEM_U32(sp + 52) = zero; -MEM_U32(sp + 40) = t0; -goto L430928; -MEM_U32(sp + 40) = t0; -L430918: -t1 = MEM_U32(sp + 52); -//nop; -t2 = t1 + 0x1; -MEM_U32(sp + 52) = t2; -L430928: -t3 = MEM_U32(sp + 56); -//nop; -t4 = MEM_U8(t3 + 0); -t5 = t3 + 0x1; -s0 = t4; -MEM_U32(sp + 56) = t5; -if (s0 != 0) {MEM_U8(sp + 47) = (uint8_t)t4; -goto L4308f8;} -MEM_U8(sp + 47) = (uint8_t)t4; -L430948: -t7 = MEM_U32(sp + 52); -//nop; -at = (int)t7 < (int)0x3; -if (at == 0) {//nop; -goto L430964;} -//nop; -v0 = zero; -goto L430afc; -v0 = zero; -L430964: -t6 = MEM_U32(sp + 56); -at = 0x2e; -t8 = MEM_U8(t6 + -3); -//nop; -if (t8 != at) {//nop; -goto L4309a8;} -//nop; -t9 = MEM_U8(t6 + -2); -at = 0x43; -if (t9 != at) {//nop; -goto L430994;} -//nop; -v0 = 0x6; -goto L430afc; -v0 = 0x6; -L430994: -t0 = MEM_U32(sp + 56); -//nop; -v0 = MEM_U8(t0 + -2); -//nop; -goto L430afc; -//nop; -L4309a8: -t1 = MEM_U32(sp + 52); -//nop; -t2 = t1 + 0xfffffffe; -if ((int)t2 <= 0) {MEM_U32(sp + 48) = t2; -goto L4309f0;} -MEM_U32(sp + 48) = t2; -L4309bc: -t4 = MEM_U32(sp + 40); -t3 = MEM_U32(sp + 48); -at = 0x2e; -t5 = t4 + t3; -t7 = MEM_U8(t5 + 0); -//nop; -if (t7 == at) {//nop; -goto L4309f0;} -//nop; -t8 = MEM_U32(sp + 48); -//nop; -t6 = t8 + 0xffffffff; -if ((int)t6 > 0) {MEM_U32(sp + 48) = t6; -goto L4309bc;} -MEM_U32(sp + 48) = t6; -L4309f0: -t9 = MEM_U32(sp + 48); -//nop; -if (t9 != 0) {//nop; -goto L430a08;} -//nop; -v0 = zero; -goto L430afc; -v0 = zero; -L430a08: -t0 = MEM_U32(sp + 48); -t1 = MEM_U32(sp + 40); -t3 = 0x1000000c; -t2 = t0 + t1; -t4 = t2 + 0x1; -MEM_U32(sp + 40) = t4; -MEM_U32(sp + 48) = zero; -t5 = MEM_U32(t3 + 0); -//nop; -if (t5 == 0) {//nop; -goto L430aa8;} -//nop; -L430a34: -t7 = MEM_U32(sp + 48); -t6 = 0x1000000c; -t8 = t7 << 3; -t9 = t8 + t6; -a1 = MEM_U32(t9 + 0); -//nop; -a0 = MEM_U32(sp + 40); -//nop; -v0 = wrapper_strcmp(mem, a0, a1); -goto L430a58; -//nop; -L430a58: -// bdead 4000000b gp = MEM_U32(sp + 24); -if (v0 != 0) {//nop; -goto L430a80;} -//nop; -t0 = MEM_U32(sp + 48); -t2 = 0x1000000c; -t1 = t0 << 3; -t4 = t1 + t2; -v0 = MEM_U8(t4 + 7); -//nop; -goto L430afc; -//nop; -L430a80: -t3 = MEM_U32(sp + 48); -t8 = 0x1000000c; -t5 = t3 + 0x1; -t7 = t5 << 3; -MEM_U32(sp + 48) = t5; -t6 = t7 + t8; -t9 = MEM_U32(t6 + 0); -//nop; -if (t9 != 0) {//nop; -goto L430a34;} -//nop; -L430aa8: -a1 = 0x10006118; -//nop; -a0 = MEM_U32(sp + 40); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L430abc; -a1 = a1; -L430abc: -// bdead 4000000b gp = MEM_U32(sp + 24); -if (v0 != 0) {//nop; -goto L430ad0;} -//nop; -v0 = 0x66; -goto L430afc; -v0 = 0x66; -L430ad0: -a1 = 0x1000611c; -//nop; -a0 = MEM_U32(sp + 40); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L430ae4; -a1 = a1; -L430ae4: -// bdead b gp = MEM_U32(sp + 24); -if (v0 != 0) {//nop; -goto L430af8;} -//nop; -v0 = 0x46; -goto L430afc; -v0 = 0x46; -L430af8: -v0 = zero; -L430afc: -// bdead 9 ra = MEM_U32(sp + 28); -// bdead 9 s0 = MEM_U32(sp + 20); -// bdead 9 sp = sp + 0x38; -return v0; -// bdead 9 sp = sp + 0x38; -} - -static uint32_t f_mksuf(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L430b0c: -//mksuf: -//nop; -//nop; -//nop; -sp = sp + 0xffffffa8; -MEM_U32(sp + 92) = a1; -t6 = MEM_U8(sp + 95); -// fdead 4000806b MEM_U32(sp + 44) = ra; -at = (int)t6 < (int)0x8; -// fdead 4000806f MEM_U32(sp + 40) = gp; -MEM_U32(sp + 88) = a0; -// fdead 4000806f MEM_U32(sp + 36) = s0; -if (at == 0) {MEM_U32(sp + 60) = zero; -goto L430c34;} -MEM_U32(sp + 60) = zero; -t7 = 0x1000000c; -MEM_U32(sp + 84) = zero; -t8 = MEM_U32(t7 + 0); -//nop; -if (t8 == 0) {//nop; -goto L430bb0;} -//nop; -L430b58: -t9 = MEM_U32(sp + 84); -t1 = 0x1000000c; -t0 = t9 << 3; -t2 = t0 + t1; -t3 = MEM_U32(t2 + 4); -t4 = MEM_U8(sp + 95); -//nop; -if (t3 != t4) {//nop; -goto L430b88;} -//nop; -t5 = MEM_U32(t2 + 0); -MEM_U32(sp + 60) = t5; -goto L430bb0; -MEM_U32(sp + 60) = t5; -L430b88: -t6 = MEM_U32(sp + 84); -t9 = 0x1000000c; -t7 = t6 + 0x1; -t8 = t7 << 3; -MEM_U32(sp + 84) = t7; -t0 = t8 + t9; -t1 = MEM_U32(t0 + 0); -//nop; -if (t1 != 0) {//nop; -goto L430b58;} -//nop; -L430bb0: -t3 = MEM_U32(sp + 60); -//nop; -if (t3 != 0) {//nop; -goto L430c18;} -//nop; -t2 = 0x1000612c; -a3 = 0x10006120; -t5 = MEM_U8(sp + 95); -//nop; -t4 = 0x38b2; -t2 = t2; -MEM_U32(sp + 20) = t2; -MEM_U32(sp + 16) = t4; -a0 = zero; -a1 = zero; -a2 = zero; -a3 = a3; -MEM_U32(sp + 24) = t5; -f_error(mem, sp, a0, a1, a2, a3); -goto L430bf8; -MEM_U32(sp + 24) = t5; -L430bf8: -// bdead 40000003 gp = MEM_U32(sp + 40); -a0 = 0x4; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L430c10; -//nop; -L430c10: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L430c18: -//nop; -a0 = MEM_U32(sp + 60); -//nop; -v0 = wrapper_strlen(mem, a0); -goto L430c28; -//nop; -L430c28: -// bdead 4000000b gp = MEM_U32(sp + 40); -MEM_U32(sp + 76) = v0; -goto L430c38; -MEM_U32(sp + 76) = v0; -L430c34: -MEM_U32(sp + 76) = zero; -L430c38: -//nop; -a0 = MEM_U32(sp + 88); -a1 = MEM_U32(sp + 76); -MEM_U32(sp + 84) = zero; -v0 = f_savestr(mem, sp, a0, a1); -goto L430c4c; -MEM_U32(sp + 84) = zero; -L430c4c: -MEM_U32(sp + 72) = v0; -t6 = MEM_U32(sp + 72); -// bdead 40008003 gp = MEM_U32(sp + 40); -MEM_U32(sp + 68) = t6; -MEM_U32(sp + 64) = t6; -t7 = MEM_U8(t6 + 0); -t8 = t6 + 0x1; -s0 = t7; -MEM_U32(sp + 68) = t8; -if (s0 == 0) {MEM_U8(sp + 59) = (uint8_t)t7; -goto L430cc8;} -MEM_U8(sp + 59) = (uint8_t)t7; -L430c78: -t9 = MEM_U8(sp + 59); -at = 0x2f; -if (t9 != at) {//nop; -goto L430c98;} -//nop; -t0 = MEM_U32(sp + 68); -MEM_U32(sp + 84) = zero; -MEM_U32(sp + 64) = t0; -goto L430ca8; -MEM_U32(sp + 64) = t0; -L430c98: -t1 = MEM_U32(sp + 84); -//nop; -t3 = t1 + 0x1; -MEM_U32(sp + 84) = t3; -L430ca8: -t4 = MEM_U32(sp + 68); -//nop; -t2 = MEM_U8(t4 + 0); -t5 = t4 + 0x1; -s0 = t2; -MEM_U32(sp + 68) = t5; -if (s0 != 0) {MEM_U8(sp + 59) = (uint8_t)t2; -goto L430c78;} -MEM_U8(sp + 59) = (uint8_t)t2; -L430cc8: -t7 = MEM_U32(sp + 84); -//nop; -at = (int)t7 < (int)0x3; -if (at != 0) {//nop; -goto L430d40;} -//nop; -t6 = MEM_U32(sp + 68); -at = 0x2e; -t8 = MEM_U8(t6 + -3); -//nop; -if (t8 != at) {//nop; -goto L430d40;} -//nop; -t9 = MEM_U8(sp + 95); -//nop; -at = (int)t9 < (int)0x8; -if (at == 0) {//nop; -goto L430d24;} -//nop; -//nop; -a1 = MEM_U32(sp + 60); -a0 = t6 + 0xfffffffe; -v0 = wrapper_strcpy(mem, a0, a1); -goto L430d18; -a0 = t6 + 0xfffffffe; -L430d18: -// bdead 40000001 gp = MEM_U32(sp + 40); -//nop; -goto L430e4c; -//nop; -L430d24: -t0 = MEM_U8(sp + 95); -t1 = MEM_U32(sp + 68); -//nop; -MEM_U8(t1 + -2) = (uint8_t)t0; -t3 = MEM_U32(sp + 68); -MEM_U8(t3 + -1) = (uint8_t)zero; -goto L430e4c; -MEM_U8(t3 + -1) = (uint8_t)zero; -L430d40: -t2 = MEM_U32(sp + 84); -//nop; -t4 = t2 + 0xfffffffe; -if ((int)t4 <= 0) {MEM_U32(sp + 80) = t4; -goto L430d88;} -MEM_U32(sp + 80) = t4; -L430d54: -t5 = MEM_U32(sp + 64); -t7 = MEM_U32(sp + 80); -at = 0x2e; -t8 = t5 + t7; -t9 = MEM_U8(t8 + 0); -//nop; -if (t9 == at) {//nop; -goto L430d88;} -//nop; -t6 = MEM_U32(sp + 80); -//nop; -t0 = t6 + 0xffffffff; -if ((int)t0 > 0) {MEM_U32(sp + 80) = t0; -goto L430d54;} -MEM_U32(sp + 80) = t0; -L430d88: -t1 = MEM_U32(sp + 80); -//nop; -if (t1 != 0) {//nop; -goto L430df0;} -//nop; -t2 = 0x1000615c; -a3 = 0x10006150; -t4 = MEM_U32(sp + 88); -//nop; -t3 = 0x38d9; -t2 = t2; -MEM_U32(sp + 20) = t2; -MEM_U32(sp + 16) = t3; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = a3; -MEM_U32(sp + 24) = t4; -f_error(mem, sp, a0, a1, a2, a3); -goto L430dd0; -MEM_U32(sp + 24) = t4; -L430dd0: -// bdead 40000003 gp = MEM_U32(sp + 40); -a0 = 0x4; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L430de8; -//nop; -L430de8: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L430df0: -t5 = MEM_U32(sp + 80); -t7 = MEM_U32(sp + 64); -t6 = MEM_U8(sp + 95); -t8 = t5 + t7; -t9 = t8 + 0x1; -at = (int)t6 < (int)0x8; -if (at == 0) {MEM_U32(sp + 64) = t9; -goto L430e30;} -MEM_U32(sp + 64) = t9; -a0 = t9; -//nop; -a1 = MEM_U32(sp + 60); -//nop; -v0 = wrapper_strcpy(mem, a0, a1); -goto L430e24; -//nop; -L430e24: -// bdead 40000001 gp = MEM_U32(sp + 40); -//nop; -goto L430e4c; -//nop; -L430e30: -t0 = MEM_U8(sp + 95); -t1 = MEM_U32(sp + 64); -//nop; -MEM_U8(t1 + 0) = (uint8_t)t0; -t3 = MEM_U32(sp + 64); -//nop; -MEM_U8(t3 + 1) = (uint8_t)zero; -L430e4c: -t2 = MEM_U32(sp + 72); -//nop; -MEM_U32(sp + 68) = t2; -t4 = MEM_U8(t2 + 0); -//nop; -if (t4 == 0) {//nop; -goto L430ea8;} -//nop; -L430e68: -t5 = MEM_U32(sp + 72); -//nop; -s0 = MEM_U8(t5 + 0); -t8 = t5 + 0x1; -t7 = s0 ^ 0x2f; -t7 = t7 < 0x1; -s0 = t7; -if (s0 == 0) {MEM_U32(sp + 72) = t8; -goto L430e90;} -MEM_U32(sp + 72) = t8; -MEM_U32(sp + 68) = t8; -L430e90: -t6 = MEM_U32(sp + 72); -//nop; -t9 = MEM_U8(t6 + 0); -//nop; -if (t9 != 0) {//nop; -goto L430e68;} -//nop; -L430ea8: -// bdead 40000001 ra = MEM_U32(sp + 44); -v0 = MEM_U32(sp + 68); -// bdead 9 s0 = MEM_U32(sp + 36); -// bdead 9 sp = sp + 0x58; -return v0; -// bdead 9 sp = sp + 0x58; -} - -static uint32_t f_savestr(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L430ebc: -//savestr: -//nop; -//nop; -//nop; -sp = sp + 0xffffffc8; -//nop; -MEM_U32(sp + 56) = a0; -// fdead 4000006b MEM_U32(sp + 44) = ra; -a0 = MEM_U32(sp + 56); -// fdead 4000006b MEM_U32(sp + 40) = gp; -MEM_U32(sp + 60) = a1; -// fdead 4000006b MEM_U32(sp + 36) = s0; -v0 = wrapper_strlen(mem, a0); -goto L430eec; -// fdead 4000006b MEM_U32(sp + 36) = s0; -L430eec: -// bdead 4000000b gp = MEM_U32(sp + 40); -t6 = MEM_U32(sp + 60); -//nop; -s0 = v0; -a0 = s0 + t6; -a0 = a0 + 0x1; -v0 = wrapper_malloc(mem, a0); -goto L430f08; -a0 = a0 + 0x1; -L430f08: -MEM_U32(sp + 52) = v0; -t7 = MEM_U32(sp + 52); -// bdead 40010003 gp = MEM_U32(sp + 40); -if (t7 != 0) {//nop; -goto L430fd0;} -//nop; -t9 = 0x10006188; -a3 = 0x1000617c; -t9 = t9; -MEM_U32(sp + 20) = t9; -//nop; -t8 = 0x38fe; -MEM_U32(sp + 16) = t8; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = a3; -f_error(mem, sp, a0, a1, a2, a3); -goto L430f4c; -a3 = a3; -L430f4c: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -t0 = 0xfb52720; -t1 = 0xfb50300; -t0 = MEM_U32(t0 + 0); -t1 = MEM_U32(t1 + 0); -//nop; -at = (int)t0 < (int)t1; -if (at == 0) {//nop; -goto L430fb8;} -//nop; -t2 = 0x10006198; -t4 = 0xfb500a0; -t3 = t0 << 2; -t2 = t2; -MEM_U32(sp + 20) = t2; -MEM_U32(sp + 16) = zero; -t5 = t3 + t4; -t6 = MEM_U32(t5 + 0); -//nop; -a0 = 0x5; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t6; -f_error(mem, sp, a0, a1, a2, a3); -goto L430fb0; -MEM_U32(sp + 24) = t6; -L430fb0: -// bdead 40000001 gp = MEM_U32(sp + 40); -//nop; -L430fb8: -//nop; -a0 = 0x1; -//nop; -wrapper_exit(mem, a0); -goto L430fc8; -//nop; -L430fc8: -// bdead 40000001 gp = MEM_U32(sp + 40); -//nop; -L430fd0: -//nop; -a0 = MEM_U32(sp + 52); -a1 = MEM_U32(sp + 56); -//nop; -v0 = wrapper_strcpy(mem, a0, a1); -goto L430fe4; -//nop; -L430fe4: -// bdead 40000001 ra = MEM_U32(sp + 44); -// bdead 40000001 gp = MEM_U32(sp + 40); -v0 = MEM_U32(sp + 52); -// bdead 9 s0 = MEM_U32(sp + 36); -// bdead 9 sp = sp + 0x38; -return v0; -// bdead 9 sp = sp + 0x38; -} - -static void f_mktempstr(uint8_t *mem, uint32_t sp) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L430ffc: -//mktempstr: -//nop; -//nop; -//nop; -a0 = 0x1000a2fc; -a1 = 0x1000619c; -//nop; -sp = sp + 0xffffffd8; -// fdead 4000006b MEM_U32(sp + 28) = ra; -a0 = MEM_U32(a0 + 0); -// fdead 4000006b MEM_U32(sp + 24) = gp; -// fdead 4000006b MEM_U32(sp + 20) = s0; -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L431034; -a1 = a1; -L431034: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43104c; -//nop; -L43104c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t6 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t6 + 0) = v0; -//nop; -a1 = 0x100061a8; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L431074; -a1 = a1; -L431074: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43108c; -//nop; -L43108c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t7 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t7 + 4) = v0; -//nop; -a1 = 0x100061b4; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4310b4; -a1 = a1; -L4310b4: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L4310cc; -//nop; -L4310cc: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t8 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t8 + 8) = v0; -//nop; -a1 = 0x100061c0; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4310f4; -a1 = a1; -L4310f4: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43110c; -//nop; -L43110c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t9 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t9 + 12) = v0; -//nop; -a1 = 0x100061cc; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L431134; -a1 = a1; -L431134: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43114c; -//nop; -L43114c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t0 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t0 + 16) = v0; -//nop; -a1 = 0x100061d8; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L431174; -a1 = a1; -L431174: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43118c; -//nop; -L43118c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t1 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t1 + 20) = v0; -//nop; -a1 = 0x100061e4; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4311b4; -a1 = a1; -L4311b4: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L4311cc; -//nop; -L4311cc: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t2 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t2 + 24) = v0; -//nop; -a1 = 0x100061f0; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4311f4; -a1 = a1; -L4311f4: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43120c; -//nop; -L43120c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t3 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t3 + 28) = v0; -//nop; -a1 = 0x100061fc; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L431234; -a1 = a1; -L431234: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43124c; -//nop; -L43124c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t4 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t4 + 32) = v0; -//nop; -a1 = 0x10006208; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L431274; -a1 = a1; -L431274: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43128c; -//nop; -L43128c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t5 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t5 + 36) = v0; -//nop; -a1 = 0x10006214; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4312b4; -a1 = a1; -L4312b4: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L4312cc; -//nop; -L4312cc: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t6 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t6 + 40) = v0; -//nop; -a1 = 0x10006220; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4312f4; -a1 = a1; -L4312f4: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43130c; -//nop; -L43130c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t7 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t7 + 44) = v0; -//nop; -a1 = 0x1000622c; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L431334; -a1 = a1; -L431334: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43134c; -//nop; -L43134c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t8 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t8 + 48) = v0; -//nop; -a1 = 0x10006238; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L431374; -a1 = a1; -L431374: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43138c; -//nop; -L43138c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t9 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t9 + 52) = v0; -//nop; -a1 = 0x10006244; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4313b4; -a1 = a1; -L4313b4: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L4313cc; -//nop; -L4313cc: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t0 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t0 + 56) = v0; -//nop; -a1 = 0x10006250; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4313f4; -a1 = a1; -L4313f4: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43140c; -//nop; -L43140c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t1 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t1 + 60) = v0; -//nop; -a1 = 0x1000625c; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L431434; -a1 = a1; -L431434: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43144c; -//nop; -L43144c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t2 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t2 + 64) = v0; -//nop; -a1 = 0x10006268; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L431474; -a1 = a1; -L431474: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43148c; -//nop; -L43148c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t3 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t3 + 68) = v0; -//nop; -a1 = 0x10006274; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4314b4; -a1 = a1; -L4314b4: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L4314cc; -//nop; -L4314cc: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t4 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t4 + 72) = v0; -//nop; -a1 = 0x10006280; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4314f4; -a1 = a1; -L4314f4: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43150c; -//nop; -L43150c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t5 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t5 + 80) = v0; -//nop; -a1 = 0x1000628c; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L431534; -a1 = a1; -L431534: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43154c; -//nop; -L43154c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t6 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t6 + 76) = v0; -//nop; -a1 = 0x10006298; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L431574; -a1 = a1; -L431574: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43158c; -//nop; -L43158c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t7 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t7 + 84) = v0; -//nop; -a1 = 0x100062a4; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4315b4; -a1 = a1; -L4315b4: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L4315cc; -//nop; -L4315cc: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t8 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t8 + 88) = v0; -//nop; -a1 = 0x100062b0; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4315f4; -a1 = a1; -L4315f4: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43160c; -//nop; -L43160c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t9 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t9 + 92) = v0; -//nop; -a1 = 0x100062bc; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L431634; -a1 = a1; -L431634: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43164c; -//nop; -L43164c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t0 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t0 + 96) = v0; -//nop; -a1 = 0x100062cc; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L431674; -a1 = a1; -L431674: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43168c; -//nop; -L43168c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t1 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t1 + 100) = v0; -//nop; -a1 = 0x100062d8; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4316b4; -a1 = a1; -L4316b4: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L4316cc; -//nop; -L4316cc: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t2 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t2 + 104) = v0; -//nop; -a1 = 0x100062e4; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4316f4; -a1 = a1; -L4316f4: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43170c; -//nop; -L43170c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t3 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t3 + 108) = v0; -//nop; -a1 = 0x100062f0; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L431734; -a1 = a1; -L431734: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43174c; -//nop; -L43174c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t4 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t4 + 112) = v0; -//nop; -a1 = 0x100062fc; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L431774; -a1 = a1; -L431774: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43178c; -//nop; -L43178c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t5 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t5 + 116) = v0; -//nop; -a1 = 0x10006308; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4317b4; -a1 = a1; -L4317b4: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L4317cc; -//nop; -L4317cc: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t6 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t6 + 120) = v0; -//nop; -a1 = 0x10006314; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4317f4; -a1 = a1; -L4317f4: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43180c; -//nop; -L43180c: -// bdead 4000010b gp = MEM_U32(sp + 24); -a2 = zero; -t7 = 0x1000a380; -a0 = 0x1000a2fc; -MEM_U32(t7 + 124) = v0; -//nop; -a1 = 0x10006320; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L431834; -a1 = a1; -L431834: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L43184c; -//nop; -L43184c: -// bdead 4000000b gp = MEM_U32(sp + 24); -at = 0x1; -t8 = 0x1000a380; -t9 = 0x1000a36c; -MEM_U32(t8 + 132) = v0; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L431910;} -//nop; -t0 = 0x10000008; -at = 0x2; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == at) {at = 0x3; -goto L431890;} -at = 0x3; -if (t0 != at) {//nop; -goto L431910;} -//nop; -L431890: -t1 = 0x10000114; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L431910;} -//nop; -a0 = 0x10000100; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = 0x10; -v0 = wrapper_access(mem, a0, a1); -goto L4318bc; -a1 = 0x10; -L4318bc: -// bdead 4000010b gp = MEM_U32(sp + 24); -if (v0 != 0) {//nop; -goto L431910;} -//nop; -a0 = 0x1000a2fc; -a1 = 0x10006330; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4318e4; -a1 = a1; -L4318e4: -// bdead 40000009 gp = MEM_U32(sp + 24); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_mktemp(mem, a0); -goto L4318fc; -//nop; -L4318fc: -// bdead 9 gp = MEM_U32(sp + 24); -//nop; -t2 = 0x1000a380; -MEM_U32(t2 + 128) = v0; -goto L43191c; -MEM_U32(t2 + 128) = v0; -L431910: -t3 = 0x1000a380; -//nop; -MEM_U32(t3 + 128) = zero; -L43191c: -// bdead 1 ra = MEM_U32(sp + 28); -// bdead 1 s0 = MEM_U32(sp + 20); -// bdead 1 sp = sp + 0x28; -return; -// bdead 1 sp = sp + 0x28; -} - -static uint32_t f_run(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -L43192c: -//run: -//nop; -//nop; -//nop; -sp = sp + 0xffffff58; -t6 = 0x10000234; -// fdead 400081eb MEM_U32(sp + 44) = ra; -t6 = MEM_U32(t6 + 0); -// fdead 400081eb MEM_U32(sp + 40) = gp; -MEM_U32(sp + 168) = a0; -MEM_U32(sp + 172) = a1; -MEM_U32(sp + 176) = a2; -MEM_U32(sp + 180) = a3; -if (t6 == 0) {// fdead 400081eb MEM_U32(sp + 36) = s0; -goto L431a80;} -// fdead 400081eb MEM_U32(sp + 36) = s0; -a0 = 0xfb528e4; -a1 = 0x10006340; -//nop; -a2 = MEM_U32(sp + 168); -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L431980; -a1 = a1; -L431980: -t7 = MEM_U32(sp + 172); -// bdead 40010183 gp = MEM_U32(sp + 40); -t8 = t7 + 0x4; -MEM_U32(sp + 164) = t8; -t9 = MEM_U32(t7 + 4); -//nop; -if (t9 == 0) {//nop; -goto L4319e0;} -//nop; -L4319a0: -t0 = MEM_U32(sp + 164); -a0 = 0xfb528e4; -a1 = 0x10006344; -//nop; -a2 = MEM_U32(t0 + 0); -t1 = t0 + 0x4; -MEM_U32(sp + 164) = t1; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L4319c8; -a1 = a1; -L4319c8: -t2 = MEM_U32(sp + 164); -// bdead 40000983 gp = MEM_U32(sp + 40); -t3 = MEM_U32(t2 + 0); -//nop; -if (t3 != 0) {//nop; -goto L4319a0;} -//nop; -L4319e0: -t4 = MEM_U32(sp + 176); -//nop; -if (t4 == 0) {//nop; -goto L431a14;} -//nop; -a0 = 0xfb528e4; -a1 = 0x10006348; -//nop; -a2 = t4; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L431a0c; -a1 = a1; -L431a0c: -// bdead 40000183 gp = MEM_U32(sp + 40); -//nop; -L431a14: -t5 = MEM_U32(sp + 180); -//nop; -if (t5 == 0) {//nop; -goto L431a48;} -//nop; -a0 = 0xfb528e4; -a1 = 0x10006350; -//nop; -a2 = t5; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L431a40; -a1 = a1; -L431a40: -// bdead 40000183 gp = MEM_U32(sp + 40); -//nop; -L431a48: -a0 = 0xfb528e4; -a1 = 0x10006358; -//nop; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L431a60; -a1 = a1; -L431a60: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -//nop; -//nop; -//nop; -f_settimes(mem, sp); -goto L431a78; -//nop; -L431a78: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L431a80: -t6 = 0x10000238; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L431aa0;} -//nop; -v0 = zero; -goto L432650; -v0 = zero; -L431aa0: -t8 = 0x10000380; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L431b0c;} -//nop; -a0 = 0x1000a458; -//nop; -a0 = a0; -//nop; -v0 = wrapper_pipe(mem, a0); -goto L431acc; -//nop; -L431acc: -// bdead 4000000b gp = MEM_U32(sp + 40); -if ((int)v0 >= 0) {//nop; -goto L431b0c;} -//nop; -t7 = 0x1000635c; -//nop; -t7 = t7; -MEM_U32(sp + 20) = t7; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L431b00; -MEM_U32(sp + 16) = zero; -L431b00: -// bdead 1 gp = MEM_U32(sp + 40); -v0 = 0xffffffff; -goto L432650; -v0 = 0xffffffff; -L431b0c: -//nop; -//nop; -//nop; -v0 = wrapper_fork(mem); -goto L431b1c; -//nop; -L431b1c: -MEM_U32(sp + 160) = v0; -t9 = MEM_U32(sp + 160); -// bdead 44000083 gp = MEM_U32(sp + 40); -at = 0xffffffff; -if (t9 != at) {//nop; -goto L431bd0;} -//nop; -t0 = 0x10006374; -//nop; -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L431b5c; -MEM_U32(sp + 16) = zero; -L431b5c: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -t1 = 0xfb52720; -t2 = 0xfb50300; -t1 = MEM_U32(t1 + 0); -t2 = MEM_U32(t2 + 0); -//nop; -at = (int)t1 < (int)t2; -if (at == 0) {//nop; -goto L431bc8;} -//nop; -t3 = 0x10006388; -t5 = 0xfb500a0; -t4 = t1 << 2; -t3 = t3; -MEM_U32(sp + 20) = t3; -MEM_U32(sp + 16) = zero; -t6 = t4 + t5; -t8 = MEM_U32(t6 + 0); -//nop; -a0 = 0x5; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t8; -f_error(mem, sp, a0, a1, a2, a3); -goto L431bc0; -MEM_U32(sp + 24) = t8; -L431bc0: -// bdead 1 gp = MEM_U32(sp + 40); -//nop; -L431bc8: -v0 = 0xffffffff; -goto L432650; -v0 = 0xffffffff; -L431bd0: -t7 = MEM_U32(sp + 160); -//nop; -if (t7 != 0) {//nop; -goto L432174;} -//nop; -t9 = 0x10000380; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L431c14;} -//nop; -//nop; -//nop; -// bdead 40000003 t9 = t9; -//nop; -func_4365b8(mem, sp); -goto L431c0c; -//nop; -L431c0c: -// bdead 40000083 gp = MEM_U32(sp + 40); -//nop; -L431c14: -t0 = MEM_U32(sp + 176); -//nop; -if (t0 == 0) {//nop; -goto L431d38;} -//nop; -//nop; -a0 = t0; -a1 = zero; -v0 = wrapper_open(mem, a0, a1, a2); -goto L431c34; -a1 = zero; -L431c34: -MEM_U32(sp + 148) = v0; -t2 = MEM_U32(sp + 148); -// bdead 40000803 gp = MEM_U32(sp + 40); -at = 0xffffffff; -if (t2 != at) {//nop; -goto L431d18;} -//nop; -t3 = 0x1000638c; -t1 = MEM_U32(sp + 176); -//nop; -t3 = t3; -MEM_U32(sp + 20) = t3; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t1; -f_error(mem, sp, a0, a1, a2, a3); -goto L431c7c; -MEM_U32(sp + 24) = t1; -L431c7c: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -t4 = 0xfb52720; -t5 = 0xfb50300; -t4 = MEM_U32(t4 + 0); -t5 = MEM_U32(t5 + 0); -//nop; -at = (int)t4 < (int)t5; -if (at == 0) {//nop; -goto L431ce8;} -//nop; -t6 = 0x100063a8; -t7 = 0xfb500a0; -t8 = t4 << 2; -t6 = t6; -MEM_U32(sp + 20) = t6; -MEM_U32(sp + 16) = zero; -t9 = t8 + t7; -t0 = MEM_U32(t9 + 0); -//nop; -a0 = 0x5; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t0; -f_error(mem, sp, a0, a1, a2, a3); -goto L431ce0; -MEM_U32(sp + 24) = t0; -L431ce0: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L431ce8: -//nop; -//nop; -//nop; -f_cleanup(mem, sp); -goto L431cf8; -//nop; -L431cf8: -// bdead 40000003 gp = MEM_U32(sp + 40); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L431d10; -//nop; -L431d10: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L431d18: -t2 = 0xfb528e4; -//nop; -a0 = MEM_U32(sp + 148); -a1 = MEM_U8(t2 + 13); -//nop; -v0 = wrapper_dup2(mem, a0, a1); -goto L431d30; -//nop; -L431d30: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L431d38: -t3 = MEM_U32(sp + 180); -//nop; -if (t3 == 0) {//nop; -goto L431e5c;} -//nop; -//nop; -a0 = t3; -a1 = 0x1b6; -v0 = wrapper_creat(mem, a0, a1); -goto L431d58; -a1 = 0x1b6; -L431d58: -MEM_U32(sp + 144) = v0; -t1 = MEM_U32(sp + 144); -// bdead 40000403 gp = MEM_U32(sp + 40); -at = 0xffffffff; -if (t1 != at) {//nop; -goto L431e3c;} -//nop; -t5 = 0x100063ac; -t6 = MEM_U32(sp + 180); -//nop; -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t6; -f_error(mem, sp, a0, a1, a2, a3); -goto L431da0; -MEM_U32(sp + 24) = t6; -L431da0: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -t4 = 0xfb52720; -t8 = 0xfb50300; -t4 = MEM_U32(t4 + 0); -t8 = MEM_U32(t8 + 0); -//nop; -at = (int)t4 < (int)t8; -if (at == 0) {//nop; -goto L431e0c;} -//nop; -t7 = 0x100063cc; -t0 = 0xfb500a0; -t9 = t4 << 2; -t7 = t7; -t2 = t9 + t0; -MEM_U32(sp + 20) = t7; -MEM_U32(sp + 16) = zero; -t3 = MEM_U32(t2 + 0); -//nop; -a0 = 0x5; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L431e04; -MEM_U32(sp + 24) = t3; -L431e04: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L431e0c: -//nop; -//nop; -//nop; -f_cleanup(mem, sp); -goto L431e1c; -//nop; -L431e1c: -// bdead 40000003 gp = MEM_U32(sp + 40); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L431e34; -//nop; -L431e34: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L431e3c: -t1 = 0xfb528e4; -//nop; -a0 = MEM_U32(sp + 144); -a1 = MEM_U8(t1 + 29); -//nop; -v0 = wrapper_dup2(mem, a0, a1); -goto L431e54; -//nop; -L431e54: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L431e5c: -t5 = MEM_U32(sp + 184); -//nop; -if (t5 == 0) {//nop; -goto L431f80;} -//nop; -//nop; -a0 = t5; -a1 = 0x1b6; -v0 = wrapper_creat(mem, a0, a1); -goto L431e7c; -a1 = 0x1b6; -L431e7c: -MEM_U32(sp + 140) = v0; -t6 = MEM_U32(sp + 140); -// bdead 40008003 gp = MEM_U32(sp + 40); -at = 0xffffffff; -if (t6 != at) {//nop; -goto L431f60;} -//nop; -t8 = 0x100063d0; -t7 = MEM_U32(sp + 184); -//nop; -t8 = t8; -MEM_U32(sp + 20) = t8; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t7; -f_error(mem, sp, a0, a1, a2, a3); -goto L431ec4; -MEM_U32(sp + 24) = t7; -L431ec4: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -t4 = 0xfb52720; -t9 = 0xfb50300; -t4 = MEM_U32(t4 + 0); -t9 = MEM_U32(t9 + 0); -//nop; -at = (int)t4 < (int)t9; -if (at == 0) {//nop; -goto L431f30;} -//nop; -t0 = 0x100063f0; -t3 = 0xfb500a0; -t2 = t4 << 2; -t0 = t0; -MEM_U32(sp + 20) = t0; -MEM_U32(sp + 16) = zero; -t1 = t2 + t3; -t5 = MEM_U32(t1 + 0); -//nop; -a0 = 0x5; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t5; -f_error(mem, sp, a0, a1, a2, a3); -goto L431f28; -MEM_U32(sp + 24) = t5; -L431f28: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L431f30: -//nop; -//nop; -//nop; -f_cleanup(mem, sp); -goto L431f40; -//nop; -L431f40: -// bdead 40000003 gp = MEM_U32(sp + 40); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L431f58; -//nop; -L431f58: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L431f60: -t6 = 0xfb528e4; -//nop; -a0 = MEM_U32(sp + 140); -a1 = MEM_U8(t6 + 45); -//nop; -v0 = wrapper_dup2(mem, a0, a1); -goto L431f78; -//nop; -L431f78: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L431f80: -//nop; -a0 = MEM_U32(sp + 168); -a1 = MEM_U32(sp + 172); -//nop; -v0 = wrapper_execvp(mem, a0, a1); -goto L431f94; -//nop; -L431f94: -// bdead 40000003 gp = MEM_U32(sp + 40); -a0 = MEM_U32(sp + 168); -//nop; -a1 = 0x1; -// fdead 6000006f t9 = t9; -//nop; -v0 = func_434094(mem, sp, a0, a1); -goto L431fb0; -//nop; -L431fb0: -// bdead 4000000b gp = MEM_U32(sp + 40); -at = 0x2; -t8 = 0xfb52720; -MEM_U32(sp + 120) = v0; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L432020;} -//nop; -t7 = MEM_U32(sp + 120); -//nop; -if (t7 == 0) {//nop; -goto L432020;} -//nop; -t9 = 0x100063f4; -t0 = MEM_U32(sp + 168); -t9 = t9; -MEM_U32(sp + 20) = t9; -//nop; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t7; -MEM_U32(sp + 28) = t0; -f_error(mem, sp, a0, a1, a2, a3); -goto L432014; -MEM_U32(sp + 28) = t0; -L432014: -// bdead 40000001 gp = MEM_U32(sp + 40); -//nop; -goto L432140; -//nop; -L432020: -//nop; -a0 = MEM_U32(sp + 168); -// fdead 6201002f t9 = t9; -a1 = zero; -v0 = func_434094(mem, sp, a0, a1); -goto L432034; -a1 = zero; -L432034: -// bdead 4000000b gp = MEM_U32(sp + 40); -at = 0x2; -t4 = 0xfb52720; -MEM_U32(sp + 120) = v0; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 != at) {//nop; -goto L4320a4;} -//nop; -t2 = MEM_U32(sp + 120); -//nop; -if (t2 == 0) {//nop; -goto L4320a4;} -//nop; -t3 = 0x10006420; -t1 = MEM_U32(sp + 168); -//nop; -t3 = t3; -MEM_U32(sp + 20) = t3; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t2; -MEM_U32(sp + 28) = t1; -f_error(mem, sp, a0, a1, a2, a3); -goto L432098; -MEM_U32(sp + 28) = t1; -L432098: -// bdead 40000001 gp = MEM_U32(sp + 40); -//nop; -goto L432140; -//nop; -L4320a4: -t5 = 0x10006450; -t6 = MEM_U32(sp + 168); -//nop; -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t6; -f_error(mem, sp, a0, a1, a2, a3); -goto L4320d4; -MEM_U32(sp + 24) = t6; -L4320d4: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -t8 = 0xfb52720; -t9 = 0xfb50300; -t8 = MEM_U32(t8 + 0); -t9 = MEM_U32(t9 + 0); -//nop; -at = (int)t8 < (int)t9; -if (at == 0) {//nop; -goto L432140;} -//nop; -t7 = 0x10006468; -t4 = 0xfb500a0; -t0 = t8 << 2; -t7 = t7; -MEM_U32(sp + 20) = t7; -MEM_U32(sp + 16) = zero; -t3 = t0 + t4; -t2 = MEM_U32(t3 + 0); -//nop; -a0 = 0x5; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t2; -f_error(mem, sp, a0, a1, a2, a3); -goto L432138; -MEM_U32(sp + 24) = t2; -L432138: -// bdead 40000001 gp = MEM_U32(sp + 40); -//nop; -L432140: -//nop; -//nop; -//nop; -f_cleanup(mem, sp); -goto L432150; -//nop; -L432150: -// bdead 40000001 gp = MEM_U32(sp + 40); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L432168; -//nop; -L432168: -// bdead 9 gp = MEM_U32(sp + 40); -//nop; -goto L432650; -//nop; -L432174: -//nop; -a0 = 0x2; -a1 = 0x1; -v0 = wrapper_sigset(mem, a0, trampoline, a1, sp); -goto L432184; -a1 = 0x1; -L432184: -// bdead 4000000b gp = MEM_U32(sp + 40); -MEM_U32(sp + 132) = v0; -//nop; -a0 = 0xf; -a1 = 0x1; -v0 = wrapper_sigset(mem, a0, trampoline, a1, sp); -goto L43219c; -a1 = 0x1; -L43219c: -// bdead 4000010b gp = MEM_U32(sp + 40); -MEM_U32(sp + 136) = v0; -t1 = 0x10000380; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L4322ec;} -//nop; -//nop; -a0 = MEM_U32(sp + 160); -// fdead 6000042f t9 = t9; -//nop; -v0 = func_4362cc(mem, sp, a0); -goto L4321d0; -//nop; -L4321d0: -// bdead 4000010b gp = MEM_U32(sp + 40); -MEM_U32(sp + 116) = v0; -a2 = 0x10000430; -//nop; -a0 = MEM_U32(sp + 116); -a1 = 0x71f9; -a2 = a2; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_ioctl(mem, a0, a1, sp); -goto L4321f0; -a2 = a2; -L4321f0: -MEM_U32(sp + 124) = v0; -t5 = MEM_U32(sp + 124); -// bdead 40004103 gp = MEM_U32(sp + 40); -if ((int)t5 >= 0) {//nop; -goto L43223c;} -//nop; -a0 = 0x1000646c; -//nop; -a0 = a0; -//nop; -wrapper_perror(mem, a0); -goto L432218; -//nop; -L432218: -// bdead 40000001 gp = MEM_U32(sp + 40); -a0 = MEM_U32(sp + 160); -//nop; -a1 = 0x9; -//nop; -v0 = wrapper_kill(mem, a0, a1); -goto L432230; -//nop; -L432230: -// bdead 1 gp = MEM_U32(sp + 40); -v0 = 0xffffffff; -goto L432650; -v0 = 0xffffffff; -L43223c: -s0 = 0x10; -if (s0 == 0) {//nop; -goto L432260;} -//nop; -L432248: -s0 = s0 + 0xffffffff; -t6 = s0 << 2; -t9 = sp + 0x34; -t7 = t6 + t9; -if (s0 != 0) {MEM_U32(t7 + 0) = zero; -goto L432248;} -MEM_U32(t7 + 0) = zero; -L432260: -//nop; -a0 = MEM_U32(sp + 116); -a1 = 0x7114; -a2 = sp + 0x34; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_ioctl(mem, a0, a1, sp); -goto L432274; -a2 = sp + 0x34; -L432274: -// bdead 4000010b gp = MEM_U32(sp + 40); -if ((int)v0 >= 0) {//nop; -goto L4322b8;} -//nop; -a0 = 0x10006478; -//nop; -a0 = a0; -//nop; -wrapper_perror(mem, a0); -goto L432294; -//nop; -L432294: -// bdead 40000001 gp = MEM_U32(sp + 40); -a0 = MEM_U32(sp + 160); -//nop; -a1 = 0x9; -//nop; -v0 = wrapper_kill(mem, a0, a1); -goto L4322ac; -//nop; -L4322ac: -// bdead 1 gp = MEM_U32(sp + 40); -v0 = 0xffffffff; -goto L432650; -v0 = 0xffffffff; -L4322b8: -//nop; -a0 = MEM_U32(sp + 116); -a1 = 0x7104; -a2 = zero; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_ioctl(mem, a0, a1, sp); -goto L4322cc; -a2 = zero; -L4322cc: -// bdead 40000003 gp = MEM_U32(sp + 40); -a0 = MEM_U32(sp + 116); -//nop; -//nop; -//nop; -v0 = wrapper_close(mem, a0); -goto L4322e4; -//nop; -L4322e4: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L4322ec: -//nop; -a0 = sp + 0x80; -//nop; -v0 = wrapper_wait(mem, a0); -goto L4322fc; -//nop; -L4322fc: -MEM_U32(sp + 156) = v0; -t8 = MEM_U32(sp + 156); -t0 = MEM_U32(sp + 160); -// bdead 42000203 gp = MEM_U32(sp + 40); -if (t8 == t0) {//nop; -goto L432354;} -//nop; -L432314: -t4 = MEM_U32(sp + 156); -at = 0xffffffff; -if (t4 != at) {//nop; -goto L43232c;} -//nop; -v0 = 0xffffffff; -goto L432650; -v0 = 0xffffffff; -L43232c: -//nop; -a0 = sp + 0x80; -//nop; -v0 = wrapper_wait(mem, a0); -goto L43233c; -//nop; -L43233c: -MEM_U32(sp + 156) = v0; -t3 = MEM_U32(sp + 156); -t2 = MEM_U32(sp + 160); -// bdead 40001803 gp = MEM_U32(sp + 40); -if (t3 != t2) {//nop; -goto L432314;} -//nop; -L432354: -//nop; -a1 = MEM_U32(sp + 132); -a0 = 0x2; -v0 = wrapper_sigset(mem, a0, trampoline, a1, sp); -goto L432364; -a0 = 0x2; -L432364: -// bdead 40000003 gp = MEM_U32(sp + 40); -a1 = MEM_U32(sp + 136); -//nop; -a0 = 0xf; -//nop; -v0 = wrapper_sigset(mem, a0, trampoline, a1, sp); -goto L43237c; -//nop; -L43237c: -// bdead 40000103 gp = MEM_U32(sp + 40); -//nop; -t1 = 0x10000234; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L4323b4;} -//nop; -//nop; -//nop; -//nop; -f_dotime(mem, sp); -goto L4323ac; -//nop; -L4323ac: -// bdead 40000103 gp = MEM_U32(sp + 40); -//nop; -L4323b4: -t5 = 0x10000380; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L4323ec;} -//nop; -//nop; -a0 = MEM_U32(sp + 168); -a1 = MEM_U32(sp + 124); -// fdead 6002446f t9 = t9; -//nop; -func_43673c(mem, sp, a0, a1); -goto L4323e4; -//nop; -L4323e4: -// bdead 40000103 gp = MEM_U32(sp + 40); -//nop; -L4323ec: -t6 = sp + 0x80; -t9 = MEM_U32(t6 + 0); -at = 0x7f; -t7 = t9 & 0xff; -if (t7 != at) {//nop; -goto L432484;} -//nop; -t8 = (int)t9 >> 8; -t0 = t8 & 0xff; -if (t0 == 0) {//nop; -goto L432484;} -//nop; -a0 = 0xfb528e4; -a1 = 0x10006484; -//nop; -a2 = MEM_U32(sp + 168); -MEM_U32(sp + 152) = t0; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L432434; -a1 = a1; -L432434: -// bdead 40000101 gp = MEM_U32(sp + 40); -a2 = MEM_U32(sp + 152); -a0 = 0xfb528e4; -a1 = 0x100064a8; -//nop; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L432454; -a1 = a1; -L432454: -// bdead 40000101 gp = MEM_U32(sp + 40); -a2 = MEM_U32(sp + 156); -a0 = 0xfb528e4; -a1 = 0x100064b8; -//nop; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L432474; -a1 = a1; -L432474: -// bdead 40000001 gp = MEM_U32(sp + 40); -v0 = MEM_U32(sp + 152); -//nop; -goto L432650; -//nop; -L432484: -t4 = sp + 0x80; -t3 = MEM_U32(t4 + 0); -//nop; -t2 = t3 & 0xff; -if (t2 != 0) {//nop; -goto L4324ac;} -//nop; -v0 = (int)t3 >> 8; -t1 = v0 & 0xff; -v0 = t1; -goto L432650; -v0 = t1; -L4324ac: -t5 = sp + 0x80; -t6 = MEM_U32(t5 + 0); -//nop; -t7 = t6 & 0xff; -if ((int)t7 <= 0) {//nop; -goto L43264c;} -//nop; -t9 = (int)t6 >> 8; -t8 = t9 & 0xff; -if (t8 != 0) {//nop; -goto L43264c;} -//nop; -a0 = 0xfb528e4; -a1 = 0x100064d0; -//nop; -t0 = t6 & 0x7f; -a2 = MEM_U32(sp + 168); -MEM_U32(sp + 152) = t0; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L4324f8; -a1 = a1; -L4324f8: -// bdead 40000181 gp = MEM_U32(sp + 40); -a1 = MEM_U32(sp + 152); -a0 = 0x100064e4; -//nop; -a0 = a0; -//nop; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_printf(mem, a0, sp); -goto L432514; -//nop; -L432514: -t4 = MEM_U32(sp + 152); -// bdead 400021c1 gp = MEM_U32(sp + 40); -at = 0x9; -if (t4 != at) {//nop; -goto L43255c;} -//nop; -a0 = 0x10006504; -//nop; -a0 = a0; -//nop; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_printf(mem, a0, sp); -goto L43253c; -//nop; -L43253c: -// bdead 40000001 gp = MEM_U32(sp + 40); -a0 = MEM_U32(sp + 152); -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L432554; -//nop; -L432554: -// bdead 40000101 gp = MEM_U32(sp + 40); -//nop; -L43255c: -t2 = MEM_U32(sp + 152); -at = 0x2; -if (t2 != at) {//nop; -goto L43259c;} -//nop; -//nop; -//nop; -//nop; -f_cleanup(mem, sp); -goto L43257c; -//nop; -L43257c: -// bdead 40000001 gp = MEM_U32(sp + 40); -a0 = 0x3; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L432594; -//nop; -L432594: -// bdead 40000101 gp = MEM_U32(sp + 40); -//nop; -L43259c: -a0 = 0xfb528e4; -a1 = 0x1000654c; -//nop; -a2 = MEM_U32(sp + 168); -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L4325b8; -a1 = a1; -L4325b8: -// bdead 40000101 gp = MEM_U32(sp + 40); -a2 = MEM_U32(sp + 152); -a0 = 0xfb528e4; -a1 = 0x10006560; -//nop; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L4325d8; -a1 = a1; -L4325d8: -t3 = MEM_U32(sp + 128); -// bdead 40001181 gp = MEM_U32(sp + 40); -t1 = t3 & 0x80; -if (t1 == 0) {//nop; -goto L432610;} -//nop; -a0 = 0xfb528e4; -a1 = 0x1000656c; -//nop; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L432604; -a1 = a1; -L432604: -// bdead 40000001 gp = MEM_U32(sp + 40); -//nop; -goto L432630; -//nop; -L432610: -a0 = 0xfb528e4; -a1 = 0x1000657c; -//nop; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L432628; -a1 = a1; -L432628: -// bdead 40000001 gp = MEM_U32(sp + 40); -//nop; -L432630: -//nop; -a0 = MEM_U32(sp + 152); -//nop; -wrapper_exit(mem, a0); -goto L432640; -//nop; -L432640: -// bdead 9 gp = MEM_U32(sp + 40); -//nop; -goto L432650; -//nop; -L43264c: -v0 = zero; -L432650: -// bdead 9 ra = MEM_U32(sp + 44); -// bdead 9 s0 = MEM_U32(sp + 36); -// bdead 9 sp = sp + 0xa8; -return v0; -// bdead 9 sp = sp + 0xa8; -} - -static uint32_t f_edit_src(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a3 = 0; -L432660: -//edit_src: -//nop; -//nop; -//nop; -sp = sp + 0xffffff98; -//nop; -// fdead 400000eb MEM_U32(sp + 60) = ra; -// fdead 400000eb MEM_U32(sp + 56) = gp; -MEM_U32(sp + 104) = a0; -MEM_U32(sp + 108) = a1; -MEM_U32(sp + 112) = a2; -v0 = wrapper_fork(mem); -goto L43268c; -MEM_U32(sp + 112) = a2; -L43268c: -MEM_U32(sp + 84) = v0; -t6 = MEM_U32(sp + 84); -// bdead 40008003 gp = MEM_U32(sp + 56); -at = 0xffffffff; -if (t6 != at) {//nop; -goto L432740;} -//nop; -t7 = 0x10006580; -//nop; -t7 = t7; -MEM_U32(sp + 20) = t7; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -f_error(mem, sp, a0, a1, a2, a3); -goto L4326cc; -MEM_U32(sp + 16) = zero; -L4326cc: -// bdead 40000003 gp = MEM_U32(sp + 56); -//nop; -t8 = 0xfb52720; -t9 = 0xfb50300; -t8 = MEM_U32(t8 + 0); -t9 = MEM_U32(t9 + 0); -//nop; -at = (int)t8 < (int)t9; -if (at == 0) {//nop; -goto L432738;} -//nop; -t0 = 0x10006598; -t2 = 0xfb500a0; -t1 = t8 << 2; -t0 = t0; -MEM_U32(sp + 20) = t0; -MEM_U32(sp + 16) = zero; -t3 = t1 + t2; -t4 = MEM_U32(t3 + 0); -//nop; -a0 = 0x5; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t4; -f_error(mem, sp, a0, a1, a2, a3); -goto L432730; -MEM_U32(sp + 24) = t4; -L432730: -// bdead 1 gp = MEM_U32(sp + 56); -//nop; -L432738: -v0 = 0xffffffff; -goto L432b4c; -v0 = 0xffffffff; -L432740: -t5 = MEM_U32(sp + 84); -//nop; -if (t5 != 0) {//nop; -goto L43295c;} -//nop; -t6 = 0x100002a8; -at = 0x2; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L4327dc;} -//nop; -//nop; -a1 = MEM_U32(sp + 108); -a2 = MEM_U32(sp + 112); -a0 = sp + 0x58; -f_get_lino(mem, sp, a0, a1, a2); -goto L43277c; -a0 = sp + 0x58; -L43277c: -// bdead 40000003 gp = MEM_U32(sp + 56); -t7 = MEM_U32(sp + 104); -t9 = 0x1000659c; -t0 = 0x1000a380; -t9 = t9; -MEM_U32(sp + 16) = t9; -t8 = MEM_U32(t0 + 100); -t1 = 0x100065a0; -t2 = 0x100065a4; -//nop; -a3 = MEM_U32(sp + 108); -t1 = t1; -t2 = t2; -MEM_U32(sp + 28) = t2; -MEM_U32(sp + 24) = t1; -MEM_U32(sp + 32) = zero; -a2 = sp + 0x58; -a0 = t7; -a1 = t7; -MEM_U32(sp + 20) = t8; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_execlp(mem, a0, sp); -goto L4327d0; -MEM_U32(sp + 20) = t8; -L4327d0: -// bdead 40000003 gp = MEM_U32(sp + 56); -//nop; -goto L4328a4; -//nop; -L4327dc: -t3 = 0x1000a240; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 != 0) {//nop; -goto L432830;} -//nop; -t4 = MEM_U32(sp + 104); -a3 = 0x1000a1f8; -a2 = 0x100065b0; -t5 = MEM_U32(sp + 108); -//nop; -a3 = MEM_U32(a3 + 0); -MEM_U32(sp + 20) = zero; -a0 = t4; -a1 = t4; -a2 = a2; -MEM_U32(sp + 16) = t5; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_execlp(mem, a0, sp); -goto L432824; -MEM_U32(sp + 16) = t5; -L432824: -// bdead 40000003 gp = MEM_U32(sp + 56); -//nop; -goto L4328a4; -//nop; -L432830: -t9 = MEM_U32(sp + 104); -t8 = 0x1000a1f8; -a3 = 0x1000a240; -t6 = 0x100065d0; -t7 = 0x100065d4; -t0 = 0x100065d8; -MEM_U32(sp + 24) = t9; -//nop; -a0 = 0x100065b4; -a1 = 0x100065bc; -a2 = 0x100065c4; -t1 = MEM_U32(sp + 108); -t8 = MEM_U32(t8 + 0); -a3 = MEM_U32(a3 + 0); -t6 = t6; -t7 = t7; -t0 = t0; -MEM_U32(sp + 28) = t0; -MEM_U32(sp + 20) = t7; -MEM_U32(sp + 16) = t6; -MEM_U32(sp + 40) = zero; -a0 = a0; -a1 = a1; -a2 = a2; -MEM_U32(sp + 36) = t1; -MEM_U32(sp + 32) = t8; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_execlp(mem, a0, sp); -goto L43289c; -MEM_U32(sp + 32) = t8; -L43289c: -// bdead 40000003 gp = MEM_U32(sp + 56); -//nop; -L4328a4: -t2 = 0x100065dc; -t3 = MEM_U32(sp + 104); -//nop; -t2 = t2; -MEM_U32(sp + 20) = t2; -a0 = 0x1; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 16) = zero; -MEM_U32(sp + 24) = t3; -f_error(mem, sp, a0, a1, a2, a3); -goto L4328d4; -MEM_U32(sp + 24) = t3; -L4328d4: -// bdead 40000003 gp = MEM_U32(sp + 56); -//nop; -t4 = 0xfb52720; -t5 = 0xfb50300; -t4 = MEM_U32(t4 + 0); -t5 = MEM_U32(t5 + 0); -//nop; -at = (int)t4 < (int)t5; -if (at == 0) {//nop; -goto L432940;} -//nop; -t6 = 0x100065f0; -t9 = 0xfb500a0; -t7 = t4 << 2; -t6 = t6; -t0 = t7 + t9; -MEM_U32(sp + 20) = t6; -MEM_U32(sp + 16) = zero; -t8 = MEM_U32(t0 + 0); -//nop; -a0 = 0x5; -a1 = zero; -a2 = zero; -a3 = zero; -MEM_U32(sp + 24) = t8; -f_error(mem, sp, a0, a1, a2, a3); -goto L432938; -MEM_U32(sp + 24) = t8; -L432938: -// bdead 40000001 gp = MEM_U32(sp + 56); -//nop; -L432940: -//nop; -a0 = 0x1; -//nop; -wrapper_exit(mem, a0); -goto L432950; -//nop; -L432950: -// bdead 9 gp = MEM_U32(sp + 56); -//nop; -goto L432b4c; -//nop; -L43295c: -//nop; -a0 = 0x2; -a1 = 0x1; -v0 = wrapper_sigset(mem, a0, trampoline, a1, sp); -goto L43296c; -a1 = 0x1; -L43296c: -// bdead 40000009 gp = MEM_U32(sp + 56); -MEM_U32(sp + 68) = v0; -//nop; -a0 = 0xf; -a1 = 0x1; -v0 = wrapper_sigset(mem, a0, trampoline, a1, sp); -goto L432984; -a1 = 0x1; -L432984: -// bdead 40000009 gp = MEM_U32(sp + 56); -MEM_U32(sp + 72) = v0; -//nop; -a0 = sp + 0x40; -//nop; -v0 = wrapper_wait(mem, a0); -goto L43299c; -//nop; -L43299c: -MEM_U32(sp + 80) = v0; -t1 = MEM_U32(sp + 80); -t2 = MEM_U32(sp + 84); -// bdead 40000c01 gp = MEM_U32(sp + 56); -if (t1 == t2) {//nop; -goto L4329f4;} -//nop; -L4329b4: -t3 = MEM_U32(sp + 80); -at = 0xffffffff; -if (t3 != at) {//nop; -goto L4329cc;} -//nop; -v0 = 0xffffffff; -goto L432b4c; -v0 = 0xffffffff; -L4329cc: -//nop; -a0 = sp + 0x40; -//nop; -v0 = wrapper_wait(mem, a0); -goto L4329dc; -//nop; -L4329dc: -MEM_U32(sp + 80) = v0; -t5 = MEM_U32(sp + 80); -t6 = MEM_U32(sp + 84); -// bdead 4000c001 gp = MEM_U32(sp + 56); -if (t5 != t6) {//nop; -goto L4329b4;} -//nop; -L4329f4: -//nop; -a1 = MEM_U32(sp + 68); -a0 = 0x2; -v0 = wrapper_sigset(mem, a0, trampoline, a1, sp); -goto L432a04; -a0 = 0x2; -L432a04: -// bdead 40000001 gp = MEM_U32(sp + 56); -a1 = MEM_U32(sp + 72); -//nop; -a0 = 0xf; -//nop; -v0 = wrapper_sigset(mem, a0, trampoline, a1, sp); -goto L432a1c; -//nop; -L432a1c: -t4 = MEM_U32(sp + 64); -// bdead 40002101 gp = MEM_U32(sp + 56); -t7 = t4 & 0xff; -if (t7 == 0) {MEM_U32(sp + 76) = t7; -goto L432afc;} -MEM_U32(sp + 76) = t7; -at = 0x2; -if (t7 == at) {//nop; -goto L432afc;} -//nop; -a0 = 0xfb528e4; -a1 = 0x100065f4; -//nop; -a2 = MEM_U32(sp + 104); -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L432a58; -a1 = a1; -L432a58: -// bdead 40000181 gp = MEM_U32(sp + 56); -a1 = MEM_U32(sp + 76); -a0 = 0x10006608; -//nop; -a0 = a0; -//nop; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_printf(mem, a0, sp); -goto L432a74; -//nop; -L432a74: -t9 = MEM_U32(sp + 64); -// bdead 44000181 gp = MEM_U32(sp + 56); -t0 = t9 & 0x80; -if (t0 == 0) {//nop; -goto L432aac;} -//nop; -a0 = 0xfb528e4; -a1 = 0x10006614; -//nop; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L432aa0; -a1 = a1; -L432aa0: -// bdead 40000001 gp = MEM_U32(sp + 56); -//nop; -goto L432acc; -//nop; -L432aac: -a0 = 0xfb528e4; -a1 = 0x10006624; -//nop; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L432ac4; -a1 = a1; -L432ac4: -// bdead 40000001 gp = MEM_U32(sp + 56); -//nop; -L432acc: -//nop; -//nop; -//nop; -f_cleanup(mem, sp); -goto L432adc; -//nop; -L432adc: -// bdead 40000001 gp = MEM_U32(sp + 56); -a0 = MEM_U32(sp + 76); -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L432af4; -//nop; -L432af4: -// bdead 40000001 gp = MEM_U32(sp + 56); -//nop; -L432afc: -t8 = MEM_U32(sp + 76); -at = 0x2; -if (t8 != at) {//nop; -goto L432b3c;} -//nop; -//nop; -//nop; -//nop; -f_cleanup(mem, sp); -goto L432b1c; -//nop; -L432b1c: -// bdead 40000001 gp = MEM_U32(sp + 56); -a0 = 0x3; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L432b34; -//nop; -L432b34: -// bdead 40000001 gp = MEM_U32(sp + 56); -//nop; -L432b3c: -v0 = MEM_U32(sp + 64); -//nop; -t1 = v0 & 0xff00; -v0 = t1; -L432b4c: -// bdead 9 ra = MEM_U32(sp + 60); -// bdead 9 sp = sp + 0x68; -//nop; -return v0; -//nop; -} - -static void f_get_lino(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a3 = 0; -L432b5c: -//get_lino: -//nop; -//nop; -//nop; -sp = sp + 0xfffff7c0; -MEM_U32(sp + 2112) = a0; -t6 = MEM_U32(sp + 2112); -// fdead 400080eb MEM_U32(sp + 36) = ra; -// fdead 400080eb MEM_U32(sp + 32) = gp; -MEM_U32(sp + 2116) = a1; -MEM_U32(sp + 2120) = a2; -// fdead 400080eb MEM_U32(sp + 28) = s1; -// fdead 400080eb MEM_U32(sp + 24) = s0; -t7 = 0x2b; -MEM_U32(sp + 2100) = t6; -MEM_U8(t6 + 0) = (uint8_t)t7; -t8 = MEM_U32(sp + 2100); -a0 = 0x1000a1f8; -t9 = t8 + 0x1; -MEM_U32(sp + 2100) = t9; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = zero; -v0 = wrapper_open(mem, a0, a1, a2); -goto L432bb8; -a1 = zero; -L432bb8: -// bdead 4000000b gp = MEM_U32(sp + 32); -MEM_U32(sp + 2108) = v0; -//nop; -a0 = MEM_U32(sp + 2108); -a1 = sp + 0x30; -a2 = 0x800; -v0 = wrapper_read(mem, a0, a1, a2); -goto L432bd4; -a2 = 0x800; -L432bd4: -// bdead 4000000b gp = MEM_U32(sp + 32); -a0 = MEM_U32(sp + 2108); -//nop; -MEM_U32(sp + 2104) = v0; -//nop; -v0 = wrapper_close(mem, a0); -goto L432bec; -//nop; -L432bec: -t0 = MEM_U32(sp + 2104); -// bdead 40000203 gp = MEM_U32(sp + 32); -at = (int)t0 < (int)0x800; -if (at == 0) {//nop; -goto L432c10;} -//nop; -t1 = sp + 0x30; -t2 = t0 + t1; -MEM_U8(t2 + 0) = (uint8_t)zero; -goto L432c18; -MEM_U8(t2 + 0) = (uint8_t)zero; -L432c10: -t3 = sp + 0x30; -MEM_U8(t3 + 2047) = (uint8_t)zero; -L432c18: -t4 = MEM_U32(sp + 2120); -//nop; -t5 = t4 + 0xffffffff; -at = t5 < 0x6; -if (at == 0) {//nop; -goto L4330c0;} -//nop; -//nop; -//nop; -//nop; -//nop; -//nop; -;static void *const Lswitch10007acc[] = { -&&L432c4c, -&&L432c4c, -&&L432e0c, -&&L4330c0, -&&L432f30, -&&L432f30, -}; -dest = Lswitch10007acc[t5]; -//nop; -goto *dest; -//nop; -L432c4c: -t6 = MEM_U32(sp + 2104); -t7 = sp + 0x30; -t8 = t6 + t7; -at = t7 < t8; -if (at == 0) {MEM_U32(sp + 2096) = t7; -goto L4330c0;} -MEM_U32(sp + 2096) = t7; -L432c64: -a1 = 0x10006628; -//nop; -a0 = MEM_U32(sp + 2096); -a2 = 0x9; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L432c7c; -a1 = a1; -L432c7c: -// bdead 4000000b gp = MEM_U32(sp + 32); -if (v0 != 0) {//nop; -goto L432de4;} -//nop; -//nop; -a0 = MEM_U32(sp + 2096); -a1 = 0x2c; -v0 = wrapper_strchr(mem, a0, a1); -goto L432c98; -a1 = 0x2c; -L432c98: -MEM_U32(sp + 2096) = v0; -t9 = MEM_U32(sp + 2096); -// bdead 44000003 gp = MEM_U32(sp + 32); -if (t9 == 0) {//nop; -goto L432de4;} -//nop; -//nop; -a0 = MEM_U32(sp + 2116); -//nop; -v0 = wrapper_strlen(mem, a0); -goto L432cbc; -//nop; -L432cbc: -// bdead 4000000b gp = MEM_U32(sp + 32); -a0 = MEM_U32(sp + 2116); -//nop; -s1 = v0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L432cd4; -//nop; -L432cd4: -// bdead 4004000b gp = MEM_U32(sp + 32); -t0 = MEM_U32(sp + 2096); -//nop; -s0 = v0; -a1 = MEM_U32(sp + 2116); -a2 = s0; -a0 = t0 - s1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L432cf4; -a0 = t0 - s1; -L432cf4: -// bdead 4000000b gp = MEM_U32(sp + 32); -if (v0 != 0) {//nop; -goto L432de4;} -//nop; -a1 = 0x10006634; -//nop; -a0 = MEM_U32(sp + 2096); -a2 = 0x7; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L432d18; -a1 = a1; -L432d18: -// bdead 4000000b gp = MEM_U32(sp + 32); -if (v0 != 0) {//nop; -goto L432de4;} -//nop; -t1 = MEM_U32(sp + 2096); -t4 = 0xfb504f0; -t2 = t1 + 0x7; -MEM_U32(sp + 2096) = t2; -t3 = MEM_U8(t2 + 0); -//nop; -t5 = t3 + t4; -t6 = MEM_U8(t5 + 1); -//nop; -t7 = t6 & 0x4; -if (t7 == 0) {//nop; -goto L4330c0;} -//nop; -t8 = MEM_U32(sp + 2100); -t9 = MEM_U32(sp + 2112); -//nop; -t0 = t8 - t9; -at = (int)t0 < (int)0xb; -if (at == 0) {//nop; -goto L4330c0;} -//nop; -L432d70: -t1 = MEM_U32(sp + 2096); -t3 = MEM_U32(sp + 2100); -t2 = MEM_U8(t1 + 0); -t0 = 0xfb504f0; -MEM_U8(t3 + 0) = (uint8_t)t2; -t6 = MEM_U32(sp + 2096); -t4 = MEM_U32(sp + 2100); -t7 = t6 + 0x1; -MEM_U32(sp + 2096) = t7; -t8 = MEM_U32(sp + 2096); -t5 = t4 + 0x1; -MEM_U32(sp + 2100) = t5; -t9 = MEM_U8(t8 + 0); -//nop; -t1 = t9 + t0; -t2 = MEM_U8(t1 + 1); -//nop; -t3 = t2 & 0x4; -if (t3 == 0) {//nop; -goto L4330c0;} -//nop; -t4 = MEM_U32(sp + 2100); -t5 = MEM_U32(sp + 2112); -//nop; -t6 = t4 - t5; -at = (int)t6 < (int)0xb; -if (at != 0) {//nop; -goto L432d70;} -//nop; -//nop; -goto L4330c0; -//nop; -L432de4: -t7 = MEM_U32(sp + 2096); -t9 = MEM_U32(sp + 2104); -t0 = sp + 0x30; -t8 = t7 + 0x1; -t1 = t9 + t0; -at = t8 < t1; -if (at != 0) {MEM_U32(sp + 2096) = t8; -goto L432c64;} -MEM_U32(sp + 2096) = t8; -//nop; -goto L4330c0; -//nop; -L432e0c: -t3 = MEM_U32(sp + 2104); -t2 = sp + 0x30; -t4 = t3 + t2; -at = t2 < t4; -if (at == 0) {MEM_U32(sp + 2096) = t2; -goto L4330c0;} -MEM_U32(sp + 2096) = t2; -L432e24: -a1 = 0x1000663c; -//nop; -a0 = MEM_U32(sp + 2096); -a2 = 0xe; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L432e3c; -a1 = a1; -L432e3c: -// bdead 4000000b gp = MEM_U32(sp + 32); -if (v0 != 0) {//nop; -goto L432f08;} -//nop; -t5 = MEM_U32(sp + 2096); -t9 = 0xfb504f0; -t6 = t5 + 0xe; -MEM_U32(sp + 2096) = t6; -t7 = MEM_U8(t6 + 0); -//nop; -t0 = t7 + t9; -t8 = MEM_U8(t0 + 1); -//nop; -t1 = t8 & 0x4; -if (t1 == 0) {//nop; -goto L4330c0;} -//nop; -t3 = MEM_U32(sp + 2100); -t2 = MEM_U32(sp + 2112); -//nop; -t4 = t3 - t2; -at = (int)t4 < (int)0xb; -if (at == 0) {//nop; -goto L4330c0;} -//nop; -L432e94: -t5 = MEM_U32(sp + 2096); -t7 = MEM_U32(sp + 2100); -t6 = MEM_U8(t5 + 0); -t4 = 0xfb504f0; -MEM_U8(t7 + 0) = (uint8_t)t6; -t8 = MEM_U32(sp + 2096); -t9 = MEM_U32(sp + 2100); -t1 = t8 + 0x1; -MEM_U32(sp + 2096) = t1; -t3 = MEM_U32(sp + 2096); -t0 = t9 + 0x1; -MEM_U32(sp + 2100) = t0; -t2 = MEM_U8(t3 + 0); -//nop; -t5 = t2 + t4; -t6 = MEM_U8(t5 + 1); -//nop; -t7 = t6 & 0x4; -if (t7 == 0) {//nop; -goto L4330c0;} -//nop; -t9 = MEM_U32(sp + 2100); -t0 = MEM_U32(sp + 2112); -//nop; -t8 = t9 - t0; -at = (int)t8 < (int)0xb; -if (at != 0) {//nop; -goto L432e94;} -//nop; -//nop; -goto L4330c0; -//nop; -L432f08: -t1 = MEM_U32(sp + 2096); -t2 = MEM_U32(sp + 2104); -t4 = sp + 0x30; -t3 = t1 + 0x1; -t5 = t2 + t4; -at = t3 < t5; -if (at != 0) {MEM_U32(sp + 2096) = t3; -goto L432e24;} -MEM_U32(sp + 2096) = t3; -//nop; -goto L4330c0; -//nop; -L432f30: -t7 = MEM_U32(sp + 2104); -t6 = sp + 0x30; -t9 = t7 + t6; -at = t6 < t9; -if (at == 0) {MEM_U32(sp + 2096) = t6; -goto L432fa0;} -MEM_U32(sp + 2096) = t6; -L432f48: -a1 = 0x1000664c; -//nop; -a0 = MEM_U32(sp + 2096); -a2 = 0x6; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L432f60; -a1 = a1; -L432f60: -// bdead 4000000b gp = MEM_U32(sp + 32); -if (v0 != 0) {//nop; -goto L432f80;} -//nop; -t0 = MEM_U32(sp + 2096); -//nop; -t8 = t0 + 0x6; -MEM_U32(sp + 2096) = t8; -goto L432fa0; -MEM_U32(sp + 2096) = t8; -L432f80: -t1 = MEM_U32(sp + 2096); -t4 = MEM_U32(sp + 2104); -t3 = sp + 0x30; -t2 = t1 + 0x1; -t5 = t4 + t3; -at = t2 < t5; -if (at != 0) {MEM_U32(sp + 2096) = t2; -goto L432f48;} -MEM_U32(sp + 2096) = t2; -L432fa0: -t6 = MEM_U32(sp + 2104); -t7 = MEM_U32(sp + 2096); -t9 = sp + 0x30; -t0 = t6 + t9; -at = t7 < t0; -if (at == 0) {//nop; -goto L4330c0;} -//nop; -L432fbc: -a1 = 0x10006654; -//nop; -a0 = MEM_U32(sp + 2096); -a2 = 0x6; -a1 = a1; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L432fd4; -a1 = a1; -L432fd4: -// bdead 4000000b gp = MEM_U32(sp + 32); -if (v0 != 0) {//nop; -goto L4330a0;} -//nop; -t8 = MEM_U32(sp + 2096); -t3 = 0xfb504f0; -t1 = t8 + 0x6; -MEM_U32(sp + 2096) = t1; -t4 = MEM_U8(t1 + 0); -//nop; -t2 = t4 + t3; -t5 = MEM_U8(t2 + 1); -//nop; -t6 = t5 & 0x4; -if (t6 == 0) {//nop; -goto L4330c0;} -//nop; -t9 = MEM_U32(sp + 2100); -t7 = MEM_U32(sp + 2112); -//nop; -t0 = t9 - t7; -at = (int)t0 < (int)0xb; -if (at == 0) {//nop; -goto L4330c0;} -//nop; -L43302c: -t8 = MEM_U32(sp + 2096); -t4 = MEM_U32(sp + 2100); -t1 = MEM_U8(t8 + 0); -t0 = 0xfb504f0; -MEM_U8(t4 + 0) = (uint8_t)t1; -t5 = MEM_U32(sp + 2096); -t3 = MEM_U32(sp + 2100); -t6 = t5 + 0x1; -MEM_U32(sp + 2096) = t6; -t9 = MEM_U32(sp + 2096); -t2 = t3 + 0x1; -MEM_U32(sp + 2100) = t2; -t7 = MEM_U8(t9 + 0); -//nop; -t8 = t7 + t0; -t1 = MEM_U8(t8 + 1); -//nop; -t4 = t1 & 0x4; -if (t4 == 0) {//nop; -goto L4330c0;} -//nop; -t3 = MEM_U32(sp + 2100); -t2 = MEM_U32(sp + 2112); -//nop; -t5 = t3 - t2; -at = (int)t5 < (int)0xb; -if (at != 0) {//nop; -goto L43302c;} -//nop; -//nop; -goto L4330c0; -//nop; -L4330a0: -t6 = MEM_U32(sp + 2096); -t7 = MEM_U32(sp + 2104); -t0 = sp + 0x30; -t9 = t6 + 0x1; -t8 = t7 + t0; -at = t9 < t8; -if (at != 0) {MEM_U32(sp + 2096) = t9; -goto L432fbc;} -MEM_U32(sp + 2096) = t9; -L4330c0: -t4 = MEM_U32(sp + 2112); -t1 = MEM_U32(sp + 2100); -t3 = t4 + 0x1; -at = t3 < t1; -if (at == 0) {//nop; -goto L4330e0;} -//nop; -MEM_U8(t1 + 0) = (uint8_t)zero; -goto L4330f8; -MEM_U8(t1 + 0) = (uint8_t)zero; -L4330e0: -t5 = MEM_U32(sp + 2100); -t2 = 0x31; -MEM_U8(t5 + 0) = (uint8_t)t2; -t6 = MEM_U32(sp + 2100); -//nop; -MEM_U8(t6 + 1) = (uint8_t)zero; -L4330f8: -// bdead 1 ra = MEM_U32(sp + 36); -// bdead 1 s0 = MEM_U32(sp + 24); -// bdead 1 s1 = MEM_U32(sp + 28); -// bdead 1 sp = sp + 0x840; -return; -// bdead 1 sp = sp + 0x840; -} - -static void f_show_err(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L43310c: -//show_err: -//nop; -//nop; -//nop; -at = 0x10000; -at = at | 0x28; -sp = sp - at; -at = 0x10000; -at = at + sp; -// fdead 4000002f MEM_U32(sp + 28) = ra; -// fdead 4000002f MEM_U32(sp + 24) = gp; -MEM_U32(at + 40) = a0; -a0 = 0x10000; -//nop; -a0 = a0 + sp; -a0 = MEM_U32(a0 + 40); -a1 = zero; -v0 = wrapper_open(mem, a0, a1, a2); -goto L433150; -a1 = zero; -L433150: -// bdead 4000000b gp = MEM_U32(sp + 24); -at = 0x10000; -at = at + sp; -MEM_U32(at + 36) = v0; -a0 = 0x10000; -//nop; -a0 = a0 + sp; -a0 = MEM_U32(a0 + 36); -a1 = sp + 0x20; -a2 = 0x10000; -v0 = wrapper_read(mem, a0, a1, a2); -goto L43317c; -a2 = 0x10000; -L43317c: -// bdead 4000000b gp = MEM_U32(sp + 24); -at = 0x10000; -at = at + sp; -MEM_U32(at + 32) = v0; -a0 = 0x10000; -//nop; -a0 = a0 + sp; -a0 = MEM_U32(a0 + 36); -//nop; -v0 = wrapper_close(mem, a0); -goto L4331a4; -//nop; -L4331a4: -t6 = 0x10000; -t6 = t6 + sp; -t6 = MEM_U32(t6 + 32); -at = 0x10000; -// bdead 40008107 gp = MEM_U32(sp + 24); -at = (int)t6 < (int)at; -if (at == 0) {//nop; -goto L4331d4;} -//nop; -t7 = sp + 0x20; -t8 = t6 + t7; -MEM_U8(t8 + 0) = (uint8_t)zero; -goto L4331e4; -MEM_U8(t8 + 0) = (uint8_t)zero; -L4331d4: -t9 = sp + 0x20; -at = 0x10000; -at = at + t9; -MEM_U8(at + -1) = (uint8_t)zero; -L4331e4: -a0 = 0xfb528e4; -a1 = 0x1000665c; -//nop; -a2 = sp + 0x20; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L433200; -a1 = a1; -L433200: -// bdead 1 ra = MEM_U32(sp + 28); -// bdead 1 at = 0x10000; -// bdead 1 gp = MEM_U32(sp + 24); -// bdead 1 at = at | 0x28; -// bdead 1 sp = sp + at; -return; -// bdead 1 sp = sp + at; -} - -static void f_handler(uint8_t *mem, uint32_t sp) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L433218: -//handler: -//nop; -//nop; -//nop; -//nop; -sp = sp + 0xffffffe0; -// fdead 400001e3 MEM_U32(sp + 28) = ra; -// fdead 400001e3 MEM_U32(sp + 24) = gp; -f_cleanup(mem, sp); -goto L433238; -// fdead 400001e3 MEM_U32(sp + 24) = gp; -L433238: -// bdead 40000001 gp = MEM_U32(sp + 24); -a0 = 0x3; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L433250; -//nop; -L433250: -// bdead 19 ra = MEM_U32(sp + 28); -// bdead 19 gp = MEM_U32(sp + 24); -// bdead 19 sp = sp + 0x20; -return; -// bdead 19 sp = sp + 0x20; -} - -static void f_cleanup(uint8_t *mem, uint32_t sp) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L433260: -//cleanup: -//nop; -//nop; -//nop; -t6 = 0x10000240; -sp = sp + 0xffffffd8; -t6 = MEM_U32(t6 + 0); -// fdead 400081eb MEM_U32(sp + 28) = ra; -if (t6 != 0) {// fdead 400081eb MEM_U32(sp + 24) = gp; -goto L43363c;} -// fdead 400081eb MEM_U32(sp + 24) = gp; -t7 = 0x1000a1f4; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L4332b4;} -//nop; -//nop; -a0 = t7; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4332ac; -//nop; -L4332ac: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L4332b4: -t8 = 0x1000a1f0; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L433344;} -//nop; -//nop; -a0 = t8; -//nop; -v0 = f_getsuf(mem, sp, a0); -goto L4332dc; -//nop; -L4332dc: -MEM_U8(sp + 39) = (uint8_t)v0; -t9 = MEM_U8(sp + 39); -// bdead 44000001 gp = MEM_U32(sp + 24); -if (t9 == 0) {//nop; -goto L433310;} -//nop; -t0 = 0x1000a24c; -//nop; -t0 = MEM_U8(t0 + 0); -//nop; -if (t9 == t0) {at = 0x6d; -goto L433344;} -at = 0x6d; -if (t9 == at) {//nop; -goto L433344;} -//nop; -L433310: -t1 = 0x10000214; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L433344;} -//nop; -a0 = 0x1000a1f0; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L43333c; -//nop; -L43333c: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L433344: -t2 = 0x1000a250; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L43338c;} -//nop; -t3 = 0x1000a1fc; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L43338c;} -//nop; -//nop; -a0 = t3; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L433384; -//nop; -L433384: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L43338c: -t4 = 0x1000a218; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L4333bc;} -//nop; -//nop; -a0 = t4; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4333b4; -//nop; -L4333b4: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L4333bc: -t5 = 0x1000a21c; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L4333ec;} -//nop; -//nop; -a0 = t5; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4333e4; -//nop; -L4333e4: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L4333ec: -t6 = 0x1000a224; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L43341c;} -//nop; -//nop; -a0 = t6; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L433414; -//nop; -L433414: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L43341c: -t7 = 0x1000a220; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L43344c;} -//nop; -//nop; -a0 = t7; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L433444; -//nop; -L433444: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L43344c: -t8 = 0x1000a200; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L43347c;} -//nop; -//nop; -a0 = t8; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L433474; -//nop; -L433474: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L43347c: -t0 = 0x1000a204; -//nop; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 == 0) {//nop; -goto L4334ac;} -//nop; -//nop; -a0 = t0; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4334a4; -//nop; -L4334a4: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L4334ac: -t9 = 0x1000a208; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L4334e0;} -//nop; -a0 = t9; -//nop; -//nop; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4334d8; -//nop; -L4334d8: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L4334e0: -t1 = 0x1000a20c; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L433510;} -//nop; -//nop; -a0 = t1; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L433508; -//nop; -L433508: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L433510: -t2 = 0x1000a210; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L433540;} -//nop; -//nop; -a0 = t2; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L433538; -//nop; -L433538: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L433540: -t3 = 0x1000a228; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L433570;} -//nop; -//nop; -a0 = t3; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L433568; -//nop; -L433568: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L433570: -t4 = 0x10000410; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L4335a0;} -//nop; -//nop; -a0 = t4; -//nop; -v0 = wrapper_unlink(mem, a0); -goto L433598; -//nop; -L433598: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L4335a0: -t5 = 0x100002a8; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 == 0) {//nop; -goto L433608;} -//nop; -a0 = 0x1000a1f8; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4335cc; -//nop; -L4335cc: -// bdead 40000001 gp = MEM_U32(sp + 24); -at = 0x2; -t6 = 0x100002a8; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != at) {//nop; -goto L433608;} -//nop; -t7 = 0x1000a380; -//nop; -a0 = MEM_U32(t7 + 100); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L433600; -//nop; -L433600: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L433608: -t8 = 0x1000a36c; -at = 0x1; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L43363c;} -//nop; -t0 = 0x1000a380; -//nop; -a0 = MEM_U32(t0 + 132); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L433634; -//nop; -L433634: -// bdead 1 gp = MEM_U32(sp + 24); -//nop; -L43363c: -// bdead 1 ra = MEM_U32(sp + 28); -// bdead 1 sp = sp + 0x28; -//nop; -return; -//nop; -} - -static void f_whats(uint8_t *mem, uint32_t sp) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L43364c: -//whats: -//nop; -//nop; -//nop; -t6 = 0x10000404; -t7 = 0x1000a36c; -t6 = MEM_U32(t6 + 0); -t7 = MEM_U32(t7 + 0); -sp = sp + 0xffffffd8; -at = 0x2; -// fdead 4001800f MEM_U32(sp + 28) = ra; -// fdead 4001800f MEM_U32(sp + 24) = gp; -if (t7 != at) {MEM_U32(sp + 36) = t6; -goto L4336ac;} -MEM_U32(sp + 36) = t6; -a1 = 0x1000a31c; -a0 = 0x10006660; -a2 = 0x1000666c; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -a2 = a2; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_printf(mem, a0, sp); -goto L4336a0; -a2 = a2; -L4336a0: -// bdead 40000101 gp = MEM_U32(sp + 24); -//nop; -goto L4337e4; -//nop; -L4336ac: -t8 = 0x1000a36c; -at = 0x4; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L4336f0;} -//nop; -a1 = 0x1000a31c; -a0 = 0x10006670; -a2 = 0x1000667c; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -a2 = a2; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_printf(mem, a0, sp); -goto L4336e4; -a2 = a2; -L4336e4: -// bdead 40000101 gp = MEM_U32(sp + 24); -//nop; -goto L4337e4; -//nop; -L4336f0: -t9 = 0x1000a36c; -at = 0x3; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 != at) {//nop; -goto L433734;} -//nop; -a1 = 0x1000a31c; -a0 = 0x10006680; -a2 = 0x1000668c; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -a2 = a2; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_printf(mem, a0, sp); -goto L433728; -a2 = a2; -L433728: -// bdead 40000101 gp = MEM_U32(sp + 24); -//nop; -goto L4337e4; -//nop; -L433734: -t0 = 0x1000a36c; -at = 0x5; -t0 = MEM_U32(t0 + 0); -//nop; -if (t0 != at) {//nop; -goto L433778;} -//nop; -a1 = 0x1000a31c; -a0 = 0x10006690; -a2 = 0x1000669c; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -a2 = a2; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_printf(mem, a0, sp); -goto L43376c; -a2 = a2; -L43376c: -// bdead 40000101 gp = MEM_U32(sp + 24); -//nop; -goto L4337e4; -//nop; -L433778: -t1 = 0x1000a36c; -at = 0x6; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != at) {//nop; -goto L4337bc;} -//nop; -a1 = 0x1000a31c; -a0 = 0x100066a0; -a2 = 0x100066ac; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -a2 = a2; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_printf(mem, a0, sp); -goto L4337b0; -a2 = a2; -L4337b0: -// bdead 40000101 gp = MEM_U32(sp + 24); -//nop; -goto L4337e4; -//nop; -L4337bc: -a1 = 0x1000a31c; -a0 = 0x100066b4; -a2 = 0x100066c0; -//nop; -a1 = MEM_U32(a1 + 0); -a0 = a0; -a2 = a2; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_printf(mem, a0, sp); -goto L4337dc; -a2 = a2; -L4337dc: -// bdead 40000101 gp = MEM_U32(sp + 24); -//nop; -L4337e4: -a0 = 0x100066c4; -//nop; -a1 = 0x3; -a2 = 0x13; -a0 = a0; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_printf(mem, a0, sp); -goto L4337fc; -a0 = a0; -L4337fc: -// bdead 1 ra = MEM_U32(sp + 28); -// bdead 1 gp = MEM_U32(sp + 24); -// bdead 1 sp = sp + 0x28; -return; -// bdead 1 sp = sp + 0x28; -} - -static void f_settimes(uint8_t *mem, uint32_t sp) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L43380c: -//settimes: -//nop; -//nop; -//nop; -//nop; -sp = sp + 0xffffffe0; -// fdead 4000000b MEM_U32(sp + 28) = ra; -a0 = 0x10009c18; -// fdead 4000002b MEM_U32(sp + 24) = gp; -v0 = wrapper_times(mem, a0); -goto L433830; -// fdead 4000002b MEM_U32(sp + 24) = gp; -L433830: -// bdead 9 gp = MEM_U32(sp + 24); -// bdead 9 ra = MEM_U32(sp + 28); -at = 0x10009c10; -// bdead d sp = sp + 0x20; -MEM_U32(at + 0) = v0; -return; -MEM_U32(at + 0) = v0; -} - -static void f_dotime(uint8_t *mem, uint32_t sp) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L433848: -//dotime: -//nop; -//nop; -//nop; -//nop; -sp = sp + 0xffffff90; -// fdead 4000000b MEM_U32(sp + 60) = ra; -// fdead 4000000b MEM_U32(sp + 56) = gp; -a0 = sp + 0x40; -v0 = wrapper_times(mem, a0); -goto L43386c; -a0 = sp + 0x40; -L43386c: -// bdead 4000000b gp = MEM_U32(sp + 56); -t6 = MEM_U32(sp + 64); -t9 = 0x10009c18; -t7 = MEM_U32(sp + 72); -t1 = 0x10009c18; -t9 = MEM_U32(t9 + 0); -t1 = MEM_U32(t1 + 8); -t8 = t6 + t7; -t0 = t8 - t9; -t2 = t0 - t1; -t1 = 0x10009c10; -MEM_U32(sp + 108) = v0; -t0 = MEM_U32(sp + 108); -t1 = MEM_U32(t1 + 0); -f4.w[0] = t2; -t3 = MEM_U32(sp + 68); -t4 = MEM_U32(sp + 76); -at = 0x40590000; -t2 = t0 - t1; -MEM_U32(sp + 104) = t2; -t5 = t3 + t4; -f8.w[1] = at; -f4.w[1] = at; -t3 = MEM_U32(sp + 104); -at = 0x1770; -lo = (int)t3 / (int)at; hi = (int)t3 % (int)at; -t6 = 0x10009c18; -t8 = 0x10009c18; -t6 = MEM_U32(t6 + 4); -t8 = MEM_U32(t8 + 12); -t7 = t5 - t6; -t5 = MEM_U32(sp + 104); -t9 = t7 - t8; -f6.d = (int)f4.w[0]; -f16.w[0] = t9; -f8.w[0] = zero; -f18.d = (int)f16.w[0]; -f4.w[0] = zero; -t7 = MEM_U32(sp + 104); -f10.d = f6.d / f8.d; -//nop; -a0 = 0xfb528e4; -a1 = 0x100066e4; -a0 = a0 + 0x20; -a1 = a1; -f6.d = f18.d / f4.d; -f18.w[0] = zero; -t4 = lo; -MEM_U32(sp + 92) = f10.w[0]; -MEM_U32(sp + 88) = f10.w[1]; -lo = (int)t5 / (int)at; hi = (int)t5 % (int)at; -at = 0x40590000; -f18.w[1] = at; -a3 = f10.w[0]; -a2 = f10.w[1]; -MEM_U32(sp + 24) = t4; -MEM_U32(sp + 84) = f6.w[0]; -MEM_U32(sp + 80) = f6.w[1]; -MEM_U32(sp + 20) = f6.w[0]; -MEM_U32(sp + 16) = f6.w[1]; -t6 = hi; -f8.w[0] = t6; -//nop; -f16.d = (int)f8.w[0]; -//nop; -f4.d = f16.d / f18.d; -f16.w[0] = t7; -f8.d = f10.d + f6.d; -f16.w[1] = at; -f18.d = (int)f16.w[0]; -f16.w[0] = zero; -MEM_U32(sp + 36) = f4.w[0]; -MEM_U32(sp + 32) = f4.w[1]; -f4.w[1] = at; -f4.w[0] = zero; -//nop; -f10.d = f18.d / f4.d; -//nop; -f6.d = f8.d / f10.d; -f18.d = f6.d * f16.d; -MEM_U32(sp + 44) = f18.w[0]; -MEM_U32(sp + 40) = f18.w[1]; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L4339b8; -MEM_U32(sp + 40) = f18.w[1]; -L4339b8: -// bdead 1 ra = MEM_U32(sp + 60); -// bdead 1 gp = MEM_U32(sp + 56); -// bdead 1 sp = sp + 0x70; -return; -// bdead 1 sp = sp + 0x70; -} - -static uint32_t func_4339c8(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L4339c8: -//nop; -//nop; -//nop; -sp = sp + 0xffffffc8; -MEM_U32(sp + 60) = a1; -t6 = MEM_U32(sp + 60); -// fdead 4000806b MEM_U32(sp + 36) = ra; -// fdead 4000806b MEM_U32(sp + 32) = gp; -MEM_U32(sp + 56) = a0; -// fdead 4000806b MEM_U32(sp + 28) = s0; -t7 = MEM_U32(t6 + 0); -//nop; -if (t7 == 0) {//nop; -goto L433b48;} -//nop; -L433a00: -t8 = 0x1000a36c; -at = 0x1; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != at) {//nop; -goto L433ab4;} -//nop; -t9 = 0x10000008; -at = 0x2; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == at) {at = 0x3; -goto L433a38;} -at = 0x3; -if (t9 != at) {//nop; -goto L433ab4;} -//nop; -L433a38: -t0 = MEM_U32(sp + 60); -a2 = 0x10000428; -a1 = 0x10006704; -//nop; -a3 = MEM_U32(sp + 56); -a0 = MEM_U32(t0 + 0); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 16) = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L433a60; -a1 = a1; -L433a60: -// bdead 4000000b gp = MEM_U32(sp + 32); -s0 = v0; -//nop; -MEM_U32(sp + 48) = s0; -a0 = MEM_U32(sp + 48); -a1 = zero; -a2 = zero; -v0 = wrapper_open(mem, a0, a1, a2); -goto L433a80; -a2 = zero; -L433a80: -MEM_U32(sp + 52) = v0; -t1 = MEM_U32(sp + 52); -// bdead 40000403 gp = MEM_U32(sp + 32); -if ((int)t1 < 0) {//nop; -goto L433ab4;} -//nop; -//nop; -a0 = t1; -//nop; -v0 = wrapper_close(mem, a0); -goto L433aa4; -//nop; -L433aa4: -// bdead 40000001 gp = MEM_U32(sp + 32); -v0 = MEM_U32(sp + 48); -//nop; -goto L433c18; -//nop; -L433ab4: -t2 = MEM_U32(sp + 60); -a1 = 0x10000428; -//nop; -a2 = MEM_U32(sp + 56); -a0 = MEM_U32(t2 + 0); -a1 = MEM_U32(a1 + 0); -a3 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L433ad4; -a3 = zero; -L433ad4: -// bdead 4000000b gp = MEM_U32(sp + 32); -s0 = v0; -//nop; -MEM_U32(sp + 48) = s0; -a0 = MEM_U32(sp + 48); -a1 = zero; -a2 = zero; -v0 = wrapper_open(mem, a0, a1, a2); -goto L433af4; -a2 = zero; -L433af4: -MEM_U32(sp + 52) = v0; -t3 = MEM_U32(sp + 52); -// bdead 40001003 gp = MEM_U32(sp + 32); -if ((int)t3 < 0) {//nop; -goto L433b28;} -//nop; -//nop; -a0 = t3; -//nop; -v0 = wrapper_close(mem, a0); -goto L433b18; -//nop; -L433b18: -// bdead 40000001 gp = MEM_U32(sp + 32); -v0 = MEM_U32(sp + 48); -//nop; -goto L433c18; -//nop; -L433b28: -t4 = MEM_U32(sp + 60); -//nop; -t5 = t4 + 0x4; -MEM_U32(sp + 60) = t5; -t6 = MEM_U32(t5 + 0); -//nop; -if (t6 != 0) {//nop; -goto L433a00;} -//nop; -L433b48: -t7 = 0x1000037c; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L433b94;} -//nop; -a2 = 0x10000428; -a0 = 0x1000670c; -a1 = 0x10006710; -//nop; -a3 = MEM_U32(sp + 56); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 16) = zero; -a0 = a0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L433b88; -a1 = a1; -L433b88: -// bdead 40000009 gp = MEM_U32(sp + 32); -MEM_U32(sp + 48) = v0; -goto L433c10; -MEM_U32(sp + 48) = v0; -L433b94: -t8 = 0x10000324; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L433be0;} -//nop; -a2 = 0x10000428; -a0 = 0x1000671c; -a1 = 0x10006720; -//nop; -a3 = MEM_U32(sp + 56); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 16) = zero; -a0 = a0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L433bd4; -a1 = a1; -L433bd4: -// bdead 40000009 gp = MEM_U32(sp + 32); -MEM_U32(sp + 48) = v0; -goto L433c10; -MEM_U32(sp + 48) = v0; -L433be0: -a2 = 0x10000428; -a0 = 0x10006734; -a1 = 0x10006738; -//nop; -a3 = MEM_U32(sp + 56); -a2 = MEM_U32(a2 + 0); -MEM_U32(sp + 16) = zero; -a0 = a0; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L433c08; -a1 = a1; -L433c08: -// bdead 40000009 gp = MEM_U32(sp + 32); -MEM_U32(sp + 48) = v0; -L433c10: -v0 = MEM_U32(sp + 48); -//nop; -L433c18: -// bdead 9 ra = MEM_U32(sp + 36); -// bdead 9 s0 = MEM_U32(sp + 28); -// bdead 9 sp = sp + 0x38; -return v0; -// bdead 9 sp = sp + 0x38; -} - -static uint32_t f_isdir(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L433c28: -//isdir: -//nop; -//nop; -//nop; -sp = sp + 0xffffff50; -//nop; -MEM_U32(sp + 176) = a0; -// fdead 4000002b MEM_U32(sp + 28) = ra; -a0 = MEM_U32(sp + 176); -// fdead 4000002b MEM_U32(sp + 24) = gp; -a1 = sp + 0x24; -v0 = wrapper_stat(mem, a0, a1); -goto L433c54; -a1 = sp + 0x24; -L433c54: -MEM_U32(sp + 172) = v0; -t6 = MEM_U32(sp + 172); -// bdead 40008003 gp = MEM_U32(sp + 24); -at = 0xffffffff; -if (t6 != at) {//nop; -goto L433c74;} -//nop; -v0 = zero; -goto L433c94; -v0 = zero; -L433c74: -t7 = MEM_U32(sp + 56); -at = 0x4000; -t8 = t7 & 0xf000; -if (t8 != at) {//nop; -goto L433c90;} -//nop; -v0 = 0x1; -goto L433c94; -v0 = 0x1; -L433c90: -v0 = zero; -L433c94: -// bdead 9 ra = MEM_U32(sp + 28); -// bdead 9 sp = sp + 0xb0; -//nop; -return v0; -//nop; -} - -static uint32_t f_regular_not_writeable(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L433ca4: -//regular_not_writeable: -//nop; -//nop; -//nop; -sp = sp + 0xffffffd8; -//nop; -MEM_U32(sp + 40) = a0; -// fdead 4000002b MEM_U32(sp + 28) = ra; -a0 = MEM_U32(sp + 40); -// fdead 4000002b MEM_U32(sp + 24) = gp; -v0 = f_regular_file(mem, sp, a0); -goto L433ccc; -// fdead 4000002b MEM_U32(sp + 24) = gp; -L433ccc: -// bdead 4000000b gp = MEM_U32(sp + 24); -at = 0x1; -if (v0 == at) {//nop; -goto L433ce4;} -//nop; -v0 = zero; -goto L433d2c; -v0 = zero; -L433ce4: -//nop; -a0 = MEM_U32(sp + 40); -a1 = 0x2; -a2 = 0x1b6; -v0 = wrapper_open(mem, a0, a1, a2); -goto L433cf8; -a2 = 0x1b6; -L433cf8: -MEM_U32(sp + 36) = v0; -t6 = MEM_U32(sp + 36); -// bdead 40008003 gp = MEM_U32(sp + 24); -if ((int)t6 < 0) {//nop; -goto L433d28;} -//nop; -//nop; -a0 = t6; -//nop; -v0 = wrapper_close(mem, a0); -goto L433d1c; -//nop; -L433d1c: -// bdead 3 gp = MEM_U32(sp + 24); -v0 = zero; -goto L433d2c; -v0 = zero; -L433d28: -v0 = 0x1; -L433d2c: -// bdead 9 ra = MEM_U32(sp + 28); -// bdead 9 sp = sp + 0x28; -//nop; -return v0; -//nop; -} - -static uint32_t f_regular_file(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L433d3c: -//regular_file: -//nop; -//nop; -//nop; -sp = sp + 0xffffff50; -//nop; -MEM_U32(sp + 176) = a0; -// fdead 4000002b MEM_U32(sp + 28) = ra; -a0 = MEM_U32(sp + 176); -// fdead 4000002b MEM_U32(sp + 24) = gp; -a1 = sp + 0x24; -v0 = wrapper_stat(mem, a0, a1); -goto L433d68; -a1 = sp + 0x24; -L433d68: -MEM_U32(sp + 172) = v0; -t6 = MEM_U32(sp + 172); -// bdead 40008003 gp = MEM_U32(sp + 24); -at = 0xffffffff; -if (t6 != at) {//nop; -goto L433d88;} -//nop; -v0 = 0xffffffff; -goto L433da8; -v0 = 0xffffffff; -L433d88: -t7 = MEM_U32(sp + 56); -at = 0x8000; -t8 = t7 & 0xf000; -if (t8 == at) {//nop; -goto L433da4;} -//nop; -v0 = zero; -goto L433da8; -v0 = zero; -L433da4: -v0 = 0x1; -L433da8: -// bdead 9 ra = MEM_U32(sp + 28); -// bdead 9 sp = sp + 0xb0; -//nop; -return v0; -//nop; -} - -static uint32_t f_basename(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L433db8: -//basename: -//nop; -//nop; -//nop; -sp = sp + 0xffffffc8; -MEM_U32(sp + 56) = a0; -// fdead 4000002b MEM_U32(sp + 24) = s1; -s1 = 0x10009d28; -t6 = MEM_U32(sp + 56); -// fdead 4004802b MEM_U32(sp + 36) = ra; -// fdead 4004802b MEM_U32(sp + 32) = gp; -// fdead 4004802b MEM_U32(sp + 28) = s2; -// fdead 4004802b MEM_U32(sp + 20) = s0; -if (t6 == 0) {s1 = s1; -goto L433e00;} -s1 = s1; -t7 = MEM_U8(t6 + 0); -//nop; -if (t7 != 0) {//nop; -goto L433e24;} -//nop; -L433e00: -t8 = 0x10006740; -v0 = s1; -t8 = t8; -at = MEM_U8(t8 + 0); -//nop; -MEM_U8(v0 + 0) = (uint8_t)at; -t0 = MEM_U8(t8 + 1); -MEM_U8(v0 + 1) = (uint8_t)t0; -goto L433eb8; -MEM_U8(v0 + 1) = (uint8_t)t0; -L433e24: -//nop; -a1 = MEM_U32(sp + 56); -a0 = s1; -v0 = wrapper_strcpy(mem, a0, a1); -goto L433e34; -a0 = s1; -L433e34: -// bdead 4004000b gp = MEM_U32(sp + 32); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L433e4c; -//nop; -L433e4c: -s2 = v0; -s0 = s0 + s2; -// bdead 60003 gp = MEM_U32(sp + 32); -if (s0 == s1) {//nop; -goto L433e88;} -//nop; -t1 = MEM_U8(s0 + -1); -at = 0x2f; -if (t1 != at) {s0 = s0 + 0xffffffff; -goto L433e88;} -s0 = s0 + 0xffffffff; -L433e70: -if (s0 == s1) {MEM_U8(s0 + 0) = (uint8_t)zero; -goto L433e88;} -MEM_U8(s0 + 0) = (uint8_t)zero; -t2 = MEM_U8(s0 + -1); -at = 0x2f; -if (t2 == at) {s0 = s0 + 0xffffffff; -goto L433e70;} -s0 = s0 + 0xffffffff; -L433e88: -if (s0 == s1) {//nop; -goto L433eb4;} -//nop; -L433e90: -t3 = MEM_U8(s0 + -1); -at = 0x2f; -if (t3 != at) {s0 = s0 + 0xffffffff; -goto L433eac;} -s0 = s0 + 0xffffffff; -s0 = s0 + 0x1; -v0 = s0; -goto L433eb8; -v0 = s0; -L433eac: -if (s0 != s1) {//nop; -goto L433e90;} -//nop; -L433eb4: -v0 = s0; -L433eb8: -// bdead 9 ra = MEM_U32(sp + 36); -// bdead 9 s0 = MEM_U32(sp + 20); -// bdead 9 s1 = MEM_U32(sp + 24); -// bdead 9 s2 = MEM_U32(sp + 28); -// bdead 9 sp = sp + 0x38; -return v0; -// bdead 9 sp = sp + 0x38; -} - -static uint32_t f_dirname(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L433ed0: -//dirname: -//nop; -//nop; -//nop; -sp = sp + 0xffffffc8; -MEM_U32(sp + 56) = a0; -// fdead 4000002b MEM_U32(sp + 24) = s1; -s1 = 0x10009d28; -t6 = MEM_U32(sp + 56); -// fdead 4004802b MEM_U32(sp + 36) = ra; -// fdead 4004802b MEM_U32(sp + 32) = gp; -// fdead 4004802b MEM_U32(sp + 28) = s2; -// fdead 4004802b MEM_U32(sp + 20) = s0; -if (t6 == 0) {s1 = s1; -goto L433f18;} -s1 = s1; -t7 = MEM_U8(t6 + 0); -//nop; -if (t7 != 0) {//nop; -goto L433f3c;} -//nop; -L433f18: -t8 = 0x10006744; -v0 = s1; -t8 = t8; -at = MEM_U8(t8 + 0); -//nop; -MEM_U8(v0 + 0) = (uint8_t)at; -t0 = MEM_U8(t8 + 1); -MEM_U8(v0 + 1) = (uint8_t)t0; -goto L43407c; -MEM_U8(v0 + 1) = (uint8_t)t0; -L433f3c: -//nop; -a1 = MEM_U32(sp + 56); -a0 = s1; -v0 = wrapper_strcpy(mem, a0, a1); -goto L433f4c; -a0 = s1; -L433f4c: -// bdead 4004000b gp = MEM_U32(sp + 32); -s0 = v0; -//nop; -a0 = s0; -//nop; -v0 = wrapper_strlen(mem, a0); -goto L433f64; -//nop; -L433f64: -s2 = v0; -s0 = s0 + s2; -// bdead 60003 gp = MEM_U32(sp + 32); -if (s0 == s1) {//nop; -goto L433fa0;} -//nop; -t1 = MEM_U8(s0 + -1); -at = 0x2f; -if (t1 != at) {s0 = s0 + 0xffffffff; -goto L433fa0;} -s0 = s0 + 0xffffffff; -L433f88: -if (s0 == s1) {//nop; -goto L433fa0;} -//nop; -t2 = MEM_U8(s0 + -1); -at = 0x2f; -if (t2 == at) {s0 = s0 + 0xffffffff; -goto L433f88;} -s0 = s0 + 0xffffffff; -L433fa0: -if (s0 != s1) {//nop; -goto L433fdc;} -//nop; -t3 = MEM_U8(s0 + 0); -at = 0x2f; -if (t3 != at) {//nop; -goto L433fdc;} -//nop; -t4 = 0x10006748; -v0 = s1; -t4 = t4; -at = MEM_U8(t4 + 0); -//nop; -MEM_U8(v0 + 0) = (uint8_t)at; -t6 = MEM_U8(t4 + 1); -MEM_U8(v0 + 1) = (uint8_t)t6; -goto L43407c; -MEM_U8(v0 + 1) = (uint8_t)t6; -L433fdc: -if (s0 == s1) {//nop; -goto L434058;} -//nop; -L433fe4: -t7 = MEM_U8(s0 + -1); -at = 0x2f; -if (t7 != at) {s0 = s0 + 0xffffffff; -goto L434050;} -s0 = s0 + 0xffffffff; -if (s0 != s1) {//nop; -goto L434020;} -//nop; -t9 = 0x1000674c; -v0 = s1; -t9 = t9; -at = MEM_U8(t9 + 0); -//nop; -MEM_U8(v0 + 0) = (uint8_t)at; -t0 = MEM_U8(t9 + 1); -MEM_U8(v0 + 1) = (uint8_t)t0; -goto L43407c; -MEM_U8(v0 + 1) = (uint8_t)t0; -L434020: -t1 = MEM_U8(s0 + 0); -at = 0x2f; -if (t1 != at) {//nop; -goto L434040;} -//nop; -L434030: -t2 = MEM_U8(s0 + -1); -at = 0x2f; -if (t2 == at) {s0 = s0 + 0xffffffff; -goto L434030;} -s0 = s0 + 0xffffffff; -L434040: -s0 = s0 + 0x1; -MEM_U8(s0 + 0) = (uint8_t)zero; -v0 = s1; -goto L43407c; -v0 = s1; -L434050: -if (s0 != s1) {//nop; -goto L433fe4;} -//nop; -L434058: -t3 = 0x10006750; -v0 = s1; -t3 = t3; -at = MEM_U8(t3 + 0); -//nop; -MEM_U8(v0 + 0) = (uint8_t)at; -t4 = MEM_U8(t3 + 1); -//nop; -MEM_U8(v0 + 1) = (uint8_t)t4; -L43407c: -// bdead 9 ra = MEM_U32(sp + 36); -// bdead 9 s0 = MEM_U32(sp + 20); -// bdead 9 s1 = MEM_U32(sp + 24); -// bdead 9 s2 = MEM_U32(sp + 28); -// bdead 9 sp = sp + 0x38; -return v0; -// bdead 9 sp = sp + 0x38; -} - -static uint32_t func_434094(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L434094: -//nop; -//nop; -//nop; -sp = sp + 0xffffffd0; -MEM_U32(sp + 52) = a1; -t6 = MEM_U32(sp + 52); -// fdead 4000806b MEM_U32(sp + 28) = ra; -// fdead 4000806b MEM_U32(sp + 24) = gp; -if (t6 == 0) {MEM_U32(sp + 48) = a0; -goto L4340c8;} -MEM_U32(sp + 48) = a0; -t7 = MEM_U32(sp + 48); -MEM_U32(sp + 36) = t7; -goto L4340f4; -MEM_U32(sp + 36) = t7; -L4340c8: -//nop; -a0 = MEM_U32(sp + 48); -a1 = 0x2f; -v0 = wrapper_strrchr(mem, a0, a1); -goto L4340d8; -a1 = 0x2f; -L4340d8: -MEM_U32(sp + 36) = v0; -t8 = MEM_U32(sp + 36); -// bdead 42000003 gp = MEM_U32(sp + 24); -if (t8 == 0) {//nop; -goto L4340f4;} -//nop; -t9 = t8 + 0x1; -MEM_U32(sp + 36) = t9; -L4340f4: -t0 = 0x14; -MEM_U32(sp + 40) = t0; -MEM_U32(sp + 44) = zero; -L434100: -t1 = MEM_U32(sp + 52); -//nop; -if (t1 == 0) {//nop; -goto L434134;} -//nop; -t2 = MEM_U32(sp + 44); -t4 = 0x10000460; -t3 = t2 << 2; -t3 = t3 - t2; -t3 = t3 << 2; -t5 = t3 + t4; -t6 = MEM_U32(t5 + 4); -MEM_U32(sp + 32) = t6; -goto L434158; -MEM_U32(sp + 32) = t6; -L434134: -t7 = MEM_U32(sp + 44); -t9 = 0x10000460; -t8 = t7 << 2; -t8 = t8 - t7; -t8 = t8 << 2; -t0 = t8 + t9; -t1 = MEM_U32(t0 + 0); -//nop; -MEM_U32(sp + 32) = t1; -L434158: -//nop; -a0 = MEM_U32(sp + 36); -a1 = MEM_U32(sp + 32); -//nop; -v0 = wrapper_strcmp(mem, a0, a1); -goto L43416c; -//nop; -L43416c: -// bdead 4000000b gp = MEM_U32(sp + 24); -if (v0 != 0) {//nop; -goto L43419c;} -//nop; -t2 = MEM_U32(sp + 44); -t4 = 0x10000460; -t3 = t2 << 2; -t3 = t3 - t2; -t3 = t3 << 2; -t5 = t3 + t4; -v0 = MEM_U32(t5 + 8); -//nop; -goto L4341b8; -//nop; -L43419c: -t6 = MEM_U32(sp + 44); -t8 = MEM_U32(sp + 40); -t7 = t6 + 0x1; -at = (int)t7 < (int)t8; -if (at != 0) {MEM_U32(sp + 44) = t7; -goto L434100;} -MEM_U32(sp + 44) = t7; -v0 = zero; -L4341b8: -// bdead 9 ra = MEM_U32(sp + 28); -// bdead 9 sp = sp + 0x30; -//nop; -return v0; -//nop; -} - -static void f_add_cxx_symbol_options(uint8_t *mem, uint32_t sp) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L4341c8: -//add_cxx_symbol_options: -//nop; -//nop; -//nop; -a1 = 0x10006a24; -//nop; -sp = sp + 0xffffffe0; -// fdead 4000004b MEM_U32(sp + 28) = ra; -a0 = 0x1000a560; -// fdead 4000006b MEM_U32(sp + 24) = gp; -a1 = a1; -f_addstr(mem, sp, a0, a1); -goto L4341f4; -a1 = a1; -L4341f4: -// bdead 1 ra = MEM_U32(sp + 28); -// bdead 1 gp = MEM_U32(sp + 24); -// bdead 1 sp = sp + 0x20; -// bdead 1 v0 = zero; -return; -// bdead 1 v0 = zero; -} - -static void f_init_curr_dir(uint8_t *mem, uint32_t sp) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L434208: -//init_curr_dir: -//nop; -//nop; -//nop; -t6 = 0x10000558; -sp = sp + 0xffffffe0; -t6 = MEM_U32(t6 + 0); -// fdead 4000802b MEM_U32(sp + 28) = ra; -if (t6 != 0) {// fdead 4000802b MEM_U32(sp + 24) = gp; -goto L434290;} -// fdead 4000802b MEM_U32(sp + 24) = gp; -a0 = 0x1000a31c; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = 0x2f; -v0 = wrapper_strrchr(mem, a0, a1); -goto L434240; -a1 = 0x2f; -L434240: -// bdead 4000000b gp = MEM_U32(sp + 24); -//nop; -at = 0x10000558; -t7 = 0x10000558; -MEM_U32(at + 0) = v0; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 != 0) {//nop; -goto L434278;} -//nop; -t8 = 0x1000a31c; -at = 0x10000558; -t8 = MEM_U32(t8 + 0); -MEM_U32(at + 0) = t8; -goto L434290; -MEM_U32(at + 0) = t8; -L434278: -t9 = 0x10000558; -at = 0x10000558; -t9 = MEM_U32(t9 + 0); -//nop; -t0 = t9 + 0x1; -MEM_U32(at + 0) = t0; -L434290: -t1 = 0x10000438; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 != 0) {//nop; -goto L434350;} -//nop; -//nop; -a0 = zero; -a1 = 0x400; -v0 = wrapper_getcwd(mem, a0, a1); -goto L4342b8; -a1 = 0x400; -L4342b8: -// bdead 40000109 gp = MEM_U32(sp + 24); -//nop; -at = 0x10000438; -t2 = 0x10000438; -MEM_U32(at + 0) = v0; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L434350;} -//nop; -a2 = 0x10000558; -a0 = 0xfb528e4; -a1 = 0x10006a2c; -//nop; -a2 = MEM_U32(a2 + 0); -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L4342fc; -a1 = a1; -L4342fc: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -a0 = 0x10006a34; -//nop; -a0 = a0; -//nop; -wrapper_perror(mem, a0); -goto L434318; -//nop; -L434318: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -//nop; -//nop; -//nop; -f_cleanup(mem, sp); -goto L434330; -//nop; -L434330: -// bdead 40000001 gp = MEM_U32(sp + 24); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L434348; -//nop; -L434348: -// bdead 1 gp = MEM_U32(sp + 24); -//nop; -L434350: -// bdead 1 ra = MEM_U32(sp + 28); -// bdead 1 sp = sp + 0x20; -//nop; -return; -//nop; -} - -static uint32_t f_full_path(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L434360: -//full_path: -//nop; -//nop; -//nop; -//nop; -sp = sp + 0xffffffd8; -// fdead 4000002b MEM_U32(sp + 28) = ra; -// fdead 4000002b MEM_U32(sp + 24) = gp; -MEM_U32(sp + 40) = a0; -f_init_curr_dir(mem, sp); -goto L434384; -MEM_U32(sp + 40) = a0; -L434384: -t6 = MEM_U32(sp + 40); -// bdead 40008183 gp = MEM_U32(sp + 24); -t7 = MEM_U8(t6 + 0); -at = 0x2f; -if (t7 != at) {//nop; -goto L4343b8;} -//nop; -//nop; -a0 = t6; -a1 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4343ac; -a1 = zero; -L4343ac: -// bdead 40000009 gp = MEM_U32(sp + 24); -MEM_U32(sp + 36) = v0; -goto L4343e0; -MEM_U32(sp + 36) = v0; -L4343b8: -a0 = 0x10000438; -a1 = 0x10006a40; -//nop; -a2 = MEM_U32(sp + 40); -a0 = MEM_U32(a0 + 0); -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4343d8; -a1 = a1; -L4343d8: -// bdead 40000009 gp = MEM_U32(sp + 24); -MEM_U32(sp + 36) = v0; -L4343e0: -// bdead 40000001 ra = MEM_U32(sp + 28); -v0 = MEM_U32(sp + 36); -// bdead 9 sp = sp + 0x28; -return v0; -// bdead 9 sp = sp + 0x28; -} - -static void f_add_static_opt(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L4343f0: -//add_static_opt: -//nop; -//nop; -//nop; -t6 = 0x1000020c; -sp = sp + 0xffffffe0; -t6 = MEM_U32(t6 + 0); -// fdead 4000802b MEM_U32(sp + 28) = ra; -// fdead 4000802b MEM_U32(sp + 24) = gp; -if (t6 != 0) {MEM_U32(sp + 32) = a0; -goto L434434;} -MEM_U32(sp + 32) = a0; -//nop; -a0 = 0x1000a5f0; -a1 = MEM_U32(sp + 32); -//nop; -f_addstr(mem, sp, a0, a1); -goto L43442c; -//nop; -L43442c: -// bdead 1 gp = MEM_U32(sp + 24); -//nop; -L434434: -// bdead 1 ra = MEM_U32(sp + 28); -// bdead 1 sp = sp + 0x20; -//nop; -return; -//nop; -} - -static void f_record_static_fileset(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L434444: -//record_static_fileset: -//nop; -//nop; -//nop; -sp = sp + 0xffffd718; -//nop; -// fdead 4000002b MEM_U32(sp + 44) = ra; -// fdead 4000002b MEM_U32(sp + 40) = gp; -MEM_U32(sp + 10472) = a0; -// fdead 4000002b MEM_U32(sp + 36) = s0; -v0 = wrapper_getpid(); -goto L43446c; -// fdead 4000002b MEM_U32(sp + 36) = s0; -L43446c: -// bdead 4000010b gp = MEM_U32(sp + 40); -s0 = v0; -a1 = 0x10006a44; -//nop; -a2 = s0; -a0 = sp + 0xbc; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_sprintf(mem, a0, a1, sp); -goto L43448c; -a1 = a1; -L43448c: -// bdead 40000183 gp = MEM_U32(sp + 40); -//nop; -t6 = 0x10000204; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 != 0) {//nop; -goto L4344bc;} -//nop; -t7 = 0x10006a48; -at = 0x10000204; -t7 = t7; -MEM_U32(at + 0) = t7; -L4344bc: -t8 = 0x10000208; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 != 0) {//nop; -goto L4344fc;} -//nop; -a0 = 0x10006a4c; -//nop; -a1 = zero; -a0 = a0; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4344e8; -a0 = a0; -L4344e8: -// bdead 4000018b gp = MEM_U32(sp + 40); -//nop; -at = 0x10000208; -//nop; -MEM_U32(at + 0) = v0; -L4344fc: -t9 = 0x10000208; -at = 0x2f; -t9 = MEM_U32(t9 + 0); -//nop; -t0 = MEM_U8(t9 + 0); -//nop; -if (t0 == at) {//nop; -goto L43453c;} -//nop; -t1 = 0x10000204; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -t2 = MEM_U8(t1 + 0); -//nop; -if (t2 != 0) {//nop; -goto L434564;} -//nop; -L43453c: -a0 = 0x10000208; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L434550; -a1 = zero; -L434550: -// bdead 4000000b gp = MEM_U32(sp + 40); -//nop; -at = 0x10000550; -MEM_U32(at + 0) = v0; -goto L434594; -MEM_U32(at + 0) = v0; -L434564: -a0 = 0x10000204; -a1 = 0x10000208; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = MEM_U32(a1 + 0); -a2 = zero; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L434580; -a2 = zero; -L434580: -// bdead 4000000b gp = MEM_U32(sp + 40); -//nop; -at = 0x10000550; -//nop; -MEM_U32(at + 0) = v0; -L434594: -a0 = 0x1000a2fc; -a1 = 0x10006a60; -//nop; -a0 = MEM_U32(a0 + 0); -a2 = sp + 0xbc; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L4345b4; -a1 = a1; -L4345b4: -// bdead 4000000b gp = MEM_U32(sp + 40); -a0 = MEM_U32(sp + 10472); -at = 0x10000554; -//nop; -MEM_U32(at + 0) = v0; -//nop; -v0 = f_full_path(mem, sp, a0); -goto L4345d0; -//nop; -L4345d0: -// bdead 4000000b gp = MEM_U32(sp + 40); -MEM_U32(sp + 212) = v0; -//nop; -a0 = MEM_U32(sp + 212); -//nop; -v0 = wrapper_strlen(mem, a0); -goto L4345e8; -//nop; -L4345e8: -// bdead 4000000b gp = MEM_U32(sp + 40); -MEM_U32(sp + 208) = v0; -t3 = 0x10000234; -//nop; -t3 = MEM_U32(t3 + 0); -//nop; -if (t3 == 0) {//nop; -goto L4346c0;} -//nop; -a3 = 0x10000558; -a0 = 0xfb528e4; -a1 = 0x10006a74; -//nop; -a2 = MEM_U32(sp + 212); -a3 = MEM_U32(a3 + 0); -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L43462c; -a1 = a1; -L43462c: -// bdead 40000183 gp = MEM_U32(sp + 40); -MEM_U32(sp + 10468) = zero; -t4 = 0x1000a5f0; -//nop; -t4 = MEM_U32(t4 + 4); -//nop; -if ((int)t4 <= 0) {//nop; -goto L4346a0;} -//nop; -L43464c: -t5 = 0x1000a5f0; -t6 = MEM_U32(sp + 10468); -t5 = MEM_U32(t5 + 8); -t7 = t6 << 2; -a0 = 0xfb528e4; -a1 = 0x10006a8c; -//nop; -t8 = t5 + t7; -a2 = MEM_U32(t8 + 0); -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L43467c; -a1 = a1; -L43467c: -// bdead 40000183 gp = MEM_U32(sp + 40); -t9 = MEM_U32(sp + 10468); -t1 = 0x1000a5f0; -t0 = t9 + 0x1; -t1 = MEM_U32(t1 + 4); -MEM_U32(sp + 10468) = t0; -at = (int)t0 < (int)t1; -if (at != 0) {//nop; -goto L43464c;} -//nop; -L4346a0: -a0 = 0xfb528e4; -a1 = 0x10006a90; -//nop; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L4346b8; -a1 = a1; -L4346b8: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L4346c0: -a0 = 0x10000554; -a1 = 0x10006a94; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = a1; -v0 = wrapper_fopen(mem, a0, a1); -goto L4346d8; -a1 = a1; -L4346d8: -MEM_U32(sp + 10464) = v0; -t2 = MEM_U32(sp + 10464); -// bdead 40000803 gp = MEM_U32(sp + 40); -if (t2 != 0) {//nop; -goto L434778;} -//nop; -t4 = 0x10000554; -t3 = 0x10006ab0; -a3 = 0x10006a98; -//nop; -t4 = MEM_U32(t4 + 0); -t3 = t3; -MEM_U32(sp + 20) = t3; -a0 = 0x1; -a1 = zero; -a2 = zero; -MEM_U32(sp + 16) = zero; -a3 = a3; -MEM_U32(sp + 24) = t4; -f_error(mem, sp, a0, a1, a2, a3); -goto L434724; -MEM_U32(sp + 24) = t4; -L434724: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -a0 = 0x10000558; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -wrapper_perror(mem, a0); -goto L434740; -//nop; -L434740: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -//nop; -//nop; -//nop; -f_cleanup(mem, sp); -goto L434758; -//nop; -L434758: -// bdead 40000003 gp = MEM_U32(sp + 40); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L434770; -//nop; -L434770: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L434778: -a0 = 0x10000550; -//nop; -a0 = MEM_U32(a0 + 0); -a1 = 0x102; -a2 = 0x1b6; -v0 = wrapper_open(mem, a0, a1, a2); -goto L434790; -a2 = 0x1b6; -L434790: -MEM_U32(sp + 10456) = v0; -t6 = MEM_U32(sp + 10456); -// bdead 40008003 gp = MEM_U32(sp + 40); -if ((int)t6 >= 0) {//nop; -goto L43484c;} -//nop; -t7 = 0x10000550; -t5 = 0x10006af8; -a3 = 0x10006ae0; -//nop; -t7 = MEM_U32(t7 + 0); -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -MEM_U32(sp + 16) = zero; -a3 = a3; -MEM_U32(sp + 24) = t7; -f_error(mem, sp, a0, a1, a2, a3); -goto L4347dc; -MEM_U32(sp + 24) = t7; -L4347dc: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -a0 = 0x10000558; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -wrapper_perror(mem, a0); -goto L4347f8; -//nop; -L4347f8: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -a0 = 0x10000554; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L434814; -//nop; -L434814: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -//nop; -//nop; -//nop; -f_cleanup(mem, sp); -goto L43482c; -//nop; -L43482c: -// bdead 40000003 gp = MEM_U32(sp + 40); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L434844; -//nop; -L434844: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L43484c: -//nop; -a0 = MEM_U32(sp + 10456); -a1 = 0x2; -v0 = wrapper_flock(mem, a0, a1); -goto L43485c; -a1 = 0x2; -L43485c: -// bdead 4000000b gp = MEM_U32(sp + 40); -if ((int)v0 >= 0) {//nop; -goto L434910;} -//nop; -t9 = 0x10000550; -t8 = 0x10006b44; -t9 = MEM_U32(t9 + 0); -a3 = 0x10006b2c; -MEM_U32(sp + 24) = t9; -//nop; -t8 = t8; -MEM_U32(sp + 20) = t8; -a0 = 0x1; -a1 = zero; -a2 = zero; -MEM_U32(sp + 16) = zero; -a3 = a3; -f_error(mem, sp, a0, a1, a2, a3); -goto L4348a0; -a3 = a3; -L4348a0: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -a0 = 0x10000558; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -wrapper_perror(mem, a0); -goto L4348bc; -//nop; -L4348bc: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -a0 = 0x10000554; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L4348d8; -//nop; -L4348d8: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -//nop; -//nop; -//nop; -f_cleanup(mem, sp); -goto L4348f0; -//nop; -L4348f0: -// bdead 40000003 gp = MEM_U32(sp + 40); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L434908; -//nop; -L434908: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L434910: -//nop; -a0 = MEM_U32(sp + 10456); -a1 = sp + 0x34; -v0 = wrapper_fstat(mem, a0, a1); -goto L434920; -a1 = sp + 0x34; -L434920: -// bdead 4000018b gp = MEM_U32(sp + 40); -if ((int)v0 >= 0) {//nop; -goto L4349d4;} -//nop; -t1 = 0x10000550; -t0 = 0x10006b88; -a3 = 0x10006b70; -//nop; -t1 = MEM_U32(t1 + 0); -t0 = t0; -MEM_U32(sp + 20) = t0; -a0 = 0x1; -a1 = zero; -a2 = zero; -MEM_U32(sp + 16) = zero; -a3 = a3; -MEM_U32(sp + 24) = t1; -f_error(mem, sp, a0, a1, a2, a3); -goto L434964; -MEM_U32(sp + 24) = t1; -L434964: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -a0 = 0x10000558; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -wrapper_perror(mem, a0); -goto L434980; -//nop; -L434980: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -a0 = 0x10000554; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L43499c; -//nop; -L43499c: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -//nop; -//nop; -//nop; -f_cleanup(mem, sp); -goto L4349b4; -//nop; -L4349b4: -// bdead 40000003 gp = MEM_U32(sp + 40); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4349cc; -//nop; -L4349cc: -// bdead 40000183 gp = MEM_U32(sp + 40); -//nop; -L4349d4: -t2 = MEM_U32(sp + 100); -//nop; -if (t2 != 0) {//nop; -goto L434a00;} -//nop; -a1 = 0x10006bb4; -//nop; -a0 = MEM_U32(sp + 10464); -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L4349f8; -a1 = a1; -L4349f8: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L434a00: -a1 = 0x10006bc0; -//nop; -a0 = MEM_U32(sp + 10456); -a1 = a1; -v0 = wrapper_fdopen(mem, a0, a1); -goto L434a14; -a1 = a1; -L434a14: -MEM_U32(sp + 10460) = v0; -t3 = MEM_U32(sp + 10460); -// bdead 40001003 gp = MEM_U32(sp + 40); -if (t3 != 0) {//nop; -goto L434ad0;} -//nop; -t6 = 0x10000550; -t4 = 0x10006bdc; -a3 = 0x10006bc4; -//nop; -t6 = MEM_U32(t6 + 0); -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x1; -a1 = zero; -a2 = zero; -MEM_U32(sp + 16) = zero; -a3 = a3; -MEM_U32(sp + 24) = t6; -f_error(mem, sp, a0, a1, a2, a3); -goto L434a60; -MEM_U32(sp + 24) = t6; -L434a60: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -a0 = 0x10000558; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -wrapper_perror(mem, a0); -goto L434a7c; -//nop; -L434a7c: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -a0 = 0x10000554; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L434a98; -//nop; -L434a98: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -//nop; -//nop; -//nop; -f_cleanup(mem, sp); -goto L434ab0; -//nop; -L434ab0: -// bdead 40000003 gp = MEM_U32(sp + 40); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L434ac8; -//nop; -L434ac8: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L434ad0: -//nop; -a2 = MEM_U32(sp + 10460); -a0 = sp + 0xd8; -a1 = 0x2800; -v0 = wrapper_fgets(mem, a0, a1, a2); -goto L434ae4; -a1 = 0x2800; -L434ae4: -// bdead 4000000b gp = MEM_U32(sp + 40); -if (v0 == 0) {//nop; -goto L434b78;} -//nop; -L434af0: -//nop; -a1 = MEM_U32(sp + 212); -a2 = MEM_U32(sp + 208); -a0 = sp + 0xd8; -v0 = wrapper_strncmp(mem, a0, a1, a2); -goto L434b04; -a0 = sp + 0xd8; -L434b04: -// bdead 4000000b gp = MEM_U32(sp + 40); -if (v0 != 0) {//nop; -goto L434b40;} -//nop; -t5 = MEM_U32(sp + 208); -t7 = sp + 0xd8; -t8 = t5 + t7; -t9 = MEM_U8(t8 + 0); -t0 = 0xfb504f0; -//nop; -t1 = t9 + t0; -t2 = MEM_U8(t1 + 1); -//nop; -t3 = t2 & 0x8; -if (t3 != 0) {//nop; -goto L434b58;} -//nop; -L434b40: -//nop; -a1 = MEM_U32(sp + 10464); -a0 = sp + 0xd8; -v0 = wrapper_fputs(mem, a0, a1); -goto L434b50; -a0 = sp + 0xd8; -L434b50: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L434b58: -//nop; -a2 = MEM_U32(sp + 10460); -a0 = sp + 0xd8; -a1 = 0x2800; -v0 = wrapper_fgets(mem, a0, a1, a2); -goto L434b6c; -a1 = 0x2800; -L434b6c: -// bdead 4000000b gp = MEM_U32(sp + 40); -if (v0 != 0) {//nop; -goto L434af0;} -//nop; -L434b78: -a3 = 0x10000558; -a1 = 0x10006c08; -//nop; -a0 = MEM_U32(sp + 10464); -a2 = MEM_U32(sp + 212); -a3 = MEM_U32(a3 + 0); -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L434b98; -a1 = a1; -L434b98: -// bdead 40000183 gp = MEM_U32(sp + 40); -MEM_U32(sp + 10468) = zero; -t4 = 0x1000a5f0; -//nop; -t4 = MEM_U32(t4 + 4); -//nop; -if ((int)t4 <= 0) {//nop; -goto L434c08;} -//nop; -L434bb8: -t6 = 0x1000a5f0; -t5 = MEM_U32(sp + 10468); -t6 = MEM_U32(t6 + 8); -t7 = t5 << 2; -a1 = 0x10006c10; -//nop; -t8 = t6 + t7; -a2 = MEM_U32(t8 + 0); -a0 = MEM_U32(sp + 10464); -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L434be4; -a1 = a1; -L434be4: -// bdead 40000183 gp = MEM_U32(sp + 40); -t9 = MEM_U32(sp + 10468); -t1 = 0x1000a5f0; -t0 = t9 + 0x1; -t1 = MEM_U32(t1 + 4); -MEM_U32(sp + 10468) = t0; -at = (int)t0 < (int)t1; -if (at != 0) {//nop; -goto L434bb8;} -//nop; -L434c08: -a1 = 0x10006c14; -//nop; -a0 = MEM_U32(sp + 10464); -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L434c1c; -a1 = a1; -L434c1c: -// bdead 40000003 gp = MEM_U32(sp + 40); -a0 = MEM_U32(sp + 212); -//nop; -//nop; -//nop; -wrapper_free(mem, a0); -goto L434c34; -//nop; -L434c34: -// bdead 40000003 gp = MEM_U32(sp + 40); -a0 = MEM_U32(sp + 10460); -//nop; -//nop; -//nop; -v0 = wrapper_rewind(mem, a0); -goto L434c4c; -//nop; -L434c4c: -// bdead 40000003 gp = MEM_U32(sp + 40); -a0 = MEM_U32(sp + 10464); -//nop; -//nop; -//nop; -v0 = wrapper_rewind(mem, a0); -goto L434c64; -//nop; -L434c64: -// bdead 40000003 gp = MEM_U32(sp + 40); -t2 = MEM_U32(sp + 10460); -//nop; -a0 = MEM_U8(t2 + 13); -a1 = zero; -v0 = wrapper_ftruncate(mem, a0, a1); -goto L434c7c; -a1 = zero; -L434c7c: -// bdead 40000003 gp = MEM_U32(sp + 40); -a3 = MEM_U32(sp + 10464); -//nop; -a0 = sp + 0xd8; -a1 = 0x1; -a2 = 0x2800; -v0 = wrapper_fread(mem, a0, a1, a2, a3); -goto L434c98; -a2 = 0x2800; -L434c98: -MEM_U32(sp + 10468) = v0; -t3 = MEM_U32(sp + 10468); -// bdead 40001003 gp = MEM_U32(sp + 40); -if ((int)t3 <= 0) {//nop; -goto L434da8;} -//nop; -L434cac: -//nop; -a2 = MEM_U32(sp + 10468); -a3 = MEM_U32(sp + 10460); -a0 = sp + 0xd8; -a1 = 0x1; -v0 = wrapper_fwrite(mem, a0, a1, a2, a3); -goto L434cc4; -a1 = 0x1; -L434cc4: -t4 = MEM_U32(sp + 10468); -// bdead 4000200b gp = MEM_U32(sp + 40); -if (v0 == t4) {//nop; -goto L434d7c;} -//nop; -t6 = 0x10000550; -t5 = 0x10006c30; -a3 = 0x10006c18; -//nop; -t6 = MEM_U32(t6 + 0); -t5 = t5; -MEM_U32(sp + 20) = t5; -a0 = 0x1; -a1 = zero; -a2 = zero; -MEM_U32(sp + 16) = zero; -a3 = a3; -MEM_U32(sp + 24) = t6; -f_error(mem, sp, a0, a1, a2, a3); -goto L434d0c; -MEM_U32(sp + 24) = t6; -L434d0c: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -a0 = 0x10000558; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -wrapper_perror(mem, a0); -goto L434d28; -//nop; -L434d28: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -a0 = 0x10000554; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L434d44; -//nop; -L434d44: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -//nop; -//nop; -//nop; -f_cleanup(mem, sp); -goto L434d5c; -//nop; -L434d5c: -// bdead 40000003 gp = MEM_U32(sp + 40); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L434d74; -//nop; -L434d74: -// bdead 40000003 gp = MEM_U32(sp + 40); -//nop; -L434d7c: -//nop; -a3 = MEM_U32(sp + 10464); -a0 = sp + 0xd8; -a1 = 0x1; -a2 = 0x2800; -v0 = wrapper_fread(mem, a0, a1, a2, a3); -goto L434d94; -a2 = 0x2800; -L434d94: -MEM_U32(sp + 10468) = v0; -t7 = MEM_U32(sp + 10468); -// bdead 40010003 gp = MEM_U32(sp + 40); -if ((int)t7 > 0) {//nop; -goto L434cac;} -//nop; -L434da8: -//nop; -a0 = MEM_U32(sp + 10460); -//nop; -v0 = wrapper_fclose(mem, a0); -goto L434db8; -//nop; -L434db8: -// bdead 40000001 gp = MEM_U32(sp + 40); -a0 = MEM_U32(sp + 10464); -//nop; -//nop; -//nop; -v0 = wrapper_fclose(mem, a0); -goto L434dd0; -//nop; -L434dd0: -// bdead 40000001 gp = MEM_U32(sp + 40); -//nop; -a0 = 0x10000554; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_unlink(mem, a0); -goto L434dec; -//nop; -L434dec: -// bdead 40000001 gp = MEM_U32(sp + 40); -//nop; -a0 = 0x10000550; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -wrapper_free(mem, a0); -goto L434e08; -//nop; -L434e08: -// bdead 40000001 gp = MEM_U32(sp + 40); -//nop; -a0 = 0x10000554; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -wrapper_free(mem, a0); -goto L434e24; -//nop; -L434e24: -// bdead 1 ra = MEM_U32(sp + 44); -// bdead 1 gp = MEM_U32(sp + 40); -// bdead 1 s0 = MEM_U32(sp + 36); -// bdead 1 sp = sp + 0x28e8; -return; -// bdead 1 sp = sp + 0x28e8; -} - -static uint32_t f_touch(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L434e38: -//touch: -//nop; -//nop; -//nop; -sp = sp + 0xffffffc0; -//nop; -// fdead 4000002b MEM_U32(sp + 36) = ra; -MEM_U32(sp + 64) = a0; -// fdead 4000002b MEM_U32(sp + 32) = gp; -// fdead 4000002b MEM_U32(sp + 28) = s1; -// fdead 4000002b MEM_U32(sp + 24) = s0; -a0 = zero; -v0 = wrapper_time(mem, a0); -goto L434e68; -a0 = zero; -L434e68: -// bdead 4000000b gp = MEM_U32(sp + 32); -MEM_U32(sp + 60) = v0; -//nop; -//nop; -//nop; -f_init_curr_dir(mem, sp); -goto L434e80; -//nop; -L434e80: -// bdead 40000003 gp = MEM_U32(sp + 32); -//nop; -t6 = 0x10000234; -//nop; -t6 = MEM_U32(t6 + 0); -//nop; -if (t6 == 0) {//nop; -goto L434ecc;} -//nop; -a2 = 0x10000558; -a0 = 0xfb528e4; -a1 = 0x10006c5c; -//nop; -a3 = MEM_U32(sp + 64); -a2 = MEM_U32(a2 + 0); -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L434ec4; -a1 = a1; -L434ec4: -// bdead 40000003 gp = MEM_U32(sp + 32); -//nop; -L434ecc: -t7 = MEM_U32(sp + 60); -//nop; -a0 = MEM_U32(sp + 64); -a1 = sp + 0x34; -MEM_U32(sp + 56) = t7; -MEM_U32(sp + 52) = t7; -v0 = wrapper_utime(mem, a0, a1); -goto L434ee8; -MEM_U32(sp + 52) = t7; -L434ee8: -// bdead 4000000b gp = MEM_U32(sp + 32); -if ((int)v0 >= 0) {//nop; -goto L434f9c;} -//nop; -//nop; -a0 = MEM_U32(sp + 64); -//nop; -v0 = wrapper_strlen(mem, a0); -goto L434f04; -//nop; -L434f04: -// bdead 40000009 gp = MEM_U32(sp + 32); -s1 = v0; -a0 = 0x10000558; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -v0 = wrapper_strlen(mem, a0); -goto L434f20; -//nop; -L434f20: -// bdead 40040009 gp = MEM_U32(sp + 32); -s0 = v0; -//nop; -a0 = s0 + s1; -a0 = a0 + 0xa; -v0 = wrapper_malloc(mem, a0); -goto L434f38; -a0 = a0 + 0xa; -L434f38: -// bdead 40000009 gp = MEM_U32(sp + 32); -MEM_U32(sp + 48) = v0; -a2 = 0x10000558; -a1 = 0x10006c6c; -//nop; -a0 = MEM_U32(sp + 48); -a3 = MEM_U32(sp + 64); -a2 = MEM_U32(a2 + 0); -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_sprintf(mem, a0, a1, sp); -goto L434f60; -a1 = a1; -L434f60: -// bdead 40000001 gp = MEM_U32(sp + 32); -a0 = MEM_U32(sp + 48); -//nop; -//nop; -//nop; -wrapper_perror(mem, a0); -goto L434f78; -//nop; -L434f78: -// bdead 40000001 gp = MEM_U32(sp + 32); -a0 = MEM_U32(sp + 48); -//nop; -//nop; -//nop; -wrapper_free(mem, a0); -goto L434f90; -//nop; -L434f90: -// bdead 1 gp = MEM_U32(sp + 32); -v0 = 0xffffffff; -goto L434fa0; -v0 = 0xffffffff; -L434f9c: -v0 = zero; -L434fa0: -// bdead 9 ra = MEM_U32(sp + 36); -// bdead 9 s0 = MEM_U32(sp + 24); -// bdead 9 s1 = MEM_U32(sp + 28); -// bdead 9 sp = sp + 0x40; -return v0; -// bdead 9 sp = sp + 0x40; -} - -static void f_add_prelinker_objects(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L434fb4: -//add_prelinker_objects: -//nop; -//nop; -//nop; -sp = sp + 0xffffffd8; -MEM_U32(sp + 44) = a1; -t6 = MEM_U32(sp + 44); -// fdead 4000806b MEM_U32(sp + 28) = ra; -// fdead 4000806b MEM_U32(sp + 24) = gp; -MEM_U32(sp + 40) = a0; -MEM_U32(sp + 36) = zero; -t7 = MEM_U32(t6 + 4); -//nop; -if ((int)t7 <= 0) {//nop; -goto L4350a0;} -//nop; -L434fec: -t8 = MEM_U32(sp + 44); -t0 = MEM_U32(sp + 36); -t9 = MEM_U32(t8 + 8); -t1 = t0 << 2; -t2 = t9 + t1; -t3 = MEM_U32(t2 + 0); -at = 0x2d; -t4 = MEM_U8(t3 + 0); -//nop; -if (t4 != at) {//nop; -goto L43504c;} -//nop; -a1 = 0x10006c7c; -//nop; -a0 = t3; -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L43502c; -a1 = a1; -L43502c: -// bdead 40000009 gp = MEM_U32(sp + 24); -if (v0 != 0) {//nop; -goto L43507c;} -//nop; -t5 = MEM_U32(sp + 36); -//nop; -t6 = t5 + 0x1; -MEM_U32(sp + 36) = t6; -goto L43507c; -MEM_U32(sp + 36) = t6; -L43504c: -t7 = MEM_U32(sp + 44); -t0 = MEM_U32(sp + 36); -t8 = MEM_U32(t7 + 8); -t9 = t0 << 2; -t1 = t8 + t9; -//nop; -a1 = MEM_U32(t1 + 0); -a0 = MEM_U32(sp + 40); -//nop; -f_addstr(mem, sp, a0, a1); -goto L435074; -//nop; -L435074: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L43507c: -t2 = MEM_U32(sp + 36); -t3 = MEM_U32(sp + 44); -t4 = t2 + 0x1; -MEM_U32(sp + 36) = t4; -t5 = MEM_U32(t3 + 4); -//nop; -at = (int)t4 < (int)t5; -if (at != 0) {//nop; -goto L434fec;} -//nop; -L4350a0: -// bdead 1 ra = MEM_U32(sp + 28); -// bdead 1 sp = sp + 0x28; -//nop; -return; -//nop; -} - -static uint32_t f_quoted_length(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L4350b0: -//quoted_length: -//nop; -//nop; -//nop; -sp = sp + 0xfffffff0; -MEM_U32(sp + 12) = zero; -MEM_U32(a1 + 0) = zero; -t6 = MEM_U8(a0 + 0); -a0 = a0 + 0x1; -MEM_U8(sp + 11) = (uint8_t)t6; -a2 = MEM_U8(sp + 11); -//nop; -if (a2 == 0) {//nop; -goto L435218;} -//nop; -L4350e4: -t7 = MEM_U32(a1 + 0); -//nop; -if (t7 != 0) {//nop; -goto L4351b4;} -//nop; -t8 = MEM_U8(sp + 11); -at = 0x27; -if (t8 == at) {at = 0x7c; -goto L43519c;} -at = 0x7c; -if (t8 == at) {at = 0x26; -goto L43519c;} -at = 0x26; -if (t8 == at) {at = 0x2a; -goto L43519c;} -at = 0x2a; -if (t8 == at) {at = 0x3f; -goto L43519c;} -at = 0x3f; -if (t8 == at) {at = 0x5b; -goto L43519c;} -at = 0x5b; -if (t8 == at) {at = 0x5d; -goto L43519c;} -at = 0x5d; -if (t8 == at) {at = 0x3b; -goto L43519c;} -at = 0x3b; -if (t8 == at) {at = 0x21; -goto L43519c;} -at = 0x21; -if (t8 == at) {at = 0x28; -goto L43519c;} -at = 0x28; -if (t8 == at) {at = 0x29; -goto L43519c;} -at = 0x29; -if (t8 == at) {at = 0x5e; -goto L43519c;} -at = 0x5e; -if (t8 == at) {at = 0x3c; -goto L43519c;} -at = 0x3c; -if (t8 == at) {at = 0x3e; -goto L43519c;} -at = 0x3e; -if (t8 == at) {at = (int)t8 < (int)0x21; -goto L43519c;} -at = (int)t8 < (int)0x21; -if (at != 0) {at = 0x9; -goto L43519c;} -at = 0x9; -if (t8 == at) {at = 0x22; -goto L43519c;} -at = 0x22; -if (t8 == at) {at = 0x5c; -goto L43519c;} -at = 0x5c; -if (t8 == at) {at = 0x60; -goto L43519c;} -at = 0x60; -if (t8 == at) {at = 0x24; -goto L43519c;} -at = 0x24; -if (t8 != at) {//nop; -goto L4351b4;} -//nop; -L43519c: -t9 = 0x1; -MEM_U32(a1 + 0) = t9; -t0 = MEM_U32(sp + 12); -//nop; -t1 = t0 + 0x2; -MEM_U32(sp + 12) = t1; -L4351b4: -t2 = MEM_U8(sp + 11); -at = 0x22; -if (t2 == at) {at = 0x5c; -goto L4351dc;} -at = 0x5c; -if (t2 == at) {at = 0x60; -goto L4351dc;} -at = 0x60; -if (t2 == at) {at = 0x24; -goto L4351dc;} -at = 0x24; -if (t2 != at) {//nop; -goto L4351ec;} -//nop; -L4351dc: -t3 = MEM_U32(sp + 12); -//nop; -t4 = t3 + 0x1; -MEM_U32(sp + 12) = t4; -L4351ec: -t5 = MEM_U32(sp + 12); -a0 = a0 + 0x1; -t6 = t5 + 0x1; -MEM_U32(sp + 12) = t6; -t7 = MEM_U8(a0 + -1); -//nop; -MEM_U8(sp + 11) = (uint8_t)t7; -a2 = MEM_U8(sp + 11); -//nop; -if (a2 != 0) {//nop; -goto L4350e4;} -//nop; -L435218: -v0 = MEM_U32(sp + 12); -// bdead 9 sp = sp + 0x10; -return v0; -// bdead 9 sp = sp + 0x10; -} - -static uint32_t f_quote_shell_arg(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L435224: -//quote_shell_arg: -//nop; -//nop; -//nop; -sp = sp + 0xffffffd0; -//nop; -MEM_U32(sp + 48) = a0; -// fdead 4000006b MEM_U32(sp + 28) = ra; -MEM_U32(sp + 52) = a1; -a0 = MEM_U32(sp + 48); -// fdead 4000006b MEM_U32(sp + 24) = gp; -// fdead 4000006b MEM_U32(sp + 20) = s0; -MEM_U32(sp + 40) = zero; -a1 = sp + 0x28; -v0 = f_quoted_length(mem, sp, a0, a1); -goto L43525c; -a1 = sp + 0x28; -L43525c: -t6 = MEM_U32(sp + 40); -// bdead 40008009 gp = MEM_U32(sp + 24); -if (t6 == 0) {MEM_U32(sp + 36) = v0; -goto L435288;} -MEM_U32(sp + 36) = v0; -t8 = MEM_U32(sp + 52); -t7 = 0x22; -MEM_U8(t8 + 0) = (uint8_t)t7; -t9 = MEM_U32(sp + 52); -//nop; -t0 = t9 + 0x1; -MEM_U32(sp + 52) = t0; -L435288: -t1 = MEM_U32(sp + 48); -//nop; -t2 = MEM_U8(t1 + 0); -t3 = t1 + 0x1; -s0 = t2; -MEM_U32(sp + 48) = t3; -if (s0 == 0) {MEM_U8(sp + 47) = (uint8_t)t2; -goto L435324;} -MEM_U8(sp + 47) = (uint8_t)t2; -L4352a8: -t4 = MEM_U8(sp + 47); -at = 0x22; -if (t4 == at) {at = 0x5c; -goto L4352d0;} -at = 0x5c; -if (t4 == at) {at = 0x60; -goto L4352d0;} -at = 0x60; -if (t4 == at) {at = 0x24; -goto L4352d0;} -at = 0x24; -if (t4 != at) {//nop; -goto L4352ec;} -//nop; -L4352d0: -t6 = MEM_U32(sp + 52); -t5 = 0x5c; -MEM_U8(t6 + 0) = (uint8_t)t5; -t7 = MEM_U32(sp + 52); -//nop; -t8 = t7 + 0x1; -MEM_U32(sp + 52) = t8; -L4352ec: -t9 = MEM_U8(sp + 47); -t0 = MEM_U32(sp + 52); -//nop; -MEM_U8(t0 + 0) = (uint8_t)t9; -t2 = MEM_U32(sp + 52); -t3 = MEM_U32(sp + 48); -t1 = t2 + 0x1; -MEM_U32(sp + 52) = t1; -t4 = MEM_U8(t3 + 0); -t5 = t3 + 0x1; -s0 = t4; -MEM_U32(sp + 48) = t5; -if (s0 != 0) {MEM_U8(sp + 47) = (uint8_t)t4; -goto L4352a8;} -MEM_U8(sp + 47) = (uint8_t)t4; -L435324: -t6 = MEM_U32(sp + 40); -//nop; -if (t6 == 0) {//nop; -goto L435350;} -//nop; -t8 = MEM_U32(sp + 52); -t7 = 0x22; -MEM_U8(t8 + 0) = (uint8_t)t7; -t9 = MEM_U32(sp + 52); -//nop; -t0 = t9 + 0x1; -MEM_U32(sp + 52) = t0; -L435350: -// bdead 40000001 ra = MEM_U32(sp + 28); -v0 = MEM_U32(sp + 36); -// bdead 9 s0 = MEM_U32(sp + 20); -// bdead 9 sp = sp + 0x30; -return v0; -// bdead 9 sp = sp + 0x30; -} - -static void f_save_off_command_line(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L435364: -//save_off_command_line: -//nop; -//nop; -//nop; -sp = sp + 0xffffffc0; -MEM_U32(sp + 64) = a0; -t7 = MEM_U32(sp + 64); -t6 = 0x1; -at = (int)t7 < (int)0x2; -// fdead 4001806f MEM_U32(sp + 28) = ra; -// fdead 4001806f MEM_U32(sp + 24) = gp; -MEM_U32(sp + 68) = a1; -// fdead 4001806f MEM_U32(sp + 20) = s0; -MEM_U32(sp + 60) = zero; -MEM_U32(sp + 56) = zero; -MEM_U32(sp + 52) = zero; -if (at != 0) {MEM_U32(sp + 48) = t6; -goto L4354bc;} -MEM_U32(sp + 48) = t6; -L4353a8: -t9 = MEM_U32(sp + 48); -t8 = MEM_U32(sp + 68); -t0 = t9 << 2; -//nop; -a1 = 0x10006c80; -t1 = t8 + t0; -a0 = MEM_U32(t1 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L4353cc; -a1 = a1; -L4353cc: -// bdead 4000000b gp = MEM_U32(sp + 24); -if (v0 != 0) {//nop; -goto L43546c;} -//nop; -t3 = MEM_U32(sp + 64); -t2 = MEM_U32(sp + 48); -t4 = t3 + 0xffffffff; -at = (int)t2 < (int)t4; -if (at == 0) {//nop; -goto L43546c;} -//nop; -t5 = MEM_U32(sp + 68); -t6 = t2 << 2; -//nop; -t7 = t5 + t6; -a0 = MEM_U32(t7 + 0); -a1 = sp + 0x34; -v0 = f_quoted_length(mem, sp, a0, a1); -goto L43540c; -a1 = sp + 0x34; -L43540c: -t9 = MEM_U32(sp + 56); -t3 = MEM_U32(sp + 48); -s0 = v0; -// bdead 44021003 gp = MEM_U32(sp + 24); -t1 = MEM_U32(sp + 68); -t8 = t9 + s0; -t0 = t8 + 0x1; -t4 = t3 << 2; -//nop; -MEM_U32(sp + 56) = t0; -t2 = t1 + t4; -a0 = MEM_U32(t2 + 4); -a1 = sp + 0x34; -v0 = f_quoted_length(mem, sp, a0, a1); -goto L435444; -a1 = sp + 0x34; -L435444: -t5 = MEM_U32(sp + 56); -t9 = MEM_U32(sp + 48); -s0 = v0; -t6 = t5 + s0; -t7 = t6 + 0x1; -// bdead 44010003 gp = MEM_U32(sp + 24); -t8 = t9 + 0x1; -MEM_U32(sp + 56) = t7; -MEM_U32(sp + 48) = t8; -goto L4354a4; -MEM_U32(sp + 48) = t8; -L43546c: -t3 = MEM_U32(sp + 48); -t0 = MEM_U32(sp + 68); -t1 = t3 << 2; -//nop; -t4 = t0 + t1; -a0 = MEM_U32(t4 + 0); -a1 = sp + 0x34; -v0 = f_quoted_length(mem, sp, a0, a1); -goto L43548c; -a1 = sp + 0x34; -L43548c: -t2 = MEM_U32(sp + 60); -s0 = v0; -t5 = t2 + s0; -t6 = t5 + 0x1; -// bdead 40008003 gp = MEM_U32(sp + 24); -MEM_U32(sp + 60) = t6; -L4354a4: -t7 = MEM_U32(sp + 48); -t8 = MEM_U32(sp + 64); -t9 = t7 + 0x1; -at = (int)t9 < (int)t8; -if (at != 0) {MEM_U32(sp + 48) = t9; -goto L4353a8;} -MEM_U32(sp + 48) = t9; -L4354bc: -a0 = MEM_U32(sp + 60); -//nop; -a0 = a0 + 0x1; -//nop; -v0 = wrapper_malloc(mem, a0); -goto L4354d0; -//nop; -L4354d0: -// bdead 4000000b gp = MEM_U32(sp + 24); -MEM_U32(sp + 44) = v0; -t3 = MEM_U32(sp + 44); -t0 = MEM_U32(sp + 56); -at = 0x1000a48c; -if (t0 == 0) {MEM_U32(at + 0) = t3; -goto L435510;} -MEM_U32(at + 0) = t3; -//nop; -a0 = t0 + 0x1; -//nop; -v0 = wrapper_malloc(mem, a0); -goto L4354fc; -//nop; -L4354fc: -// bdead 4000000b gp = MEM_U32(sp + 24); -//nop; -at = 0x1000a49c; -//nop; -MEM_U32(at + 0) = v0; -L435510: -t4 = MEM_U32(sp + 64); -t1 = 0x1; -at = (int)t4 < (int)0x2; -if (at != 0) {MEM_U32(sp + 48) = t1; -goto L435688;} -MEM_U32(sp + 48) = t1; -L435524: -t5 = MEM_U32(sp + 48); -t2 = MEM_U32(sp + 68); -t6 = t5 << 2; -a1 = 0x10006c84; -//nop; -t7 = t2 + t6; -a0 = MEM_U32(t7 + 0); -a1 = a1; -v0 = wrapper_strcmp(mem, a0, a1); -goto L435548; -a1 = a1; -L435548: -// bdead 4000000b gp = MEM_U32(sp + 24); -if (v0 != 0) {//nop; -goto L435620;} -//nop; -t8 = MEM_U32(sp + 64); -t9 = MEM_U32(sp + 48); -t3 = t8 + 0xffffffff; -at = (int)t9 < (int)t3; -if (at == 0) {//nop; -goto L435620;} -//nop; -t0 = 0x1000a49c; -t1 = MEM_U32(sp + 68); -t0 = MEM_U32(t0 + 0); -t4 = t9 << 2; -//nop; -t5 = t1 + t4; -MEM_U32(sp + 40) = t0; -a0 = MEM_U32(t5 + 0); -a1 = t0; -v0 = f_quote_shell_arg(mem, sp, a0, a1); -goto L435594; -a1 = t0; -L435594: -t2 = MEM_U32(sp + 40); -s0 = v0; -t6 = t2 + s0; -// bdead 40008003 gp = MEM_U32(sp + 24); -MEM_U32(sp + 40) = t6; -t7 = 0x20; -MEM_U8(t6 + 0) = (uint8_t)t7; -t1 = MEM_U32(sp + 48); -t8 = MEM_U32(sp + 40); -t9 = MEM_U32(sp + 68); -t4 = t1 << 2; -t3 = t8 + 0x1; -t5 = t9 + t4; -//nop; -MEM_U32(sp + 40) = t3; -a0 = MEM_U32(t5 + 4); -a1 = t3; -v0 = f_quote_shell_arg(mem, sp, a0, a1); -goto L4355dc; -a1 = t3; -L4355dc: -t0 = MEM_U32(sp + 40); -s0 = v0; -t2 = t0 + s0; -MEM_U32(sp + 40) = t2; -// bdead 40000803 gp = MEM_U32(sp + 24); -t7 = 0x20; -MEM_U8(t2 + 0) = (uint8_t)t7; -t6 = MEM_U32(sp + 40); -//nop; -t8 = t6 + 0x1; -MEM_U32(sp + 40) = t8; -MEM_U8(t8 + 0) = (uint8_t)zero; -t1 = MEM_U32(sp + 48); -//nop; -t9 = t1 + 0x1; -MEM_U32(sp + 48) = t9; -goto L435670; -MEM_U32(sp + 48) = t9; -L435620: -t5 = MEM_U32(sp + 48); -t4 = MEM_U32(sp + 68); -t3 = t5 << 2; -//nop; -t0 = t4 + t3; -a0 = MEM_U32(t0 + 0); -a1 = MEM_U32(sp + 44); -//nop; -v0 = f_quote_shell_arg(mem, sp, a0, a1); -goto L435644; -//nop; -L435644: -t7 = MEM_U32(sp + 44); -s0 = v0; -t2 = t7 + s0; -MEM_U32(sp + 44) = t2; -// bdead 40000803 gp = MEM_U32(sp + 24); -t6 = 0x20; -MEM_U8(t2 + 0) = (uint8_t)t6; -t8 = MEM_U32(sp + 44); -//nop; -t1 = t8 + 0x1; -MEM_U32(sp + 44) = t1; -L435670: -t9 = MEM_U32(sp + 48); -t4 = MEM_U32(sp + 64); -t5 = t9 + 0x1; -at = (int)t5 < (int)t4; -if (at != 0) {MEM_U32(sp + 48) = t5; -goto L435524;} -MEM_U32(sp + 48) = t5; -L435688: -t3 = MEM_U32(sp + 44); -//nop; -MEM_U8(t3 + -1) = (uint8_t)zero; -// bdead 1 ra = MEM_U32(sp + 28); -// bdead 1 s0 = MEM_U32(sp + 20); -// bdead 1 sp = sp + 0x40; -return; -// bdead 1 sp = sp + 0x40; -} - -static void f_skip_old_ii_controls(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L4356a4: -//skip_old_ii_controls: -//nop; -//nop; -//nop; -sp = sp + 0xffffffa8; -t6 = 0xfb51f00; -// fdead 4000802b MEM_U32(sp + 52) = ra; -t6 = MEM_U32(t6 + 0); -// fdead 4000802b MEM_U32(sp + 48) = gp; -MEM_U32(sp + 88) = a0; -// fdead 4000802b MEM_U32(sp + 44) = s5; -// fdead 4000802b MEM_U32(sp + 40) = s4; -// fdead 4000802b MEM_U32(sp + 36) = s3; -// fdead 4000802b MEM_U32(sp + 32) = s2; -// fdead 4000802b MEM_U32(sp + 28) = s1; -// fdead 4000802b MEM_U32(sp + 24) = s0; -if (t6 == 0) {MEM_U32(sp + 80) = zero; -goto L435704;} -MEM_U32(sp + 80) = zero; -//nop; -a0 = MEM_U32(sp + 88); -//nop; -v0 = wrapper___semgetc(mem, a0); -goto L4356f8; -//nop; -L4356f8: -// bdead 40000009 gp = MEM_U32(sp + 48); -MEM_U32(sp + 84) = v0; -goto L435770; -MEM_U32(sp + 84) = v0; -L435704: -t7 = MEM_U32(sp + 88); -//nop; -t8 = MEM_U32(t7 + 0); -//nop; -t9 = t8 + 0xffffffff; -MEM_U32(t7 + 0) = t9; -t0 = MEM_U32(sp + 88); -//nop; -t1 = MEM_U32(t0 + 0); -//nop; -if ((int)t1 >= 0) {//nop; -goto L435750;} -//nop; -//nop; -a0 = t0; -//nop; -v0 = wrapper___filbuf(mem, a0); -goto L435744; -//nop; -L435744: -// bdead 40000009 gp = MEM_U32(sp + 48); -s0 = v0; -goto L43576c; -s0 = v0; -L435750: -t2 = MEM_U32(sp + 88); -//nop; -t3 = MEM_U32(t2 + 4); -t4 = MEM_U32(t2 + 4); -s0 = MEM_U8(t3 + 0); -t5 = t4 + 0x1; -MEM_U32(t2 + 4) = t5; -L43576c: -MEM_U32(sp + 84) = s0; -L435770: -t6 = MEM_U32(sp + 84); -at = 0xffffffff; -if (t6 == at) {//nop; -goto L435b54;} -//nop; -L435780: -t8 = MEM_U32(sp + 84); -at = 0x2d; -if (t8 != at) {//nop; -goto L4359b4;} -//nop; -t9 = 0xfb51f00; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L4357c4;} -//nop; -//nop; -a0 = MEM_U32(sp + 88); -//nop; -v0 = wrapper___semgetc(mem, a0); -goto L4357b8; -//nop; -L4357b8: -// bdead 40000009 gp = MEM_U32(sp + 48); -s0 = v0; -goto L435830; -s0 = v0; -L4357c4: -t7 = MEM_U32(sp + 88); -//nop; -t1 = MEM_U32(t7 + 0); -//nop; -t0 = t1 + 0xffffffff; -MEM_U32(t7 + 0) = t0; -t3 = MEM_U32(sp + 88); -//nop; -t4 = MEM_U32(t3 + 0); -//nop; -if ((int)t4 >= 0) {//nop; -goto L435810;} -//nop; -//nop; -a0 = t3; -//nop; -v0 = wrapper___filbuf(mem, a0); -goto L435804; -//nop; -L435804: -// bdead 40000009 gp = MEM_U32(sp + 48); -s1 = v0; -goto L43582c; -s1 = v0; -L435810: -t5 = MEM_U32(sp + 88); -//nop; -t2 = MEM_U32(t5 + 4); -t6 = MEM_U32(t5 + 4); -s1 = MEM_U8(t2 + 0); -t8 = t6 + 0x1; -MEM_U32(t5 + 4) = t8; -L43582c: -s0 = s1; -L435830: -MEM_U32(sp + 84) = s0; -t9 = MEM_U32(sp + 84); -at = 0x2d; -if (t9 != at) {//nop; -goto L4359b4;} -//nop; -t1 = 0xfb51f00; -//nop; -t1 = MEM_U32(t1 + 0); -//nop; -if (t1 == 0) {//nop; -goto L435878;} -//nop; -//nop; -a0 = MEM_U32(sp + 88); -//nop; -v0 = wrapper___semgetc(mem, a0); -goto L43586c; -//nop; -L43586c: -// bdead 40000009 gp = MEM_U32(sp + 48); -s2 = v0; -goto L4358e4; -s2 = v0; -L435878: -t0 = MEM_U32(sp + 88); -//nop; -t7 = MEM_U32(t0 + 0); -//nop; -t4 = t7 + 0xffffffff; -MEM_U32(t0 + 0) = t4; -t3 = MEM_U32(sp + 88); -//nop; -t2 = MEM_U32(t3 + 0); -//nop; -if ((int)t2 >= 0) {//nop; -goto L4358c4;} -//nop; -//nop; -a0 = t3; -//nop; -v0 = wrapper___filbuf(mem, a0); -goto L4358b8; -//nop; -L4358b8: -// bdead 40000009 gp = MEM_U32(sp + 48); -s3 = v0; -goto L4358e0; -s3 = v0; -L4358c4: -t6 = MEM_U32(sp + 88); -//nop; -t8 = MEM_U32(t6 + 4); -t5 = MEM_U32(t6 + 4); -s3 = MEM_U8(t8 + 0); -t9 = t5 + 0x1; -MEM_U32(t6 + 4) = t9; -L4358e0: -s2 = s3; -L4358e4: -MEM_U32(sp + 84) = s2; -t1 = MEM_U32(sp + 84); -at = 0x2d; -if (t1 != at) {//nop; -goto L4359b4;} -//nop; -t7 = 0xfb51f00; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L43592c;} -//nop; -//nop; -a0 = MEM_U32(sp + 88); -//nop; -v0 = wrapper___semgetc(mem, a0); -goto L435920; -//nop; -L435920: -// bdead 40000009 gp = MEM_U32(sp + 48); -s4 = v0; -goto L435998; -s4 = v0; -L43592c: -t4 = MEM_U32(sp + 88); -//nop; -t0 = MEM_U32(t4 + 0); -//nop; -t2 = t0 + 0xffffffff; -MEM_U32(t4 + 0) = t2; -t3 = MEM_U32(sp + 88); -//nop; -t8 = MEM_U32(t3 + 0); -//nop; -if ((int)t8 >= 0) {//nop; -goto L435978;} -//nop; -//nop; -a0 = t3; -//nop; -v0 = wrapper___filbuf(mem, a0); -goto L43596c; -//nop; -L43596c: -// bdead 40000009 gp = MEM_U32(sp + 48); -s5 = v0; -goto L435994; -s5 = v0; -L435978: -t5 = MEM_U32(sp + 88); -//nop; -t9 = MEM_U32(t5 + 4); -t6 = MEM_U32(t5 + 4); -s5 = MEM_U8(t9 + 0); -t1 = t6 + 0x1; -MEM_U32(t5 + 4) = t1; -L435994: -s4 = s5; -L435998: -MEM_U32(sp + 84) = s4; -t7 = MEM_U32(sp + 84); -at = 0x2d; -if (t7 != at) {//nop; -goto L4359b4;} -//nop; -t0 = 0x1; -MEM_U32(sp + 80) = t0; -L4359b4: -t2 = MEM_U32(sp + 84); -at = 0xa; -if (t2 == at) {at = 0xffffffff; -goto L435a84;} -at = 0xffffffff; -if (t2 == at) {//nop; -goto L435a84;} -//nop; -L4359cc: -t4 = 0xfb51f00; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L435a00;} -//nop; -//nop; -a0 = MEM_U32(sp + 88); -//nop; -v0 = wrapper___semgetc(mem, a0); -goto L4359f4; -//nop; -L4359f4: -// bdead 40000009 gp = MEM_U32(sp + 48); -MEM_U32(sp + 84) = v0; -goto L435a6c; -MEM_U32(sp + 84) = v0; -L435a00: -t8 = MEM_U32(sp + 88); -//nop; -t3 = MEM_U32(t8 + 0); -//nop; -t9 = t3 + 0xffffffff; -MEM_U32(t8 + 0) = t9; -t6 = MEM_U32(sp + 88); -//nop; -t1 = MEM_U32(t6 + 0); -//nop; -if ((int)t1 >= 0) {//nop; -goto L435a4c;} -//nop; -//nop; -a0 = t6; -//nop; -v0 = wrapper___filbuf(mem, a0); -goto L435a40; -//nop; -L435a40: -// bdead 40000009 gp = MEM_U32(sp + 48); -s0 = v0; -goto L435a68; -s0 = v0; -L435a4c: -t5 = MEM_U32(sp + 88); -//nop; -t7 = MEM_U32(t5 + 4); -t0 = MEM_U32(t5 + 4); -s0 = MEM_U8(t7 + 0); -t2 = t0 + 0x1; -MEM_U32(t5 + 4) = t2; -L435a68: -MEM_U32(sp + 84) = s0; -L435a6c: -t4 = MEM_U32(sp + 84); -at = 0xa; -if (t4 == at) {at = 0xffffffff; -goto L435a84;} -at = 0xffffffff; -if (t4 != at) {//nop; -goto L4359cc;} -//nop; -L435a84: -t3 = MEM_U32(sp + 80); -//nop; -if (t3 != 0) {//nop; -goto L435b54;} -//nop; -t9 = MEM_U32(sp + 84); -at = 0xa; -if (t9 != at) {//nop; -goto L435b44;} -//nop; -t8 = 0xfb51f00; -//nop; -t8 = MEM_U32(t8 + 0); -//nop; -if (t8 == 0) {//nop; -goto L435ad8;} -//nop; -//nop; -a0 = MEM_U32(sp + 88); -//nop; -v0 = wrapper___semgetc(mem, a0); -goto L435acc; -//nop; -L435acc: -// bdead 40000009 gp = MEM_U32(sp + 48); -MEM_U32(sp + 84) = v0; -goto L435b44; -MEM_U32(sp + 84) = v0; -L435ad8: -t1 = MEM_U32(sp + 88); -//nop; -t6 = MEM_U32(t1 + 0); -//nop; -t7 = t6 + 0xffffffff; -MEM_U32(t1 + 0) = t7; -t0 = MEM_U32(sp + 88); -//nop; -t2 = MEM_U32(t0 + 0); -//nop; -if ((int)t2 >= 0) {//nop; -goto L435b24;} -//nop; -//nop; -a0 = t0; -//nop; -v0 = wrapper___filbuf(mem, a0); -goto L435b18; -//nop; -L435b18: -// bdead 40000009 gp = MEM_U32(sp + 48); -s0 = v0; -goto L435b40; -s0 = v0; -L435b24: -t5 = MEM_U32(sp + 88); -//nop; -t4 = MEM_U32(t5 + 4); -t3 = MEM_U32(t5 + 4); -s0 = MEM_U8(t4 + 0); -t9 = t3 + 0x1; -MEM_U32(t5 + 4) = t9; -L435b40: -MEM_U32(sp + 84) = s0; -L435b44: -t8 = MEM_U32(sp + 84); -at = 0xffffffff; -if (t8 != at) {//nop; -goto L435780;} -//nop; -L435b54: -t6 = MEM_U32(sp + 84); -at = 0xffffffff; -if (t6 != at) {//nop; -goto L435b7c;} -//nop; -//nop; -a0 = MEM_U32(sp + 88); -//nop; -v0 = wrapper_rewind(mem, a0); -goto L435b74; -//nop; -L435b74: -// bdead 1 gp = MEM_U32(sp + 48); -//nop; -L435b7c: -// bdead 1 ra = MEM_U32(sp + 52); -// bdead 1 s0 = MEM_U32(sp + 24); -// bdead 1 s1 = MEM_U32(sp + 28); -// bdead 1 s2 = MEM_U32(sp + 32); -// bdead 1 s3 = MEM_U32(sp + 36); -// bdead 1 s4 = MEM_U32(sp + 40); -// bdead 1 s5 = MEM_U32(sp + 44); -// bdead 1 sp = sp + 0x58; -return; -// bdead 1 sp = sp + 0x58; -} - -static uint32_t f_make_ii_file_name(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L435ba0: -//make_ii_file_name: -//nop; -//nop; -//nop; -sp = sp + 0xffffffd0; -//nop; -MEM_U32(sp + 48) = a0; -// fdead 4000002b MEM_U32(sp + 28) = ra; -a0 = MEM_U32(sp + 48); -// fdead 4000002b MEM_U32(sp + 24) = gp; -// fdead 4000002b MEM_U32(sp + 20) = s0; -v0 = f_basename(mem, sp, a0); -goto L435bcc; -// fdead 4000002b MEM_U32(sp + 20) = s0; -L435bcc: -// bdead 4000000b gp = MEM_U32(sp + 24); -MEM_U32(sp + 44) = v0; -//nop; -a0 = MEM_U32(sp + 44); -//nop; -v0 = wrapper_strlen(mem, a0); -goto L435be4; -//nop; -L435be4: -// bdead 4000010b gp = MEM_U32(sp + 24); -a0 = MEM_U32(sp + 44); -a1 = 0x10006c88; -//nop; -MEM_U32(sp + 40) = v0; -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L435c04; -a1 = a1; -L435c04: -MEM_U32(sp + 44) = v0; -t7 = MEM_U32(sp + 44); -t6 = MEM_U32(sp + 40); -// bdead 40018003 gp = MEM_U32(sp + 24); -t8 = t6 + t7; -t9 = MEM_U8(t8 + -2); -at = 0x2e; -if (t9 != at) {//nop; -goto L435c68;} -//nop; -t0 = MEM_U8(t8 + -1); -at = 0x6f; -if (t0 != at) {//nop; -goto L435c68;} -//nop; -t1 = 0x10006c8c; -//nop; -t1 = t1; -at = MEM_U8(t1 + 0); -//nop; -MEM_U8(t8 + -1) = (uint8_t)at; -t3 = MEM_U8(t1 + 1); -//nop; -MEM_U8(t8 + 0) = (uint8_t)t3; -at = MEM_U8(t1 + 2); -MEM_U8(t8 + 1) = (uint8_t)at; -goto L435c8c; -MEM_U8(t8 + 1) = (uint8_t)at; -L435c68: -t7 = 0x10006c90; -t4 = MEM_U32(sp + 44); -t7 = t7; -t5 = MEM_U32(sp + 40); -at = t7 + 0; at = (MEM_U8(at) << 24) | (MEM_U8(at + 1) << 16) | (MEM_U8(at + 2) << 8) | MEM_U8(at + 3); -//lwr $at, 3($t7) -t6 = t4 + t5; -MEM_U8(t6 + 0 + 0) = (uint8_t)(at >> 24); -MEM_U8(t6 + 0 + 1) = (uint8_t)(at >> 16); -MEM_U8(t6 + 0 + 2) = (uint8_t)(at >> 8); -MEM_U8(t6 + 0 + 3) = (uint8_t)(at >> 0); -//swr $at, 3($t6) -L435c8c: -//nop; -a0 = MEM_U32(sp + 48); -//nop; -v0 = f_dirname(mem, sp, a0); -goto L435c9c; -//nop; -L435c9c: -// bdead 4000000b gp = MEM_U32(sp + 24); -s0 = v0; -a1 = 0x10006c94; -//nop; -a2 = MEM_U32(sp + 44); -a0 = s0; -a3 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L435cc0; -a1 = a1; -L435cc0: -// bdead 9 ra = MEM_U32(sp + 28); -// bdead 9 gp = MEM_U32(sp + 24); -// bdead 9 s0 = MEM_U32(sp + 20); -// bdead 9 sp = sp + 0x30; -return v0; -// bdead 9 sp = sp + 0x30; -} - -static void f_update_instantiation_info_file(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L435cd4: -//update_instantiation_info_file: -//nop; -//nop; -//nop; -sp = sp + 0xffffffa8; -//nop; -MEM_U32(sp + 88) = a0; -// fdead 4000002b MEM_U32(sp + 52) = ra; -a0 = MEM_U32(sp + 88); -// fdead 4000002b MEM_U32(sp + 48) = gp; -// fdead 4000002b MEM_U32(sp + 44) = s1; -// fdead 4000002b MEM_U32(sp + 40) = s0; -v0 = f_make_ii_file_name(mem, sp, a0); -goto L435d04; -// fdead 4000002b MEM_U32(sp + 40) = s0; -L435d04: -// bdead 4000010b gp = MEM_U32(sp + 48); -MEM_U32(sp + 84) = v0; -a1 = 0x10006ca0; -//nop; -a0 = MEM_U32(sp + 84); -a2 = zero; -a1 = a1; -v0 = f_mkstr(mem, sp, a0, a1, a2, a3); -goto L435d24; -a1 = a1; -L435d24: -// bdead 4000000b gp = MEM_U32(sp + 48); -a0 = MEM_U32(sp + 84); -a1 = 0x10006ca8; -//nop; -MEM_U32(sp + 80) = v0; -a1 = a1; -v0 = wrapper_fopen(mem, a0, a1); -goto L435d40; -a1 = a1; -L435d40: -MEM_U32(sp + 76) = v0; -t6 = MEM_U32(sp + 76); -// bdead 40008003 gp = MEM_U32(sp + 48); -if (t6 == 0) {//nop; -goto L43628c;} -//nop; -//nop; -//nop; -//nop; -f_init_curr_dir(mem, sp); -goto L435d64; -//nop; -L435d64: -// bdead 40000003 gp = MEM_U32(sp + 48); -//nop; -t7 = 0x10000234; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L435db0;} -//nop; -a2 = 0x10000558; -a0 = 0xfb528e4; -a1 = 0x10006cac; -//nop; -a3 = MEM_U32(sp + 84); -a2 = MEM_U32(a2 + 0); -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L435da8; -a1 = a1; -L435da8: -// bdead 40000003 gp = MEM_U32(sp + 48); -//nop; -L435db0: -a1 = 0x10006cd4; -//nop; -a0 = MEM_U32(sp + 80); -a1 = a1; -v0 = wrapper_fopen(mem, a0, a1); -goto L435dc4; -a1 = a1; -L435dc4: -MEM_U32(sp + 72) = v0; -t8 = MEM_U32(sp + 72); -// bdead 42000003 gp = MEM_U32(sp + 48); -if (t8 != 0) {//nop; -goto L435e60;} -//nop; -t9 = 0x10006cf8; -a3 = 0x10006cd8; -t9 = t9; -MEM_U32(sp + 20) = t9; -//nop; -t0 = MEM_U32(sp + 80); -a0 = 0x1; -a1 = zero; -a2 = zero; -MEM_U32(sp + 16) = zero; -a3 = a3; -MEM_U32(sp + 24) = t0; -f_error(mem, sp, a0, a1, a2, a3); -goto L435e0c; -MEM_U32(sp + 24) = t0; -L435e0c: -// bdead 40000003 gp = MEM_U32(sp + 48); -//nop; -a0 = 0x10000558; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -wrapper_perror(mem, a0); -goto L435e28; -//nop; -L435e28: -// bdead 40000003 gp = MEM_U32(sp + 48); -//nop; -//nop; -//nop; -//nop; -f_cleanup(mem, sp); -goto L435e40; -//nop; -L435e40: -// bdead 40000003 gp = MEM_U32(sp + 48); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L435e58; -//nop; -L435e58: -// bdead 40000003 gp = MEM_U32(sp + 48); -//nop; -L435e60: -//nop; -a0 = MEM_U32(sp + 76); -//nop; -f_skip_old_ii_controls(mem, sp, a0); -goto L435e70; -//nop; -L435e70: -// bdead 40000003 gp = MEM_U32(sp + 48); -at = 0x1; -t1 = 0x1000a520; -//nop; -t1 = MEM_U32(t1 + 4); -//nop; -if (t1 != at) {//nop; -goto L435eb4;} -//nop; -t2 = 0x10000228; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 != 0) {//nop; -goto L435eb4;} -//nop; -s1 = 0x10006d28; -s1 = s1; -goto L435ec0; -s1 = s1; -L435eb4: -s1 = 0x10006d2c; -//nop; -s1 = s1; -L435ec0: -t3 = 0x1000a520; -at = 0x1; -t3 = MEM_U32(t3 + 4); -//nop; -if (t3 != at) {//nop; -goto L435ef0;} -//nop; -t4 = 0x10000228; -//nop; -t4 = MEM_U32(t4 + 0); -//nop; -if (t4 == 0) {//nop; -goto L435f08;} -//nop; -L435ef0: -t5 = 0x1000a49c; -//nop; -t5 = MEM_U32(t5 + 0); -//nop; -if (t5 != 0) {//nop; -goto L435f14;} -//nop; -L435f08: -s0 = 0x10006d30; -s0 = s0; -goto L435f24; -s0 = s0; -L435f14: -s0 = 0x1000a49c; -//nop; -s0 = MEM_U32(s0 + 0); -//nop; -L435f24: -t6 = 0x1000a48c; -a2 = 0x1000a31c; -a1 = 0x10006d14; -//nop; -t6 = MEM_U32(t6 + 0); -a0 = MEM_U32(sp + 72); -a2 = MEM_U32(a2 + 0); -a3 = s1; -MEM_U32(sp + 16) = s0; -a1 = a1; -MEM_U32(sp + 20) = t6; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L435f54; -MEM_U32(sp + 20) = t6; -L435f54: -// bdead 40000103 gp = MEM_U32(sp + 48); -a0 = MEM_U32(sp + 72); -a2 = 0x10000438; -a1 = 0x10006d34; -//nop; -a2 = MEM_U32(a2 + 0); -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L435f74; -a1 = a1; -L435f74: -// bdead 40000183 gp = MEM_U32(sp + 48); -a0 = MEM_U32(sp + 72); -a1 = 0x10006d3c; -//nop; -a1 = a1; -//nop; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L435f90; -//nop; -L435f90: -// bdead 40000003 gp = MEM_U32(sp + 48); -//nop; -t7 = 0xfb51f00; -//nop; -t7 = MEM_U32(t7 + 0); -//nop; -if (t7 == 0) {//nop; -goto L435fcc;} -//nop; -//nop; -a0 = MEM_U32(sp + 76); -//nop; -v0 = wrapper___semgetc(mem, a0); -goto L435fc0; -//nop; -L435fc0: -// bdead 4000000b gp = MEM_U32(sp + 48); -s0 = v0; -goto L436038; -s0 = v0; -L435fcc: -t8 = MEM_U32(sp + 76); -//nop; -t9 = MEM_U32(t8 + 0); -//nop; -t0 = t9 + 0xffffffff; -MEM_U32(t8 + 0) = t0; -t1 = MEM_U32(sp + 76); -//nop; -t2 = MEM_U32(t1 + 0); -//nop; -if ((int)t2 >= 0) {//nop; -goto L436018;} -//nop; -//nop; -a0 = t1; -//nop; -v0 = wrapper___filbuf(mem, a0); -goto L43600c; -//nop; -L43600c: -// bdead 4000000b gp = MEM_U32(sp + 48); -s1 = v0; -goto L436034; -s1 = v0; -L436018: -t3 = MEM_U32(sp + 76); -//nop; -t4 = MEM_U32(t3 + 4); -t5 = MEM_U32(t3 + 4); -s1 = MEM_U8(t4 + 0); -t6 = t5 + 0x1; -MEM_U32(t3 + 4) = t6; -L436034: -s0 = s1; -L436038: -MEM_U32(sp + 68) = s0; -t7 = MEM_U32(sp + 68); -at = 0xffffffff; -if (t7 == at) {//nop; -goto L4361b0;} -//nop; -L43604c: -t9 = 0xfb51f00; -//nop; -t9 = MEM_U32(t9 + 0); -//nop; -if (t9 == 0) {//nop; -goto L436084;} -//nop; -//nop; -a0 = MEM_U32(sp + 68); -a1 = MEM_U32(sp + 72); -//nop; -v0 = wrapper___semputc(mem, a0, a1); -goto L436078; -//nop; -L436078: -// bdead 40000003 gp = MEM_U32(sp + 48); -//nop; -goto L4360fc; -//nop; -L436084: -t0 = MEM_U32(sp + 72); -//nop; -t8 = MEM_U32(t0 + 0); -//nop; -t2 = t8 + 0xffffffff; -MEM_U32(t0 + 0) = t2; -t1 = MEM_U32(sp + 72); -//nop; -t4 = MEM_U32(t1 + 0); -//nop; -if ((int)t4 >= 0) {//nop; -goto L4360d0;} -//nop; -//nop; -a0 = MEM_U32(sp + 68); -a1 = t1; -v0 = wrapper___flsbuf(mem, a0, a1); -goto L4360c4; -a1 = t1; -L4360c4: -// bdead 40000003 gp = MEM_U32(sp + 48); -//nop; -goto L4360fc; -//nop; -L4360d0: -t6 = MEM_U32(sp + 72); -t5 = MEM_U32(sp + 68); -t3 = MEM_U32(t6 + 4); -//nop; -MEM_U8(t3 + 0) = (uint8_t)t5; -t7 = MEM_U32(sp + 72); -//nop; -t9 = MEM_U32(t7 + 4); -//nop; -t8 = t9 + 0x1; -MEM_U32(t7 + 4) = t8; -L4360fc: -t2 = 0xfb51f00; -//nop; -t2 = MEM_U32(t2 + 0); -//nop; -if (t2 == 0) {//nop; -goto L436130;} -//nop; -//nop; -a0 = MEM_U32(sp + 76); -//nop; -v0 = wrapper___semgetc(mem, a0); -goto L436124; -//nop; -L436124: -// bdead 4000000b gp = MEM_U32(sp + 48); -s0 = v0; -goto L43619c; -s0 = v0; -L436130: -t0 = MEM_U32(sp + 76); -//nop; -t4 = MEM_U32(t0 + 0); -//nop; -t1 = t4 + 0xffffffff; -MEM_U32(t0 + 0) = t1; -t6 = MEM_U32(sp + 76); -//nop; -t5 = MEM_U32(t6 + 0); -//nop; -if ((int)t5 >= 0) {//nop; -goto L43617c;} -//nop; -//nop; -a0 = t6; -//nop; -v0 = wrapper___filbuf(mem, a0); -goto L436170; -//nop; -L436170: -// bdead 4000000b gp = MEM_U32(sp + 48); -s1 = v0; -goto L436198; -s1 = v0; -L43617c: -t3 = MEM_U32(sp + 76); -//nop; -t9 = MEM_U32(t3 + 4); -t8 = MEM_U32(t3 + 4); -s1 = MEM_U8(t9 + 0); -t7 = t8 + 0x1; -MEM_U32(t3 + 4) = t7; -L436198: -s0 = s1; -L43619c: -MEM_U32(sp + 68) = s0; -t2 = MEM_U32(sp + 68); -at = 0xffffffff; -if (t2 != at) {//nop; -goto L43604c;} -//nop; -L4361b0: -//nop; -a0 = MEM_U32(sp + 76); -//nop; -v0 = wrapper_fclose(mem, a0); -goto L4361c0; -//nop; -L4361c0: -// bdead 40000003 gp = MEM_U32(sp + 48); -a0 = MEM_U32(sp + 72); -//nop; -//nop; -//nop; -v0 = wrapper_fclose(mem, a0); -goto L4361d8; -//nop; -L4361d8: -// bdead 40000003 gp = MEM_U32(sp + 48); -a0 = MEM_U32(sp + 80); -//nop; -a1 = MEM_U32(sp + 84); -//nop; -v0 = wrapper_rename(mem, a0, a1); -goto L4361f0; -//nop; -L4361f0: -// bdead 4000000b gp = MEM_U32(sp + 48); -if ((int)v0 >= 0) {//nop; -goto L43628c;} -//nop; -t4 = 0x10006d64; -a3 = 0x10006d44; -t1 = MEM_U32(sp + 80); -t0 = MEM_U32(sp + 84); -//nop; -t4 = t4; -MEM_U32(sp + 20) = t4; -a0 = 0x1; -a1 = zero; -a2 = zero; -MEM_U32(sp + 16) = zero; -a3 = a3; -MEM_U32(sp + 24) = t1; -MEM_U32(sp + 28) = t0; -f_error(mem, sp, a0, a1, a2, a3); -goto L436238; -MEM_U32(sp + 28) = t0; -L436238: -// bdead 40000001 gp = MEM_U32(sp + 48); -//nop; -a0 = 0x10000558; -//nop; -a0 = MEM_U32(a0 + 0); -//nop; -wrapper_perror(mem, a0); -goto L436254; -//nop; -L436254: -// bdead 40000001 gp = MEM_U32(sp + 48); -//nop; -//nop; -//nop; -//nop; -f_cleanup(mem, sp); -goto L43626c; -//nop; -L43626c: -// bdead 40000001 gp = MEM_U32(sp + 48); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L436284; -//nop; -L436284: -// bdead 40000001 gp = MEM_U32(sp + 48); -//nop; -L43628c: -//nop; -a0 = MEM_U32(sp + 84); -//nop; -wrapper_free(mem, a0); -goto L43629c; -//nop; -L43629c: -// bdead 40000001 gp = MEM_U32(sp + 48); -a0 = MEM_U32(sp + 80); -//nop; -//nop; -//nop; -wrapper_free(mem, a0); -goto L4362b4; -//nop; -L4362b4: -// bdead 1 ra = MEM_U32(sp + 52); -// bdead 1 gp = MEM_U32(sp + 48); -// bdead 1 s0 = MEM_U32(sp + 40); -// bdead 1 s1 = MEM_U32(sp + 44); -// bdead 1 sp = sp + 0x58; -return; -// bdead 1 sp = sp + 0x58; -} - -static uint32_t func_4362cc(uint8_t *mem, uint32_t sp, uint32_t a0) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L4362cc: -//nop; -//nop; -//nop; -sp = sp + 0xfffffd60; -a1 = 0x10006d80; -//nop; -MEM_U32(sp + 672) = a0; -// fdead 4000006b MEM_U32(sp + 28) = ra; -a2 = MEM_U32(sp + 672); -// fdead 400000eb MEM_U32(sp + 24) = gp; -// fdead 400000eb MEM_U32(sp + 20) = s0; -MEM_U32(sp + 100) = zero; -a0 = sp + 0x288; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_sprintf(mem, a0, a1, sp); -goto L436308; -a1 = a1; -L436308: -// bdead 40000083 gp = MEM_U32(sp + 24); -a0 = sp + 0x288; -//nop; -a1 = 0x402; -//nop; -v0 = wrapper_open(mem, a0, a1, a2); -goto L436320; -//nop; -L436320: -MEM_U32(sp + 668) = v0; -t6 = MEM_U32(sp + 668); -// bdead 40008103 gp = MEM_U32(sp + 24); -at = 0xffffffff; -if (t6 != at) {//nop; -goto L436384;} -//nop; -a0 = 0x10006d8c; -//nop; -a0 = a0; -//nop; -wrapper_perror(mem, a0); -goto L43634c; -//nop; -L43634c: -// bdead 40000003 gp = MEM_U32(sp + 24); -a0 = MEM_U32(sp + 672); -//nop; -a1 = 0x9; -//nop; -v0 = wrapper_kill(mem, a0, a1); -goto L436364; -//nop; -L436364: -// bdead 40000003 gp = MEM_U32(sp + 24); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L43637c; -//nop; -L43637c: -// bdead 40000103 gp = MEM_U32(sp + 24); -//nop; -L436384: -s0 = 0x10; -if (s0 == 0) {//nop; -goto L4363a8;} -//nop; -L436390: -s0 = s0 + 0xffffffff; -t7 = s0 << 2; -t8 = sp + 0x24; -t9 = t7 + t8; -if (s0 != 0) {MEM_U32(t9 + 0) = zero; -goto L436390;} -MEM_U32(t9 + 0) = zero; -L4363a8: -t0 = sp + 0x24; -t1 = MEM_U32(t0 + 0); -a1 = 0x7112; -t2 = t1 | 0x2; -MEM_U32(t0 + 0) = t2; -//nop; -a0 = MEM_U32(sp + 668); -a2 = sp + 0x24; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_ioctl(mem, a0, a1, sp); -goto L4363cc; -a2 = sp + 0x24; -L4363cc: -// bdead 40000009 gp = MEM_U32(sp + 24); -if ((int)v0 >= 0) {//nop; -goto L436424;} -//nop; -a0 = 0x10006d9c; -//nop; -a0 = a0; -//nop; -wrapper_perror(mem, a0); -goto L4363ec; -//nop; -L4363ec: -// bdead 40000001 gp = MEM_U32(sp + 24); -a0 = MEM_U32(sp + 672); -//nop; -a1 = 0x9; -//nop; -v0 = wrapper_kill(mem, a0, a1); -goto L436404; -//nop; -L436404: -// bdead 40000001 gp = MEM_U32(sp + 24); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L43641c; -//nop; -L43641c: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L436424: -//nop; -//nop; -// fdead 6002000f t9 = t9; -//nop; -func_436680(mem, sp); -goto L436438; -//nop; -L436438: -// bdead 40000101 gp = MEM_U32(sp + 24); -a0 = MEM_U32(sp + 668); -//nop; -a1 = 0x7103; -a2 = sp + 0x68; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_ioctl(mem, a0, a1, sp); -goto L436450; -a2 = sp + 0x68; -L436450: -// bdead 40000009 gp = MEM_U32(sp + 24); -if ((int)v0 >= 0) {//nop; -goto L4364a8;} -//nop; -a0 = 0x10006da8; -//nop; -a0 = a0; -//nop; -wrapper_perror(mem, a0); -goto L436470; -//nop; -L436470: -// bdead 40000001 gp = MEM_U32(sp + 24); -a0 = MEM_U32(sp + 672); -//nop; -a1 = 0x9; -//nop; -v0 = wrapper_kill(mem, a0, a1); -goto L436488; -//nop; -L436488: -// bdead 40000001 gp = MEM_U32(sp + 24); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4364a0; -//nop; -L4364a0: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L4364a8: -t3 = MEM_S16(sp + 108); -at = 0x3; -if (t3 == at) {//nop; -goto L436504;} -//nop; -a0 = 0x10006db4; -//nop; -a0 = a0; -//nop; -wrapper_perror(mem, a0); -goto L4364cc; -//nop; -L4364cc: -// bdead 40000001 gp = MEM_U32(sp + 24); -a0 = MEM_U32(sp + 672); -//nop; -a1 = 0x9; -//nop; -v0 = wrapper_kill(mem, a0, a1); -goto L4364e4; -//nop; -L4364e4: -// bdead 40000001 gp = MEM_U32(sp + 24); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L4364fc; -//nop; -L4364fc: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L436504: -t4 = MEM_S16(sp + 110); -at = 0x2; -if (t4 == at) {//nop; -goto L436560;} -//nop; -a0 = 0x10006dd0; -//nop; -a0 = a0; -//nop; -wrapper_perror(mem, a0); -goto L436528; -//nop; -L436528: -// bdead 40000001 gp = MEM_U32(sp + 24); -a0 = MEM_U32(sp + 672); -//nop; -a1 = 0x9; -//nop; -v0 = wrapper_kill(mem, a0, a1); -goto L436540; -//nop; -L436540: -// bdead 40000001 gp = MEM_U32(sp + 24); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L436558; -//nop; -L436558: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L436560: -t5 = MEM_U32(sp + 328); -//nop; -if (t5 == 0) {//nop; -goto L4365a4;} -//nop; -a0 = 0x10006df4; -//nop; -a0 = a0; -//nop; -wrapper_perror(mem, a0); -goto L436584; -//nop; -L436584: -// bdead 40000001 gp = MEM_U32(sp + 24); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L43659c; -//nop; -L43659c: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L4365a4: -// bdead 40000001 ra = MEM_U32(sp + 28); -v0 = MEM_U32(sp + 668); -// bdead 9 s0 = MEM_U32(sp + 20); -// bdead 9 sp = sp + 0x2a0; -return v0; -// bdead 9 sp = sp + 0x2a0; -} - -static void func_4365b8(uint8_t *mem, uint32_t sp) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L4365b8: -//nop; -//nop; -//nop; -t6 = 0x1000a458; -sp = sp + 0xffffffd8; -//nop; -// fdead 4000800b MEM_U32(sp + 28) = ra; -// fdead 4000800b MEM_U32(sp + 24) = gp; -t6 = t6; -a0 = MEM_U32(t6 + 4); -//nop; -v0 = wrapper_close(mem, a0); -goto L4365e8; -//nop; -L4365e8: -// bdead 40000003 gp = MEM_U32(sp + 24); -a1 = sp + 0x27; -t7 = 0x1000a458; -//nop; -t7 = t7; -a0 = MEM_U32(t7 + 0); -a2 = 0x1; -v0 = wrapper_read(mem, a0, a1, a2); -goto L436608; -a2 = 0x1; -L436608: -t8 = v0 ^ 0x1; -t8 = zero < t8; -MEM_U32(sp + 32) = t8; -t9 = MEM_U32(sp + 32); -// bdead 44000001 gp = MEM_U32(sp + 24); -if (t9 == 0) {//nop; -goto L436658;} -//nop; -a0 = 0x10006e08; -//nop; -a0 = a0; -//nop; -wrapper_perror(mem, a0); -goto L436638; -//nop; -L436638: -// bdead 40000001 gp = MEM_U32(sp + 24); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L436650; -//nop; -L436650: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L436658: -t0 = 0x1000a458; -//nop; -t0 = t0; -a0 = MEM_U32(t0 + 0); -//nop; -v0 = wrapper_close(mem, a0); -goto L436670; -//nop; -L436670: -// bdead 1 ra = MEM_U32(sp + 28); -// bdead 1 gp = MEM_U32(sp + 24); -// bdead 1 sp = sp + 0x28; -return; -// bdead 1 sp = sp + 0x28; -} - -static void func_436680(uint8_t *mem, uint32_t sp) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L436680: -//nop; -//nop; -//nop; -t6 = 0x1000a458; -sp = sp + 0xffffffd8; -//nop; -// fdead 4000800b MEM_U32(sp + 28) = ra; -// fdead 4000800b MEM_U32(sp + 24) = gp; -t6 = t6; -a0 = MEM_U32(t6 + 0); -//nop; -v0 = wrapper_close(mem, a0); -goto L4366b0; -//nop; -L4366b0: -// bdead 40000001 gp = MEM_U32(sp + 24); -a1 = sp + 0x27; -t7 = 0x1000a458; -//nop; -t7 = t7; -a0 = MEM_U32(t7 + 4); -a2 = 0x1; -v0 = wrapper_write(mem, a0, a1, a2); -goto L4366d0; -a2 = 0x1; -L4366d0: -// bdead 40000009 gp = MEM_U32(sp + 24); -at = 0x1; -if (v0 == at) {//nop; -goto L436714;} -//nop; -a0 = 0x10006e1c; -//nop; -a0 = a0; -//nop; -wrapper_perror(mem, a0); -goto L4366f4; -//nop; -L4366f4: -// bdead 40000001 gp = MEM_U32(sp + 24); -a0 = 0x1; -//nop; -//nop; -//nop; -wrapper_exit(mem, a0); -goto L43670c; -//nop; -L43670c: -// bdead 40000001 gp = MEM_U32(sp + 24); -//nop; -L436714: -t8 = 0x1000a458; -//nop; -t8 = t8; -a0 = MEM_U32(t8 + 4); -//nop; -v0 = wrapper_close(mem, a0); -goto L43672c; -//nop; -L43672c: -// bdead 1 ra = MEM_U32(sp + 28); -// bdead 1 gp = MEM_U32(sp + 24); -// bdead 1 sp = sp + 0x28; -return; -// bdead 1 sp = sp + 0x28; -} - -static void func_43673c(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L43673c: -//nop; -//nop; -//nop; -sp = sp + 0xffffff88; -t6 = 0x10000380; -//nop; -t6 = MEM_U32(t6 + 0); -at = 0x1; -// fdead 4000806f MEM_U32(sp + 60) = ra; -t7 = (int)at < (int)t6; -// fdead 4001806f MEM_U32(sp + 56) = gp; -MEM_U32(sp + 120) = a0; -MEM_U32(sp + 124) = a1; -MEM_U32(sp + 68) = t7; -MEM_U32(sp + 72) = zero; -MEM_U32(sp + 76) = zero; -MEM_U32(sp + 80) = zero; -MEM_U32(sp + 84) = zero; -MEM_U32(sp + 88) = zero; -MEM_U32(sp + 92) = zero; -MEM_U32(sp + 96) = zero; -MEM_U32(sp + 100) = zero; -v0 = wrapper_getpagesize(mem); -goto L436798; -MEM_U32(sp + 100) = zero; -L436798: -t8 = MEM_U32(sp + 124); -// bdead 4200010b gp = MEM_U32(sp + 56); -MEM_U32(sp + 104) = v0; -if ((int)t8 <= 0) {MEM_U32(sp + 116) = zero; -goto L436d14;} -MEM_U32(sp + 116) = zero; -L4367ac: -t9 = MEM_U32(sp + 116); -t1 = 0x10008310; -t0 = t9 << 6; -t1 = t1; -MEM_U32(sp + 112) = zero; -t2 = t0 + t1; -t3 = MEM_U32(t2 + 12); -at = 0x80d; -t4 = t3 & 0xffff; -if (t4 != at) {MEM_U32(sp + 108) = t4; -goto L4367fc;} -MEM_U32(sp + 108) = t4; -t5 = MEM_U32(t2 + 16); -t6 = MEM_U32(sp + 104); -t8 = MEM_U32(sp + 100); -lo = t5 * t6; -hi = (uint32_t)((uint64_t)t5 * (uint64_t)t6 >> 32); -t0 = 0x1; -MEM_U32(sp + 112) = t0; -t7 = lo; -t9 = t8 + t7; -MEM_U32(sp + 100) = t9; -L4367fc: -t1 = MEM_U32(sp + 108); -at = 0xd; -if (t1 != at) {//nop; -goto L436844;} -//nop; -t3 = MEM_U32(sp + 116); -t2 = 0x10008310; -t4 = t3 << 6; -t2 = t2; -t5 = t4 + t2; -t6 = MEM_U32(t5 + 16); -t8 = MEM_U32(sp + 104); -t9 = MEM_U32(sp + 84); -lo = t6 * t8; -hi = (uint32_t)((uint64_t)t6 * (uint64_t)t8 >> 32); -t1 = 0x1; -MEM_U32(sp + 112) = t1; -t7 = lo; -t0 = t9 + t7; -MEM_U32(sp + 84) = t0; -L436844: -t3 = MEM_U32(sp + 108); -at = 0x2003; -if (t3 != at) {//nop; -goto L4368a0;} -//nop; -t4 = MEM_U32(sp + 116); -t5 = 0x10008310; -t2 = t4 << 6; -t5 = t5; -t6 = t2 + t5; -t8 = MEM_U32(t6 + 0); -at = 0x10000000; -at = t8 < at; -if (at == 0) {//nop; -goto L4368a0;} -//nop; -t9 = MEM_U32(t6 + 16); -t7 = MEM_U32(sp + 104); -t1 = MEM_U32(sp + 80); -lo = t9 * t7; -hi = (uint32_t)((uint64_t)t9 * (uint64_t)t7 >> 32); -t4 = 0x1; -MEM_U32(sp + 112) = t4; -t0 = lo; -t3 = t1 + t0; -MEM_U32(sp + 80) = t3; -L4368a0: -t2 = MEM_U32(sp + 108); -at = 0x3; -if (t2 == at) {at = 0x1; -goto L4368c8;} -at = 0x1; -if (t2 == at) {at = 0xb; -goto L4368c8;} -at = 0xb; -if (t2 == at) {at = 0x9; -goto L4368c8;} -at = 0x9; -if (t2 != at) {//nop; -goto L436914;} -//nop; -L4368c8: -t5 = MEM_U32(sp + 116); -t6 = 0x10008310; -t8 = t5 << 6; -t6 = t6; -t9 = t8 + t6; -t7 = MEM_U32(t9 + 0); -at = 0x10000000; -at = t7 < at; -if (at == 0) {//nop; -goto L436914;} -//nop; -t1 = MEM_U32(t9 + 16); -t0 = MEM_U32(sp + 104); -t4 = MEM_U32(sp + 72); -lo = t1 * t0; -hi = (uint32_t)((uint64_t)t1 * (uint64_t)t0 >> 32); -t5 = 0x1; -MEM_U32(sp + 112) = t5; -t3 = lo; -t2 = t4 + t3; -MEM_U32(sp + 72) = t2; -L436914: -t8 = MEM_U32(sp + 108); -at = 0xfffff7ff; -t6 = t8 & at; -at = 0x2003; -if (t6 != at) {MEM_U32(sp + 108) = t6; -goto L436978;} -MEM_U32(sp + 108) = t6; -t7 = MEM_U32(sp + 116); -t1 = 0x10008310; -t9 = t7 << 6; -t1 = t1; -t0 = t9 + t1; -t4 = MEM_U32(t0 + 0); -at = 0x10000000; -at = t4 < at; -if (at != 0) {//nop; -goto L436978;} -//nop; -t3 = MEM_U32(t0 + 16); -t2 = MEM_U32(sp + 104); -t8 = MEM_U32(sp + 96); -lo = t3 * t2; -hi = (uint32_t)((uint64_t)t3 * (uint64_t)t2 >> 32); -t7 = 0x1; -MEM_U32(sp + 112) = t7; -t5 = lo; -t6 = t8 + t5; -MEM_U32(sp + 96) = t6; -L436978: -t9 = MEM_U32(sp + 108); -at = 0x2013; -if (t9 != at) {//nop; -goto L4369d4;} -//nop; -t1 = MEM_U32(sp + 116); -t0 = 0x10008310; -t4 = t1 << 6; -t0 = t0; -t3 = t4 + t0; -t2 = MEM_U32(t3 + 0); -at = 0x10000000; -at = t2 < at; -if (at != 0) {//nop; -goto L4369d4;} -//nop; -t8 = MEM_U32(t3 + 16); -t5 = MEM_U32(sp + 104); -t7 = MEM_U32(sp + 92); -lo = t8 * t5; -hi = (uint32_t)((uint64_t)t8 * (uint64_t)t5 >> 32); -t1 = 0x1; -MEM_U32(sp + 112) = t1; -t6 = lo; -t9 = t7 + t6; -MEM_U32(sp + 92) = t9; -L4369d4: -t4 = MEM_U32(sp + 108); -at = 0x23; -if (t4 != at) {//nop; -goto L436a1c;} -//nop; -t0 = MEM_U32(sp + 116); -t3 = 0x10008310; -t2 = t0 << 6; -t3 = t3; -t8 = t2 + t3; -t5 = MEM_U32(t8 + 16); -t7 = MEM_U32(sp + 104); -t9 = MEM_U32(sp + 88); -lo = t5 * t7; -hi = (uint32_t)((uint64_t)t5 * (uint64_t)t7 >> 32); -t4 = 0x1; -MEM_U32(sp + 112) = t4; -t6 = lo; -t1 = t9 + t6; -MEM_U32(sp + 88) = t1; -L436a1c: -t0 = MEM_U32(sp + 112); -//nop; -if (t0 != 0) {//nop; -goto L436a50;} -//nop; -a0 = 0xfb528e4; -a1 = 0x10006e34; -//nop; -a2 = MEM_U32(sp + 116); -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436a48; -a1 = a1; -L436a48: -// bdead 40000103 gp = MEM_U32(sp + 56); -//nop; -L436a50: -t2 = MEM_U32(sp + 68); -//nop; -if (t2 != 0) {//nop; -goto L436a70;} -//nop; -t3 = MEM_U32(sp + 112); -//nop; -if (t3 != 0) {//nop; -goto L436cfc;} -//nop; -L436a70: -t8 = MEM_U32(sp + 116); -t7 = 0x10008310; -t5 = t8 << 6; -t7 = t7; -t9 = t5 + t7; -a3 = MEM_U32(t9 + 0); -//nop; -a0 = 0xfb528e4; -a1 = 0x10006e58; -a2 = t8; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436aa4; -a1 = a1; -L436aa4: -// bdead 40000003 gp = MEM_U32(sp + 56); -t6 = MEM_U32(sp + 116); -t4 = 0x10008310; -t1 = t6 << 6; -t4 = t4; -a0 = 0xfb528e4; -a1 = 0x10006e6c; -//nop; -t0 = t1 + t4; -a3 = MEM_U32(t0 + 4); -a2 = t6; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436adc; -a1 = a1; -L436adc: -// bdead 40000003 gp = MEM_U32(sp + 56); -t2 = MEM_U32(sp + 116); -t8 = 0x10008310; -t3 = t2 << 6; -t8 = t8; -a0 = 0xfb528e4; -a1 = 0x10006e80; -//nop; -t5 = t3 + t8; -a3 = MEM_U32(t5 + 8); -a2 = t2; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436b14; -a1 = a1; -L436b14: -// bdead 40000003 gp = MEM_U32(sp + 56); -t7 = MEM_U32(sp + 116); -t6 = 0x10008310; -t9 = t7 << 6; -t6 = t6; -t1 = t9 + t6; -//nop; -a0 = 0xfb528e4; -a1 = 0x10006e94; -a3 = MEM_U32(t1 + 12); -a2 = t7; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436b4c; -a1 = a1; -L436b4c: -// bdead 40000003 gp = MEM_U32(sp + 56); -t4 = MEM_U32(sp + 116); -t2 = 0x10008310; -t0 = t4 << 6; -t2 = t2; -a0 = 0xfb528e4; -a1 = 0x10006ea8; -//nop; -t3 = t0 + t2; -a3 = MEM_U32(t3 + 16); -a2 = t4; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436b84; -a1 = a1; -L436b84: -// bdead 40000003 gp = MEM_U32(sp + 56); -t8 = MEM_U32(sp + 116); -t7 = 0x10008310; -t5 = t8 << 6; -t7 = t7; -t9 = t5 + t7; -a3 = MEM_U32(t9 + 20); -//nop; -a0 = 0xfb528e4; -a1 = 0x10006ebc; -a2 = t8; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436bbc; -a1 = a1; -L436bbc: -// bdead 40000003 gp = MEM_U32(sp + 56); -t6 = MEM_U32(sp + 116); -t4 = 0x10008310; -t1 = t6 << 6; -t4 = t4; -a0 = 0xfb528e4; -a1 = 0x10006ed0; -//nop; -t0 = t1 + t4; -a3 = MEM_U32(t0 + 24); -a2 = t6; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436bf4; -a1 = a1; -L436bf4: -// bdead 40000003 gp = MEM_U32(sp + 56); -t2 = MEM_U32(sp + 116); -t8 = 0x10008310; -t3 = t2 << 6; -t8 = t8; -a0 = 0xfb528e4; -a1 = 0x10006ee4; -//nop; -t5 = t3 + t8; -a3 = MEM_U32(t5 + 28); -a2 = t2; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436c2c; -a1 = a1; -L436c2c: -// bdead 40000003 gp = MEM_U32(sp + 56); -t7 = MEM_U32(sp + 116); -t6 = 0x10008310; -t9 = t7 << 6; -t6 = t6; -t1 = t9 + t6; -//nop; -a0 = 0xfb528e4; -a1 = 0x10006ef8; -a3 = MEM_U32(t1 + 32); -a2 = t7; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436c64; -a1 = a1; -L436c64: -// bdead 40000003 gp = MEM_U32(sp + 56); -t4 = MEM_U32(sp + 116); -t2 = 0x10008310; -t0 = t4 << 6; -t2 = t2; -a0 = 0xfb528e4; -a1 = 0x10006f0c; -//nop; -t3 = t0 + t2; -a3 = MEM_U32(t3 + 36); -a2 = t4; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436c9c; -a1 = a1; -L436c9c: -// bdead 40000003 gp = MEM_U32(sp + 56); -t8 = MEM_U32(sp + 116); -t7 = 0x10008310; -t5 = t8 << 6; -t7 = t7; -t9 = t5 + t7; -a3 = MEM_U32(t9 + 40); -//nop; -a0 = 0xfb528e4; -a1 = 0x10006f20; -a2 = t8; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436cd4; -a1 = a1; -L436cd4: -// bdead 40000183 gp = MEM_U32(sp + 56); -//nop; -a0 = 0xfb528e4; -a1 = 0x10006f34; -//nop; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436cf4; -a1 = a1; -L436cf4: -// bdead 40000103 gp = MEM_U32(sp + 56); -//nop; -L436cfc: -t6 = MEM_U32(sp + 116); -t4 = MEM_U32(sp + 124); -t1 = t6 + 0x1; -at = (int)t1 < (int)t4; -if (at != 0) {MEM_U32(sp + 116) = t1; -goto L4367ac;} -MEM_U32(sp + 116) = t1; -L436d14: -t8 = MEM_U32(sp + 92); -t2 = MEM_U32(sp + 96); -t6 = MEM_U32(sp + 84); -t7 = MEM_U32(sp + 88); -t5 = t8 >> 10; -t4 = MEM_U32(sp + 80); -MEM_U32(sp + 20) = t5; -t3 = t2 >> 10; -t1 = t6 >> 10; -t5 = MEM_U32(sp + 76); -MEM_U32(sp + 28) = t1; -MEM_U32(sp + 16) = t3; -t9 = t7 >> 10; -t1 = MEM_U32(sp + 72); -MEM_U32(sp + 24) = t9; -t3 = t4 >> 10; -t0 = MEM_U32(sp + 100); -MEM_U32(sp + 32) = t3; -t9 = t5 >> 10; -MEM_U32(sp + 36) = t9; -t3 = t1 >> 10; -MEM_U32(sp + 40) = t3; -t9 = t0 + t2; -t3 = t9 + t8; -a3 = t0 >> 10; -t0 = t3 + t7; -t2 = t0 + t6; -t9 = t2 + t4; -t8 = t9 + t5; -//nop; -a0 = 0xfb528e4; -a1 = 0x10006f38; -t3 = t8 + t1; -t7 = t3 >> 10; -a2 = MEM_U32(sp + 120); -MEM_U32(sp + 44) = t7; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436db0; -a1 = a1; -L436db0: -t0 = MEM_U32(sp + 68); -// bdead 40000301 gp = MEM_U32(sp + 56); -if (t0 == 0) {//nop; -goto L436f64;} -//nop; -a2 = MEM_U32(sp + 100); -a0 = 0xfb528e4; -a1 = 0x10006f78; -//nop; -t6 = a2 >> 10; -a2 = t6; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436de4; -a1 = a1; -L436de4: -// bdead 40000101 gp = MEM_U32(sp + 56); -a2 = MEM_U32(sp + 96); -a0 = 0xfb528e4; -a1 = 0x10006f90; -//nop; -t2 = a2 >> 10; -a2 = t2; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436e0c; -a1 = a1; -L436e0c: -// bdead 40000101 gp = MEM_U32(sp + 56); -a2 = MEM_U32(sp + 92); -a0 = 0xfb528e4; -a1 = 0x10006fa8; -//nop; -t4 = a2 >> 10; -a2 = t4; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436e34; -a1 = a1; -L436e34: -// bdead 40000101 gp = MEM_U32(sp + 56); -a2 = MEM_U32(sp + 88); -a0 = 0xfb528e4; -t9 = a2 >> 10; -a2 = t9; -//nop; -a1 = 0x10006fc0; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436e5c; -a1 = a1; -L436e5c: -// bdead 40000101 gp = MEM_U32(sp + 56); -a2 = MEM_U32(sp + 84); -a0 = 0xfb528e4; -a1 = 0x10006fd8; -//nop; -t5 = a2 >> 10; -a2 = t5; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436e84; -a1 = a1; -L436e84: -// bdead 40000101 gp = MEM_U32(sp + 56); -a2 = MEM_U32(sp + 80); -a0 = 0xfb528e4; -a1 = 0x10006ff4; -//nop; -t8 = a2 >> 10; -a2 = t8; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436eac; -a1 = a1; -L436eac: -// bdead 40000101 gp = MEM_U32(sp + 56); -a2 = MEM_U32(sp + 76); -a0 = 0xfb528e4; -a1 = 0x10007010; -//nop; -t1 = a2 >> 10; -a2 = t1; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436ed4; -a1 = a1; -L436ed4: -// bdead 40000101 gp = MEM_U32(sp + 56); -a2 = MEM_U32(sp + 72); -a0 = 0xfb528e4; -a1 = 0x1000702c; -//nop; -t3 = a2 >> 10; -a2 = t3; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436efc; -a1 = a1; -L436efc: -t7 = MEM_U32(sp + 100); -t0 = MEM_U32(sp + 96); -t2 = MEM_U32(sp + 92); -t9 = MEM_U32(sp + 88); -t6 = t7 + t0; -t8 = MEM_U32(sp + 84); -t4 = t6 + t2; -// bdead 46002101 gp = MEM_U32(sp + 56); -t3 = MEM_U32(sp + 80); -t5 = t4 + t9; -t0 = MEM_U32(sp + 76); -t1 = t5 + t8; -t2 = MEM_U32(sp + 72); -t7 = t1 + t3; -t6 = t7 + t0; -//nop; -a0 = 0xfb528e4; -a1 = 0x10007044; -a2 = t6 + t2; -t4 = a2 >> 10; -a2 = t4; -a0 = a0 + 0x20; -a1 = a1; -MEM_U32(sp + 0) = a0; -MEM_U32(sp + 4) = a1; -MEM_U32(sp + 8) = a2; -MEM_U32(sp + 12) = a3; -v0 = wrapper_fprintf(mem, a0, a1, sp); -goto L436f5c; -a1 = a1; -L436f5c: -// bdead 1 gp = MEM_U32(sp + 56); -//nop; -L436f64: -// bdead 1 ra = MEM_U32(sp + 60); -// bdead 1 sp = sp + 0x78; -//nop; -return; -//nop; -//nop; -//nop; -//nop; -} - -static uint32_t f_gethostsex(uint8_t *mem, uint32_t sp) { -const uint32_t zero = 0; -uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0, -t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, -s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0; -uint32_t lo = 0, hi = 0; -int cf = 0; -uint64_t temp64; -uint32_t fp_dest; -void *dest; -uint32_t v0 = 0; -uint32_t a0 = 0; -uint32_t a1 = 0; -uint32_t a2 = 0; -uint32_t a3 = 0; -L436f80: -//gethostsex: -sp = sp + 0xfffffff8; -t6 = 0x1; -MEM_U32(sp + 4) = t6; -t7 = MEM_S8(sp + 4); -at = 0x1; -if (t7 != at) {v0 = zero; -goto L436fa4;} -v0 = zero; -v0 = 0x1; -goto L436fa4; -v0 = 0x1; -L436fa4: -// bdead 9 sp = sp + 0x8; -return v0; -// bdead 9 sp = sp + 0x8; -//nop; -} diff --git a/tools/ido-static-recomp/elf.h b/tools/ido-static-recomp/elf.h deleted file mode 100755 index 91ba5fe2..00000000 --- a/tools/ido-static-recomp/elf.h +++ /dev/null @@ -1,99 +0,0 @@ -#ifndef ELF_H -#define ELF_H - -#include - -#define EI_DATA 5 -#define EI_NIDENT 16 -#define SHT_SYMTAB 2 -#define SHT_DYNAMIC 6 -#define SHT_REL 9 -#define SHT_DYNSYM 11 -#define SHT_MIPS_REGINFO 0x70000006 -#define STN_UNDEF 0 -#define STT_OBJECT 1 -#define STT_FUNC 2 -#define DT_PLTGOT 3 -#define DT_MIPS_LOCAL_GOTNO 0x7000000a -#define DT_MIPS_SYMTABNO 0x70000011 -#define DT_MIPS_GOTSYM 0x70000013 - -#define ELF32_R_SYM(info) ((info) >> 8) -#define ELF32_R_TYPE(info) ((info) & 0xff) - -#define ELF32_ST_TYPE(info) ((info) & 0xf) - -#define R_MIPS_26 4 -#define R_MIPS_HI16 5 -#define R_MIPS_LO16 6 - -#define SHN_UNDEF 0 -#define SHN_COMMON 0xfff2 -#define SHN_MIPS_ACOMMON 0xff00 -#define SHN_MIPS_TEXT 0xff01 -#define SHN_MIPS_DATA 0xff02 - -typedef uint32_t Elf32_Addr; -typedef uint32_t Elf32_Off; - -typedef struct { - uint8_t e_ident[EI_NIDENT]; - uint16_t e_type; - uint16_t e_machine; - uint32_t e_version; - Elf32_Addr e_entry; - Elf32_Off e_phoff; - Elf32_Off e_shoff; - uint32_t e_flags; - uint16_t e_ehsize; - uint16_t e_phentsize; - uint16_t e_phnum; - uint16_t e_shentsize; - uint16_t e_shnum; - uint16_t e_shstrndx; -} Elf32_Ehdr; - -typedef struct { - uint32_t sh_name; - uint32_t sh_type; - uint32_t sh_flags; - Elf32_Addr sh_addr; - Elf32_Off sh_offset; - uint32_t sh_size; - uint32_t sh_link; - uint32_t sh_info; - uint32_t sh_addralign; - uint32_t sh_entsize; -} Elf32_Shdr; - -typedef struct { - uint32_t st_name; - Elf32_Addr st_value; - uint32_t st_size; - uint8_t st_info; - uint8_t st_other; - uint16_t st_shndx; -} Elf32_Sym; - -typedef struct { - Elf32_Addr r_offset; - uint32_t r_info; -} Elf32_Rel; - -typedef struct -{ - uint32_t ri_gprmask; /* General registers used. */ - uint32_t ri_cprmask[4]; /* Coprocessor registers used. */ - int32_t ri_gp_value; /* $gp register value. */ -} Elf32_RegInfo; - -typedef struct -{ - int32_t d_tag; /* Dynamic entry type */ - union { - uint32_t d_val; /* Integer value */ - Elf32_Addr d_ptr; /* Address value */ - } d_un; -} Elf32_Dyn; - -#endif diff --git a/tools/ido-static-recomp/header.h b/tools/ido-static-recomp/header.h deleted file mode 100644 index b4cd0d31..00000000 --- a/tools/ido-static-recomp/header.h +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#include "libc_impl.h" -#include "helpers.h" - -#define RM_RN 0 -#define RM_RZ 1 -#define RM_RP 2 -#define RM_RM 3 - -union FloatReg { - float f[2]; - uint32_t w[2]; - double d; -}; - -#define cvt_w_d(f) \ - ((fcsr & RM_RZ) ? ((isnan(f) || f <= -2147483649.0 || f >= 2147483648.0) ? (fcsr |= 0x40, 2147483647) : (int)f) : (assert(0), 0)) - -#define cvt_w_s(f) cvt_w_d((double)f) - -static union FloatReg f0 = {{0, 0}}, f2 = {{0, 0}}, f4 = {{0, 0}}, f6 = {{0, 0}}, f8 = {{0, 0}}, -f10 = {{0, 0}}, f12 = {{0, 0}}, f14 = {{0, 0}}, f16 = {{0, 0}}, f18 = {{0, 0}}, f20 = {{0, 0}}, -f22 = {{0, 0}}, f24 = {{0, 0}}, f26 = {{0, 0}}, f28 = {{0, 0}}, f30 = {{0, 0}}; -static uint32_t fcsr = 1; diff --git a/tools/ido-static-recomp/helpers.h b/tools/ido-static-recomp/helpers.h deleted file mode 100755 index b2bd2351..00000000 --- a/tools/ido-static-recomp/helpers.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef HELPERS_H -#define HELPERS_H - -#include - -#define MEM_U32(a) (*(uint32_t *)(mem + a)) -#define MEM_S32(a) (*(int32_t *)(mem + a)) -#define MEM_U16(a) (*(uint16_t *)(mem + ((a) ^ 2))) -#define MEM_S16(a) (*(int16_t *)(mem + ((a) ^ 2))) -#define MEM_U8(a) (*(uint8_t *)(mem + ((a) ^ 3))) -#define MEM_S8(a) (*(int8_t *)(mem + ((a) ^ 3))) - -#endif diff --git a/tools/ido-static-recomp/libc_impl.c b/tools/ido-static-recomp/libc_impl.c deleted file mode 100755 index 3315b419..00000000 --- a/tools/ido-static-recomp/libc_impl.c +++ /dev/null @@ -1,2542 +0,0 @@ -#define _GNU_SOURCE // for sigset -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef __CYGWIN__ -#include -#endif -#ifdef __APPLE__ - #include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "libc_impl.h" -#include "helpers.h" - -#define MIN(a, b) ((a) < (b) ? (a) : (b)) -#define MAX(a, b) ((a) > (b) ? (a) : (b)) - -#define STRING(param) size_t param##_len = wrapper_strlen(mem, param##_addr); \ - char param[param##_len + 1]; \ - for (size_t i = 0; i <= param##_len; i++) { \ - param[i] = MEM_S8(param##_addr + i); \ - } - -#if !defined(IDO53) && !defined(IDO71) -#define IDO71 -#endif - -#define MEM_REGION_START 0xfb00000 -#define MEM_REGION_SIZE (512 * 1024 * 1024) - -#ifdef IDO53 -// IDO 5.3 -#define IOB_ADDR 0x0fb528e4 -#define ERRNO_ADDR 0x0fb52720 -#define CTYPE_ADDR 0x0fb504f0 -#define LIBC_ADDR 0x0fb50000 -#define LIBC_SIZE 0x3000 -#endif - -#ifdef IDO71 -// IDO 7.1 -#define IOB_ADDR 0x0fb4ee44 -#define ERRNO_ADDR 0x0fb4ec80 -#define CTYPE_ADDR 0x0fb4cba0 -#define LIBC_ADDR 0x0fb4c000 -#define LIBC_SIZE 0x3000 -#endif - -#define STDIN_ADDR IOB_ADDR -#define STDOUT_ADDR (IOB_ADDR + 0x10) -#define STDERR_ADDR (IOB_ADDR + 0x20) -#define STDIN ((struct FILE_irix *)&MEM_U32(STDIN_ADDR)) -#define STDOUT ((struct FILE_irix *)&MEM_U32(STDOUT_ADDR)) -#define STDERR ((struct FILE_irix *)&MEM_U32(STDERR_ADDR)) - -#define MALLOC_BINS_ADDR custom_libc_data_addr -#define STRTOK_DATA_ADDR (MALLOC_BINS_ADDR + (30 - 3) * 4) -#define INTBUF_ADDR (STRTOK_DATA_ADDR + 4) - -#define SIGNAL_HANDLER_STACK_START LIBC_ADDR - -#define NFILE 100 - -#define IOFBF 0000 /* full buffered */ -#define IOLBF 0100 /* line buffered */ -#define IONBF 0004 /* not buffered */ -#define IOEOF 0020 /* EOF reached on read */ -#define IOERR 0040 /* I/O error from system */ - -#define IOREAD 0001 /* currently reading */ -#define IOWRT 0002 /* currently writing */ -#define IORW 0200 /* opened for reading and writing */ -#define IOMYBUF 0010 /* stdio malloc()'d buffer */ - -#define STDIO_BUFSIZE 16384 - -struct timespec_t_irix { - int tv_sec; - int tv_nsec; -}; - -struct FILE_irix { - int _cnt; - uint32_t _ptr_addr; - uint32_t _base_addr; - uint8_t pad[2]; - uint8_t _file; - uint8_t _flag; -}; - -static struct { - struct { - uint64_t (*trampoline)(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3, uint32_t fp_dest); - uint8_t *mem; - uint32_t fp_dest; - } handlers[65]; - volatile uint32_t recursion_level; -} signal_context; - -static uint32_t cur_sbrk; -static uint32_t bufendtab[NFILE]; // this version contains the size and not the end ptr -static uint32_t custom_libc_data_addr; - -#define _U 01 /* Upper case */ -#define _L 02 /* Lower case */ -#define _N 04 /* Numeral (digit) */ -#define _S 010 /* Spacing character */ -#define _P 020 /* Punctuation */ -#define _C 040 /* Control character */ -#define _B 0100 /* Blank */ -#define _X 0200 /* heXadecimal digit */ - -static char ctype[] = { 0, - -/* 0 1 2 3 4 5 6 7 */ - -/* 0*/ _C, _C, _C, _C, _C, _C, _C, _C, -/* 10*/ _C, _S|_C, _S|_C, _S|_C, _S|_C, _S|_C, _C, _C, -/* 20*/ _C, _C, _C, _C, _C, _C, _C, _C, -/* 30*/ _C, _C, _C, _C, _C, _C, _C, _C, -/* 40*/ _S|_B, _P, _P, _P, _P, _P, _P, _P, -/* 50*/ _P, _P, _P, _P, _P, _P, _P, _P, -/* 60*/ _N|_X, _N|_X, _N|_X, _N|_X, _N|_X, _N|_X, _N|_X, _N|_X, -/* 70*/ _N|_X, _N|_X, _P, _P, _P, _P, _P, _P, -/*100*/ _P, _U|_X, _U|_X, _U|_X, _U|_X, _U|_X, _U|_X, _U, -/*110*/ _U, _U, _U, _U, _U, _U, _U, _U, -/*120*/ _U, _U, _U, _U, _U, _U, _U, _U, -/*130*/ _U, _U, _U, _P, _P, _P, _P, _P, -/*140*/ _P, _L|_X, _L|_X, _L|_X, _L|_X, _L|_X, _L|_X, _L, -/*150*/ _L, _L, _L, _L, _L, _L, _L, _L, -/*160*/ _L, _L, _L, _L, _L, _L, _L, _L, -/*170*/ _L, _L, _L, _P, _P, _P, _P, _C, -/*200*/ 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 -}; - -#define REDIRECT_USR_LIB - -#ifdef REDIRECT_USR_LIB -static char bin_dir[PATH_MAX + 1]; -#endif -static int g_file_max = 3; - -#ifdef __CYGWIN__ -static size_t g_Pagesize; -#endif - -static uint8_t *memory_map(size_t length) -{ -#ifdef __CYGWIN__ - uint8_t *mem = mmap(0, length, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, -1, 0); - g_Pagesize = sysconf(_SC_PAGESIZE); - assert(((uintptr_t)mem & (g_Pagesize-1)) == 0); -#else - uint8_t *mem = mmap(0, length, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); -#endif - if (mem == MAP_FAILED) { - perror("mmap"); - exit(1); - } - return mem; -} - -static void memory_allocate(uint8_t *mem, uint32_t start, uint32_t end) -{ - assert(start >= MEM_REGION_START); - assert(end <= MEM_REGION_START + MEM_REGION_SIZE); -#ifdef __CYGWIN__ - uintptr_t _start = ((uintptr_t)mem + start) & ~(g_Pagesize-1); - uintptr_t _end = ((uintptr_t)mem + end + (g_Pagesize-1)) & ~(g_Pagesize-1); - - if(mprotect((void*)_start, _end - _start, PROT_READ | PROT_WRITE) < 0) { - perror("mprotect"); - exit(1); - } -#else - if (mmap(mem + start, end - start, PROT_READ | PROT_WRITE, MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS, -1, 0) == MAP_FAILED) { - perror("mmap"); - exit(1); - } -#endif -} - -static void memory_unmap(uint8_t *mem, size_t length) -{ - if (munmap(mem, length)) { - perror("munmap"); - exit(1); - } -} - - -static void free_all_file_bufs(uint8_t *mem) { - struct FILE_irix *f = (struct FILE_irix *)&MEM_U32(IOB_ADDR); - for (int i = 0; i < g_file_max; i++) { - if (f[i]._flag & IOMYBUF) { - wrapper_free(mem, f[i]._base_addr); - } - } -} - -static void find_bin_dir(void) { -#ifdef REDIRECT_USR_LIB - // gets the current executable's path - char path[PATH_MAX + 1] = {0}; -#ifdef __CYGWIN__ - uint32_t size = GetModuleFileName(NULL, path, PATH_MAX); - if (size == 0 || size == PATH_MAX) { - return; - } -#elif defined __APPLE__ - uint32_t size = PATH_MAX; - if (_NSGetExecutablePath(path, &size)) < 0) { - return; - } -#else - ssize_t size = readlink("/proc/self/exe", path, PATH_MAX); - if (size < 0 || size == PATH_MAX) { - return; - } -#endif - - strcpy(bin_dir, dirname(path)); -#endif -} - -int main(int argc, char *argv[]) { - int ret; - - find_bin_dir(); - - uint8_t *mem = memory_map(MEM_REGION_SIZE); - mem -= MEM_REGION_START; - int run(uint8_t *mem, int argc, char *argv[]); - ret = run(mem, argc, argv); - wrapper_fflush(mem, 0); - free_all_file_bufs(mem); - mem += MEM_REGION_START; - memory_unmap(mem, MEM_REGION_SIZE); - return ret; -} - -void mmap_initial_data_range(uint8_t *mem, uint32_t start, uint32_t end) { - custom_libc_data_addr = end; - end += 4096; - memory_allocate(mem, start, end); - cur_sbrk = end; -} - -void setup_libc_data(uint8_t *mem) { - memory_allocate(mem, LIBC_ADDR, (LIBC_ADDR + LIBC_SIZE)); - for (size_t i = 0; i < sizeof(ctype); i++) { - MEM_S8(CTYPE_ADDR + i) = ctype[i]; - } - STDIN->_flag = IOREAD; - STDIN->_file = 0; - STDOUT->_flag = IOWRT; - STDOUT->_file = 1; - STDERR->_flag = IOWRT | IONBF; - STDERR->_file = 2; -} - -static uint32_t strcpy1(uint8_t *mem, uint32_t dest_addr, const char *str) { - for (;;) { - char c = *str; - ++str; - MEM_S8(dest_addr) = c; - ++dest_addr; - if (c == '\0') { - return dest_addr - 1; - } - } -} - -static uint32_t strcpy2(uint8_t *mem, uint32_t dest_addr, uint32_t src_addr) { - for (;;) { - char c = MEM_S8(src_addr); - ++src_addr; - MEM_S8(dest_addr) = c; - ++dest_addr; - if (c == '\0') { - return dest_addr - 1; - } - } -} - -uint32_t wrapper_sbrk(uint8_t *mem, int increment) { - uint32_t old = cur_sbrk; - memory_allocate(mem, old, (old + increment)); - cur_sbrk += increment; - return old; -} - -#if 0 -uint32_t wrapper_malloc(uint8_t *mem, uint32_t size) { - uint32_t orig_size = size; - size += 8; - size = (size + 0xfff) & ~0xfff; - uint32_t ret = wrapper_sbrk(mem, size); - MEM_U32(ret) = orig_size; - return ret + 8; -} - -uint32_t wrapper_calloc(uint8_t *mem, uint32_t num, uint32_t size) { - uint64_t new_size = (uint64_t)num * size; - assert(new_size == (uint32_t)new_size); - uint32_t ret = wrapper_malloc(mem, new_size); - return wrapper_memset(mem, ret, 0, new_size); -} - -uint32_t wrapper_realloc(uint8_t *mem, uint32_t data_addr, uint32_t size) { - if (data_addr == 0) { - return wrapper_malloc(mem, size); - } - uint32_t orig_size = MEM_U32(data_addr - 8); - if (size < orig_size || orig_size < 4088 && size < 4088) { - MEM_U32(data_addr - 8) = size; - return data_addr; - } - uint32_t new_addr = wrapper_malloc(mem, size); - return wrapper_memcpy(mem, new_addr, data_addr, MIN(size, orig_size)); -} - -void wrapper_free(uint8_t *mem, uint32_t data_addr) { - // NOP -} -#else - -/* -Simple bin-based malloc algorithm - -The memory is divided into bins of item sizes 8, 16, 32, 64, 128, ..., 2^30. -Size requests are divided into these bin sizes and each bin is handled -completely separate from other bins. - -For each bin there is a linked list of free'd items. -Linked list node: -struct FreeListNode { - struct Node *next; - size_t free_space_after; - uint8_t data[bin_item_size]; -}; -At most one value of next and space_after is non-zero. -If a node exists in the linked list, it is the memory node to return. -struct AllocatedNode { - int bin; - uint32_t current_size; - uint8_t data[bin_item_size]; -}; -The returned address is the data element. -When the last list node is returned, and free_space_after is big enough -for a new node, a new node is created having free_space_after set to -(free_space_after - (8 + bin_item_size)), and is appended to the list. - -If the list was empty, a new memory chunk is requested from the system -of 65536 bytes, or at least (8 + bin_item_size), rounded up to nearest -page size boundary. It can also be smaller if it leaves holes bigger than -4096 bytes that can never be used. This chunk is then inserted to the list, -and the algorithm restarts. - -This algorithm, for each bin, never uses more than twice as much as is -maximally in use (plus 65536 bytes). -The malloc/free calls run in O(1) and calloc/realloc calls run in O(size). -*/ - -size_t mem_used; -size_t mem_allocated; -size_t max_mem_used; -size_t num_sbrks; -size_t num_allocs; -uint32_t wrapper_malloc(uint8_t *mem, uint32_t size) { - int bin = -1; - for (int i = 3; i < 30; i++) { - if (size <= (1 << i)) { - bin = i; - break; - } - } - if (bin == -1) { - return 0; - } - ++num_allocs; - mem_used += size; - max_mem_used = MAX(mem_used, max_mem_used); - uint32_t item_size = 1 << bin; - uint32_t list_ptr = MALLOC_BINS_ADDR + (bin - 3) * 4; - uint32_t node_ptr = MEM_U32(list_ptr); - if (node_ptr == 0) { - uint32_t sbrk_request = 0x10000; - if (8 + item_size > sbrk_request) { - sbrk_request = 8 + item_size; - sbrk_request = (sbrk_request + 0xfff) & ~0xfff; - } - uint32_t left_over = sbrk_request % (8 + item_size); - sbrk_request -= left_over & ~0xfff; - mem_allocated += sbrk_request; - ++num_sbrks; - node_ptr = wrapper_sbrk(mem, sbrk_request); - MEM_U32(node_ptr + 4) = sbrk_request - (8 + item_size); - } - uint32_t next = MEM_U32(node_ptr); - if (next == 0) { - uint32_t free_space_after = MEM_U32(node_ptr + 4); - if (free_space_after >= 8 + item_size) { - next = node_ptr + 8 + item_size; - MEM_U32(next + 4) = free_space_after - (8 + item_size); - } - } else { - assert(MEM_U32(node_ptr + 4) == 0); - } - MEM_U32(list_ptr) = next; - MEM_U32(node_ptr) = bin; - MEM_U32(node_ptr + 4) = size; - return node_ptr + 8; -} - -uint32_t wrapper_calloc(uint8_t *mem, uint32_t num, uint32_t size) { - uint64_t new_size = (uint64_t)num * size; - assert(new_size == (uint32_t)new_size); - uint32_t ret = wrapper_malloc(mem, new_size); - return wrapper_memset(mem, ret, 0, new_size); -} - -uint32_t wrapper_realloc(uint8_t *mem, uint32_t data_addr, uint32_t size) { - if (data_addr == 0) { - return wrapper_malloc(mem, size); - } else { - uint32_t node_ptr = data_addr - 8; - int bin = MEM_U32(node_ptr); - uint32_t old_size = MEM_U32(node_ptr + 4); - uint32_t max_size = 1 << bin; - assert(bin >= 3 && bin < 30); - assert(old_size <= max_size); - if (size <= max_size) { - mem_used = mem_used - old_size + size; - MEM_U32(node_ptr + 4) = size; - return data_addr; - } else { - uint32_t new_addr = wrapper_malloc(mem, size); - wrapper_memcpy(mem, new_addr, data_addr, old_size); - wrapper_free(mem, data_addr); - return new_addr; - } - } -} - -void wrapper_free(uint8_t *mem, uint32_t data_addr) { - uint32_t node_ptr = data_addr - 8; - int bin = MEM_U32(node_ptr); - uint32_t size = MEM_U32(node_ptr + 4); - uint32_t list_ptr = MALLOC_BINS_ADDR + (bin - 3) * 4; - assert(bin >= 3 && bin < 30); - assert(size <= (1 << bin)); - MEM_U32(node_ptr) = MEM_U32(list_ptr); - MEM_U32(node_ptr + 4) = 0; - MEM_U32(list_ptr) = node_ptr; - mem_used -= size; -} -#endif - -int wrapper_fscanf(uint8_t *mem, uint32_t fp_addr, uint32_t format_addr, uint32_t sp) { - struct FILE_irix *f = (struct FILE_irix *)&MEM_U32(fp_addr); - STRING(format) // for debug - - int ret = 0; - char c; - int ch; - sp += 2 * 4; - for (;;) { - c = MEM_S8(format_addr); - ++format_addr; - if (c == '%') { - c = MEM_S8(format_addr); - ++format_addr; - if (c == '%') { - goto percent; - } - for (;;) { - ch = wrapper_fgetc(mem, fp_addr); - if (ch == -1) { - return ret; - } - if (!isspace(ch)) { - //wrapper_ungetc(mem, ch, fp_addr); - break; - } - } - bool l = false; - continue_format: - switch (c) { - case 'l': - assert(!l && "ll not implemented in fscanf"); - l = true; - c = MEM_S8(format_addr); - ++format_addr; - goto continue_format; - case 'd': - { - int64_t num = 0; - int sign = 1; - bool found_first = false; - if (ch == '-') { - sign = -1; - ch = wrapper_fgetc(mem, fp_addr); - if (ch == -1) { - return ret; - } - } - for (;;) { - if (isdigit(ch)) { - num *= 10; - num += ch - '0'; - found_first = true; - ch = wrapper_fgetc(mem, fp_addr); - if (ch == -1) { - break; - } - } else { - wrapper_ungetc(mem, ch, fp_addr); - break; - } - } - if (found_first) { - uint32_t int_addr = MEM_U32(sp); - sp += 4; - MEM_S32(int_addr) = (int)(num * sign); - ++ret; - } else { - return ret; - } - break; - } - default: - assert(0 && "fscanf format not implemented"); - } - } else if (c == '\0') { - break; - } else { - percent: - ch = wrapper_fgetc(mem, fp_addr); - if (ch == -1) { - break; - } - if ((char)ch != c) { - break; - } - } - } - - return ret; -} - -int wrapper_printf(uint8_t *mem, uint32_t format_addr, uint32_t sp) { - STRING(format) - if (!strcmp(format, " child died due to signal %d.\n")) { - printf(format, MEM_U32(sp + 4)); - return 1; - } - assert(0 && "printf not implemented"); - return 0; -} - -int wrapper_sprintf(uint8_t *mem, uint32_t str_addr, uint32_t format_addr, uint32_t sp) { - STRING(format) // for debug - char temp[32]; - - if (!strcmp(format, "%.16e")) { - union { - uint32_t w[2]; - double d; - } d; - d.w[1] = MEM_U32(sp + 2 * 4); - d.w[0] = MEM_U32(sp + 3 * 4); - sprintf(temp, "%.16e", d.d); - strcpy1(mem, str_addr, temp); - return 1; - } - if (!strcmp(format, "\\%03o")) { - sprintf(temp, "\\%03o", MEM_U32(sp + 2 * 4)); - strcpy1(mem, str_addr, temp); - return 1; - } - if (!strcmp(format, "%*ld=")) { - sprintf(temp, "%*d=", MEM_U32(sp + 2 * 4), MEM_U32(sp + 3 * 4)); - strcpy1(mem, str_addr, temp); - return 1; - } - - uint32_t orig_str_addr = str_addr; - uint32_t pos = 0; - int ret = 0; - char c; - sp += 2 * 4; - for (;;) { - c = MEM_S8(format_addr + pos); - ++pos; - if (c == '%') { - bool l = false; - c = MEM_S8(format_addr + pos); - ++pos; - uint32_t zeros = 0; - bool zero_prefix = false; - continue_format: - switch (c) { - case '0': - do { - c = MEM_S8(format_addr + pos); - ++pos; - if (c >= '0' && c <= '9') { - zeros *= 10; - zeros += c - '0'; - } - } while (c >= '0' && c <= '9'); - goto continue_format; - case '#': - c = MEM_S8(format_addr + pos); - ++pos; - zero_prefix = true; - goto continue_format; - break; - case 'l': - assert(!l && "ll not implemented in fscanf"); - c = MEM_S8(format_addr + pos); - ++pos; - l = true; - goto continue_format; - break; - case 'd': - if (zeros != 0) { - char temp1[32]; - sprintf(temp1, "%%0%dd", zeros); - sprintf(temp, temp1, MEM_S32(sp)); - } else { - sprintf(temp, "%d", MEM_S32(sp)); - } - sp += 4; - str_addr = strcpy1(mem, str_addr, temp); - ++ret; - break; - case 'o': - if (zero_prefix) { - sprintf(temp, "%#o", MEM_S32(sp)); - } else { - sprintf(temp, "%o", MEM_S32(sp)); - } - sp += 4; - str_addr = strcpy1(mem, str_addr, temp); - ++ret; - break; - case 'x': - if (zero_prefix) { - sprintf(temp, "%#x", MEM_S32(sp)); - } else { - sprintf(temp, "%x", MEM_S32(sp)); - } - sp += 4; - str_addr = strcpy1(mem, str_addr, temp); - ++ret; - break; - case 'u': - sprintf(temp, "%u", MEM_S32(sp)); - sp += 4; - str_addr = strcpy1(mem, str_addr, temp); - ++ret; - break; - case 's': - str_addr = strcpy2(mem, str_addr, MEM_U32(sp)); - sp += 4; - ++ret; - break; - case 'c': - MEM_S8(str_addr) = (char)MEM_U32(sp); - ++str_addr; - sp += 4; - ++ret; - break; - case '%': - MEM_S8(str_addr) = '%'; - ++str_addr; - break; - default: - fprintf(stderr, "%s\n", format); - assert(0 && "non-implemented sprintf format"); - } - } else if (c == '\0') { - break; - } else { - MEM_S8(str_addr) = c; - ++str_addr; - } - } - - MEM_S8(str_addr) = '\0'; - STRING(orig_str) // for debug - //printf("result: '%s' '%s'\n", format, orig_str); - return ret; -} - -int wrapper_fprintf(uint8_t *mem, uint32_t fp_addr, uint32_t format_addr, uint32_t sp) { - struct FILE_irix *f = (struct FILE_irix *)&MEM_U32(fp_addr); - STRING(format) - sp += 8; - /*if (!strcmp(format, "%s")) { - uint32_t s_addr = MEM_U32(sp); - STRING(s) - if (fp_addr == STDERR_ADDR) { - fprintf(stderr, "%s", s); - fflush(stderr); - return 1; - } - } - if (!strcmp(format, "%s: %s: ")) { - uint32_t s1_addr = MEM_U32(sp), s2_addr = MEM_U32(sp + 4); - STRING(s1) - STRING(s2) - if (fp_addr == STDERR_ADDR) { - fprintf(stderr, "%s: %s: ", s1, s2); - fflush(stderr); - return 1; - } - }*/ - int ret = 0; - for (;;) { - uint32_t pos = format_addr; - char ch = MEM_S8(pos); - while (ch != '%' && ch != '\0') { - ++pos; - ch = MEM_S8(pos); - } - if (format_addr != pos) { - if (wrapper_fwrite(mem, format_addr, 1, pos - format_addr, fp_addr) != pos - format_addr) { - break; - } - } - if (ch == '\0') { - break; - } - ++pos; - ch = MEM_S8(pos); - switch (ch) { - case 'd': - { - char buf[32]; - sprintf(buf, "%d", MEM_U32(sp)); - strcpy1(mem, INTBUF_ADDR, buf); - if (wrapper_fputs(mem, INTBUF_ADDR, fp_addr) == -1) { - return ret; - } - sp += 4; - ++ret; - break; - } - case 's': - { - if (wrapper_fputs(mem, MEM_U32(sp), fp_addr) == -1) { - return ret; - } - sp += 4; - ++ret; - break; - } - case 'c': - { - char buf[32]; - sprintf(buf, "%c", MEM_U32(sp)); - strcpy1(mem, INTBUF_ADDR, buf); - if (wrapper_fputs(mem, INTBUF_ADDR, fp_addr) == -1) { - return ret; - } - sp += 4; - ++ret; - break; - } - default: - fprintf(stderr, "missing format: '%s'\n", format); - assert(0 && "non-implemented fprintf format"); - } - format_addr = ++pos; - } - return ret; -} - -int wrapper__doprnt(uint8_t *mem, uint32_t format_addr, uint32_t params_addr, uint32_t fp_addr) { - assert(0 && "_doprnt not implemented"); - return 0; -} - -uint32_t wrapper_strlen(uint8_t *mem, uint32_t str_addr) { - uint32_t len = 0; - while (MEM_S8(str_addr) != '\0') { - ++str_addr; - ++len; - } - return len; -} - -int wrapper_open(uint8_t *mem, uint32_t pathname_addr, int flags, int mode) { - STRING(pathname) - int f = flags & O_ACCMODE; - if (flags & 0x100) { - f |= O_CREAT; - } - if (flags & 0x200) { - f |= O_TRUNC; - } - if (flags & 0x400) { - f |= O_EXCL; - } - if (flags & 0x800) { - f |= O_NOCTTY; - } - if (flags & 0x08) { - f |= O_APPEND; - } - int fd = open(pathname, f, mode); - MEM_U32(ERRNO_ADDR) = errno; - return fd; -} - -int wrapper_creat(uint8_t *mem, uint32_t pathname_addr, int mode) { - STRING(pathname) - int ret = creat(pathname, mode); - if (ret < 0) { - MEM_U32(ERRNO_ADDR) = errno; - } - return ret; -} - -int wrapper_access(uint8_t *mem, uint32_t pathname_addr, int mode) { - STRING(pathname) - int ret = access(pathname, mode); - if (ret != 0) { - MEM_U32(ERRNO_ADDR) = errno; - } - return ret; -} - -int wrapper_rename(uint8_t *mem, uint32_t oldpath_addr, uint32_t newpath_addr) { - STRING(oldpath) - STRING(newpath) - int ret = rename(oldpath, newpath); - if (ret != 0) { - MEM_U32(ERRNO_ADDR) = errno; - } - return ret; -} - -int wrapper_utime(uint8_t *mem, uint32_t filename_addr, uint32_t times_addr) { - STRING(filename) - struct utimbuf buf = {0, 0}; - int ret = utime(filename, times_addr == 0 ? NULL : &buf); - if (ret == 0) { - if (times_addr != 0) { - MEM_U32(times_addr + 0) = buf.actime; - MEM_U32(times_addr + 4) = buf.modtime; - } - } else { - MEM_U32(ERRNO_ADDR) = errno; - } - return ret; -} - -int wrapper_flock(uint8_t *mem, int fd, int operation) { - int ret = flock(fd, operation); - if (ret != 0) { - MEM_U32(ERRNO_ADDR) = errno; - } - return ret; -} - -int wrapper_chmod(uint8_t *mem, uint32_t path_addr, uint32_t mode) { - STRING(path) - int ret = chmod(path, mode); - if (ret < 0) { - MEM_U32(ERRNO_ADDR) = errno; - } - return ret; -} - -int wrapper_umask(int mode) { - return umask(mode); -} - -uint32_t wrapper_ecvt(uint8_t *mem, double number, int ndigits, uint32_t decpt_addr, uint32_t sign_addr) { - assert(0); -} - -uint32_t wrapper_fcvt(uint8_t *mem, double number, int ndigits, uint32_t decpt_addr, uint32_t sign_addr) { - assert(0); -} - -double wrapper_sqrt(double v) { - return sqrt(v); -} - -float wrapper_sqrtf(float v) { - return sqrtf(v); -} - -int wrapper_atoi(uint8_t *mem, uint32_t nptr_addr) { - STRING(nptr) - return atoi(nptr); -} - -int wrapper_atol(uint8_t *mem, uint32_t nptr_addr) { - return wrapper_atoi(mem, nptr_addr); -} - -double wrapper_atof(uint8_t *mem, uint32_t nptr_addr) { - STRING(nptr); - return atof(nptr); -} - -int wrapper_strtol(uint8_t *mem, uint32_t nptr_addr, uint32_t endptr_addr, int base) { - STRING(nptr) - char *endptr = NULL; - int64_t res = strtoll(nptr, endptr_addr != 0 ? &endptr : NULL, base); - if (res > INT_MAX) { - MEM_U32(ERRNO_ADDR) = ERANGE; - res = INT_MAX; - } - if (res < INT_MIN) { - MEM_U32(ERRNO_ADDR) = ERANGE; - res = INT_MIN; - } - if (endptr != NULL) { - MEM_U32(endptr_addr) = nptr_addr + (uint32_t)(endptr - nptr); - } - return res; -} - -uint32_t wrapper_strtoul(uint8_t *mem, uint32_t nptr_addr, uint32_t endptr_addr, int base) { - STRING(nptr) - char *endptr = NULL; - uint64_t res = strtoull(nptr, endptr_addr != 0 ? &endptr : NULL, base); - if (res > INT_MAX) { - MEM_U32(ERRNO_ADDR) = ERANGE; - res = INT_MAX; - } - if (endptr != NULL) { - MEM_U32(endptr_addr) = nptr_addr + (uint32_t)(endptr - nptr); - } - return res; -} - -double wrapper_strtod(uint8_t *mem, uint32_t nptr_addr, uint32_t endptr_addr) { - STRING(nptr) - char *endptr = NULL; - errno = 0; - double res = strtod(nptr, endptr_addr != 0 ? &endptr : NULL); - if (errno != 0) { - MEM_U32(ERRNO_ADDR) = errno; - } - if (endptr != NULL) { - MEM_U32(endptr_addr) = nptr_addr + (uint32_t)(endptr - nptr); - } - return res; -} - -uint32_t wrapper_strchr(uint8_t *mem, uint32_t str_addr, int c) { - c = c & 0xff; - for (;;) { - unsigned char ch = MEM_U8(str_addr); - if (ch == c) { - return str_addr; - } - if (ch == '\0') { - return 0; - } - ++str_addr; - } -} - -uint32_t wrapper_strrchr(uint8_t *mem, uint32_t str_addr, int c) { - c = c & 0xff; - uint32_t ret = 0; - for (;;) { - unsigned char ch = MEM_U8(str_addr); - if (ch == c) { - ret = str_addr; - } - if (ch == '\0') { - return ret; - } - ++str_addr; - } -} - -uint32_t wrapper_strcspn(uint8_t *mem, uint32_t str_addr, uint32_t invalid_addr) { - STRING(invalid) - uint32_t n = strlen(invalid); - uint32_t pos = 0; - char c; - while ((c = MEM_S8(str_addr)) != 0) { - for (int i = 0; i < n; i++) { - if (c == invalid[i]) { - return pos; - } - } - ++pos; - ++str_addr; - } - return pos; -} - -uint32_t wrapper_strpbrk(uint8_t *mem, uint32_t str_addr, uint32_t accept_addr) { - STRING(accept) - uint32_t n = strlen(accept); - char c; - while ((c = MEM_S8(str_addr)) != 0) { - for (int i = 0; i < n; i++) { - if (c == accept[i]) { - return str_addr; - } - } - ++str_addr; - } - return 0; -} - -static void stat_common(uint8_t *mem, uint32_t buf_addr, struct stat *statbuf) { - struct irix_stat { - int st_dev; - int pad1[3]; - int st_ino; - int st_mode; - int st_nlink; - int st_uid; - int st_gid; - int st_rdev; - int pad2[2]; - int st_size; - int pad3; - struct timespec_t_irix st_atim; - struct timespec_t_irix st_mtim; - struct timespec_t_irix st_ctim; - int st_blksize; - int st_blocks; - } s; - s.st_dev = statbuf->st_dev; - s.st_ino = statbuf->st_ino; - s.st_mode = statbuf->st_mode; - s.st_nlink = statbuf->st_nlink; - s.st_uid = statbuf->st_uid; - s.st_gid = statbuf->st_gid; - s.st_rdev = statbuf->st_rdev; - s.st_size = statbuf->st_size; -#ifdef __APPLE__ - s.st_atim.tv_sec = statbuf->st_atimespec.tv_sec; - s.st_atim.tv_nsec = statbuf->st_atimespec.tv_nsec; - s.st_mtim.tv_sec = statbuf->st_mtimespec.tv_sec; - s.st_mtim.tv_nsec = statbuf->st_mtimespec.tv_nsec; - s.st_ctim.tv_sec = statbuf->st_ctimespec.tv_sec; - s.st_ctim.tv_nsec = statbuf->st_ctimespec.tv_nsec; -#else - s.st_atim.tv_sec = statbuf->st_atim.tv_sec; - s.st_atim.tv_nsec = statbuf->st_atim.tv_nsec; - s.st_mtim.tv_sec = statbuf->st_mtim.tv_sec; - s.st_mtim.tv_nsec = statbuf->st_mtim.tv_nsec; - s.st_ctim.tv_sec = statbuf->st_ctim.tv_sec; - s.st_ctim.tv_nsec = statbuf->st_ctim.tv_nsec; -#endif - memcpy(&MEM_U32(buf_addr), &s, sizeof(s)); -} - -int wrapper_fstat(uint8_t *mem, int fildes, uint32_t buf_addr) { - struct stat statbuf; - if (fstat(fildes, &statbuf) < 0) { - MEM_U32(ERRNO_ADDR) = errno; - return -1; - } else { - stat_common(mem, buf_addr, &statbuf); - return 0; - } -} - -int wrapper_stat(uint8_t *mem, uint32_t pathname_addr, uint32_t buf_addr) { - STRING(pathname) - struct stat statbuf; - if (stat(pathname, &statbuf) < 0) { - MEM_U32(ERRNO_ADDR) = errno; - return -1; - } else { - stat_common(mem, buf_addr, &statbuf); - return 0; - } -} - -int wrapper_ftruncate(uint8_t *mem, int fd, int length) { - int ret = ftruncate(fd, length); - if (ret != 0) { - MEM_U32(ERRNO_ADDR) = errno; - } - return ret; -} - -void wrapper_bcopy(uint8_t *mem, uint32_t src_addr, uint32_t dst_addr, uint32_t len) { - wrapper_memcpy(mem, dst_addr, src_addr, len); -} - -uint32_t wrapper_memcpy(uint8_t *mem, uint32_t dst_addr, uint32_t src_addr, uint32_t len) { - uint32_t saved = dst_addr; - if (dst_addr % 4 == 0 && src_addr % 4 == 0 && len % 4 == 0) { - memcpy(&MEM_U32(dst_addr), &MEM_U32(src_addr), len); - } else { - while (len--) { - MEM_U8(dst_addr) = MEM_U8(src_addr); - ++dst_addr; - ++src_addr; - } - } - return saved; -} - -uint32_t wrapper_memccpy(uint8_t *mem, uint32_t dst_addr, uint32_t src_addr, int c, uint32_t len) { - while (len--) { - uint8_t ch = MEM_U8(src_addr); - MEM_U8(dst_addr) = ch; - ++dst_addr; - ++src_addr; - if (ch == c) { - return dst_addr; - } - } - return 0; -} - -int wrapper_read(uint8_t *mem, int fd, uint32_t buf_addr, uint32_t nbytes) { - uint8_t *buf = (uint8_t *)malloc(nbytes); - ssize_t ret = read(fd, buf, nbytes); - if (ret < 0) { - MEM_U32(ERRNO_ADDR) = errno; - } else { - for (ssize_t i = 0; i < ret; i++) { - MEM_U8(buf_addr + i) = buf[i]; - } - } - free(buf); - return (int)ret; -} - -int wrapper_write(uint8_t *mem, int fd, uint32_t buf_addr, uint32_t nbytes) { - uint8_t *buf = (uint8_t *)malloc(nbytes); - for (size_t i = 0; i < nbytes; i++) { - buf[i] = MEM_U8(buf_addr + i); - } - ssize_t ret = write(fd, buf, nbytes); - if (ret < 0) { - MEM_U32(ERRNO_ADDR) = errno; - } - free(buf); - return (int)ret; -} - -static uint32_t init_file(uint8_t *mem, int fd, int i, const char *path, const char *mode) { - int flags = O_RDONLY; - if (strcmp(mode, "r") == 0 || strcmp(mode, "rb") == 0) { - flags = O_RDONLY; - } else if (strcmp(mode, "w") == 0 || strcmp(mode, "wb") == 0) { - flags = O_WRONLY | O_CREAT | O_TRUNC; - } else if (strcmp(mode, "a") == 0 || strcmp(mode, "ab") == 0) { - flags = O_WRONLY | O_CREAT | O_APPEND; - } else if (strcmp(mode, "r+") == 0 || strcmp(mode, "r+b") == 0) { - flags = O_RDWR; - } else if (strcmp(mode, "w+") == 0 || strcmp(mode, "w+b") == 0) { - flags = O_RDWR | O_CREAT | O_TRUNC; - } else if (strcmp(mode, "a+") == 0 || strcmp(mode, "a+b") == 0) { - flags = O_RDWR | O_CREAT | O_APPEND; - } - if (fd == -1) { - -#ifdef REDIRECT_USR_LIB - char fixed_path[PATH_MAX + 1]; - if (!strcmp(path, "/usr/lib/err.english.cc") && bin_dir[0] != '\0') { - int n = snprintf(fixed_path, sizeof(fixed_path), "%s/err.english.cc", bin_dir); - if (n >= 0 && n < sizeof(fixed_path)) { - path = fixed_path; - } - } -#endif - fd = open(path, flags, 0666); - if (fd < 0) { - MEM_U32(ERRNO_ADDR) = errno; - return 0; - } - } - struct FILE_irix *f = (struct FILE_irix *)&MEM_U32(IOB_ADDR); - uint32_t ret = 0; - if (i == -1) { - for (i = 3; i < NFILE; i++) { - if (f[i]._flag == 0) { - break; - } - } - } - assert(i < NFILE); - g_file_max = i + 1; - ret = IOB_ADDR + i * sizeof(struct FILE_irix); - f[i]._cnt = 0; - f[i]._ptr_addr = 0; - f[i]._base_addr = 0; - f[i]._file = fd; - f[i]._flag = (flags & O_ACCMODE) == O_RDONLY ? IOREAD : 0; - f[i]._flag |= (flags & O_ACCMODE) == O_WRONLY ? IOWRT : 0; - f[i]._flag |= (flags & O_ACCMODE) == O_RDWR ? IORW : 0; - bufendtab[i] = 0; - return ret; -} - -uint32_t wrapper_fopen(uint8_t *mem, uint32_t path_addr, uint32_t mode_addr) { - STRING(path) - STRING(mode) - return init_file(mem, -1, -1, path, mode); -} - -uint32_t wrapper_freopen(uint8_t *mem, uint32_t path_addr, uint32_t mode_addr, uint32_t fp_addr) { - STRING(path) - STRING(mode) - struct FILE_irix *f = (struct FILE_irix *)&MEM_U32(fp_addr); - wrapper_fclose(mem, fp_addr); - return init_file(mem, -1, f - (struct FILE_irix *)&MEM_U32(IOB_ADDR), path, mode); -} - -int wrapper_fclose(uint8_t *mem, uint32_t fp_addr) { - struct FILE_irix *f = (struct FILE_irix *)&MEM_U32(fp_addr); - wrapper_fflush(mem, fp_addr); - if (f->_flag & IOMYBUF) { - wrapper_free(mem, f->_base_addr); - } - f->_flag = 0; - close(f->_file); - return 0; -} - -static int flush_all(uint8_t *mem) { - struct FILE_irix *f = (struct FILE_irix *)&MEM_U32(IOB_ADDR); - int ret = 0; - for (int i = 0; i < g_file_max; i++) { - if (f[i]._flag & IOWRT) { - ret |= wrapper_fflush(mem, IOB_ADDR + i * sizeof(struct FILE_irix)); - } - } - return ret; -} - -int wrapper_fflush(uint8_t *mem, uint32_t fp_addr) { - if (fp_addr == 0) { - // Flush all - return flush_all(mem); - } - struct FILE_irix *f = (struct FILE_irix *)&MEM_U32(fp_addr); - if (f->_flag & IOWRT) { - int p = 0; - int to_flush = f->_ptr_addr - f->_base_addr; - int c = to_flush; - while (c > 0) { - int r = wrapper_write(mem, f->_file, f->_base_addr + p, c); - if (r < 0) { - f->_file |= IOERR; - return -1; - } - p += r; - c -= r; - } - f->_ptr_addr = f->_base_addr; - f->_cnt += to_flush; - } - return 0; -} - -int wrapper_ftell(uint8_t *mem, uint32_t fp_addr) { - struct FILE_irix *f = (struct FILE_irix *)&MEM_U32(fp_addr); - int adjust; - if (f->_cnt < 0) { - f->_cnt = 0; - } - if (f->_flag & IOREAD) { - adjust = -f->_cnt; - } else if (f->_flag & (IOWRT | IORW)) { - adjust = 0; - if ((f->_flag & IOWRT) && f->_base_addr != 0 && (f->_flag & IONBF) == 0) { - adjust = f->_ptr_addr - f->_base_addr; - } - } else { - return -1; - } - int res = wrapper_lseek(mem, f->_file, 0, 1); - if (res >= 0) { - res += adjust; - } - return res; -} - -int wrapper_rewind(uint8_t *mem, uint32_t fp_addr) { - (void)wrapper_fseek(mem, fp_addr, 0, SEEK_SET); - struct FILE_irix *f = (struct FILE_irix *)&MEM_U32(fp_addr); - f->_flag &= ~IOERR; -} - -int wrapper_fseek(uint8_t *mem, uint32_t fp_addr, int offset, int origin) { - struct FILE_irix *f = (struct FILE_irix *)&MEM_U32(fp_addr); - int c, p; - f->_flag &= ~IOEOF; - if (f->_flag & IOREAD) { - if (origin < SEEK_END && f->_base_addr && !(f->_flag & IONBF)) { - c = f->_cnt; - p = offset; - if (origin == SEEK_SET) { - p += c - lseek(f->_file, 0L, SEEK_CUR); - } else { - offset -= c; - } - if (!(f->_flag & IORW) && c > 0 && p <= c && p >= f->_base_addr - f->_ptr_addr) { - f->_ptr_addr += p; - f->_cnt -= p; - return 0; - } - } - if (f->_flag & IORW) { - f->_ptr_addr = f->_base_addr; - f->_flag &= ~IOREAD; - } - p = lseek(f->_file, offset, origin); - f->_cnt = 0; - } else if (f->_flag & (IOWRT | IORW)) { - wrapper_fflush(mem, fp_addr); - if (f->_flag & IORW) { - f->_cnt = 0; - f->_flag &= ~IOWRT; - f->_ptr_addr = f->_base_addr; - } - p = lseek(f->_file, offset, origin); - } - if (p < 0) { - MEM_U32(ERRNO_ADDR) = errno; - return p; - } - return 0; -} - -int wrapper_lseek(uint8_t *mem, int fd, int offset, int whence) { - int ret = (int)lseek(fd, offset, whence); - if (ret == -1) { - MEM_U32(ERRNO_ADDR) = errno; - } - return ret; -} - -int wrapper_dup(uint8_t *mem, int fd) { - fd = dup(fd); - if (fd < 0) { - MEM_U32(ERRNO_ADDR) = errno; - } - return fd; -} - -int wrapper_dup2(uint8_t *mem, int oldfd, int newfd) { - int fd = dup2(oldfd, newfd); - if (fd < 0) { - MEM_U32(ERRNO_ADDR) = errno; - } - return fd; -} - -int wrapper_pipe(uint8_t *mem, uint32_t pipefd_addr) { - int pipefd[2]; - int ret = pipe(pipefd); - if (ret == 0) { - MEM_U32(pipefd_addr + 0) = pipefd[0]; - MEM_U32(pipefd_addr + 4) = pipefd[1]; - } else { - MEM_U32(ERRNO_ADDR) = errno; - } - return ret; -} - -void wrapper_perror(uint8_t *mem, uint32_t str_addr) { - STRING(str) - perror(str); -} - -int wrapper_fdopen(uint8_t *mem, int fd, uint32_t mode_addr) { - STRING(mode) - return init_file(mem, fd, -1, NULL, mode); -} - -uint32_t wrapper_memset(uint8_t *mem, uint32_t dest_addr, int byte, uint32_t n) { - uint32_t saved = dest_addr; - if (dest_addr % 4 == 0 && n % 4 == 0) { - memset(&MEM_U32(dest_addr), byte, n); - } else { - while (n--) { - MEM_U8(dest_addr) = (uint8_t)byte; - ++dest_addr; - } - } - return saved; -} - -int wrapper_bcmp(uint8_t *mem, uint32_t s1_addr, uint32_t s2_addr, uint32_t n) { - while (n--) { - if (MEM_U8(s1_addr) != MEM_U8(s2_addr)) { - return 1; - } - ++s1_addr; - ++s2_addr; - } - return 0; -} - -int wrapper_memcmp(uint8_t *mem, uint32_t s1_addr, uint32_t s2_addr, uint32_t n) { - while (n--) { - unsigned char c1 = MEM_U8(s1_addr); - unsigned char c2 = MEM_U8(s2_addr); - if (c1 < c2) { - return -1; - } - if (c1 > c2) { - return 1; - } - ++s1_addr; - ++s2_addr; - } - return 0; -} - -int wrapper_getpid(void) { - return getpid(); -} - -int wrapper_getpgrp(uint8_t *mem) { - int ret = getpgrp(); - if (ret == -1) { - MEM_U32(ERRNO_ADDR) = errno; - } - return ret; -} - -int wrapper_remove(uint8_t *mem, uint32_t path_addr) { - STRING(path) - int ret = remove(path); - if (ret < 0) { - MEM_U32(ERRNO_ADDR) = errno; - } - return ret; -} - -int wrapper_unlink(uint8_t *mem, uint32_t path_addr) { - if (path_addr == 0) { - fprintf(stderr, "Warning: unlink with NULL as arguement\n"); - MEM_U32(ERRNO_ADDR) = EFAULT; - return -1; - } - STRING(path) - int ret = unlink(path); - if (ret < 0) { - MEM_U32(ERRNO_ADDR) = errno; - } - return ret; -} - -int wrapper_close(uint8_t *mem, int fd) { - int ret = close(fd); - if (ret < 0) { - MEM_U32(ERRNO_ADDR) = errno; - } - return ret; -} - -int wrapper_strcmp(uint8_t *mem, uint32_t s1_addr, uint32_t s2_addr) { - for (;;) { - char c1 = MEM_S8(s1_addr); - char c2 = MEM_S8(s2_addr); - if (c1 != c2) { - return c1 < c2 ? -1 : 1; - } - if (c1 == '\0') { - return 0; - } - ++s1_addr; - ++s2_addr; - } -} - -int wrapper_strncmp(uint8_t *mem, uint32_t s1_addr, uint32_t s2_addr, uint32_t n) { - if (n == 0) { - return 0; - } - for (;;) { - char c1 = MEM_S8(s1_addr); - char c2 = MEM_S8(s2_addr); - if (c1 != c2) { - return c1 < c2 ? -1 : 1; - } - if (--n == 0 || c1 == '\0') { - return 0; - } - ++s1_addr; - ++s2_addr; - } -} - -uint32_t wrapper_strcpy(uint8_t *mem, uint32_t dest_addr, uint32_t src_addr) { - uint32_t saved = dest_addr; - for (;;) { - char c = MEM_S8(src_addr); - ++src_addr; - MEM_S8(dest_addr) = c; - ++dest_addr; - if (c == '\0') { - return saved; - } - } -} - -uint32_t wrapper_strncpy(uint8_t *mem, uint32_t dest_addr, uint32_t src_addr, uint32_t n) { - uint32_t i; - for (i = 0; i < n && MEM_S8(src_addr) != '\0'; i++) { - MEM_S8(dest_addr + i) = MEM_S8(src_addr + i); - } - for (; i < n; i++) { - MEM_S8(dest_addr + i) = '\0'; - } - return dest_addr; -} - -uint32_t wrapper_strcat(uint8_t *mem, uint32_t dest_addr, uint32_t src_addr) { - uint32_t saved = dest_addr; - while (MEM_S8(dest_addr) != '\0') { - ++dest_addr; - } - while (MEM_S8(src_addr) != '\0') { - MEM_S8(dest_addr) = MEM_S8(src_addr); - ++src_addr; - ++dest_addr; - } - MEM_S8(dest_addr) = '\0'; - return saved; -} - -uint32_t wrapper_strncat(uint8_t *mem, uint32_t dest_addr, uint32_t src_addr, uint32_t n) { - uint32_t saved = dest_addr; - while (MEM_S8(dest_addr) != '\0') { - ++dest_addr; - } - while (n-- && MEM_S8(src_addr) != '\0') { - MEM_S8(dest_addr) = MEM_S8(src_addr); - ++src_addr; - ++dest_addr; - } - MEM_S8(dest_addr) = '\0'; - return saved; -} - -uint32_t wrapper_strtok(uint8_t *mem, uint32_t str_addr, uint32_t delimiters_addr) { - if (str_addr == 0) { - str_addr = MEM_U32(STRTOK_DATA_ADDR); - } - if (str_addr == 0) { - // nothing remaining - return 0; - } - uint32_t p; - for (p = str_addr; MEM_S8(p) != '\0'; p++) { - uint32_t q; - for (q = delimiters_addr; MEM_S8(q) != '\0' && MEM_S8(q) != MEM_S8(p); q++) { - } - if (MEM_S8(q) == '\0') { - break; - } - } - if (MEM_S8(p) == '\0') { - return 0; - } - uint32_t ret = p; - for (;;) { - uint32_t q; - for (q = delimiters_addr; MEM_S8(q) != '\0' && MEM_S8(q) != MEM_S8(p); q++) { - } - if (MEM_S8(q) != '\0') { - MEM_S8(p) = '\0'; - MEM_U32(STRTOK_DATA_ADDR) = ++p; - return ret; - } - char next = MEM_S8(p); - ++p; - if (next == '\0') { - MEM_U32(STRTOK_DATA_ADDR) = 0; - return ret; - } - } -} - -uint32_t wrapper_strstr(uint8_t *mem, uint32_t str1_addr, uint32_t str2_addr) { - for (;;) { - if (MEM_S8(str1_addr) == '\0') { - return 0; - } - uint32_t s1 = str1_addr; - uint32_t s2 = str2_addr; - for (;;) { - char c2 = MEM_S8(s2); - if (c2 == '\0') { - return str1_addr; - } - if (MEM_S8(s1) == c2) { - ++s1; - ++s2; - } else { - break; - } - } - ++str1_addr; - } -} - -uint32_t wrapper_strdup(uint8_t *mem, uint32_t str_addr) { - uint32_t len = wrapper_strlen(mem, str_addr) + 1; - uint32_t ret = wrapper_malloc(mem, len); - if (ret == 0) { - MEM_U32(ERRNO_ADDR) = ENOMEM; - return 0; - } - return wrapper_memcpy(mem, ret, str_addr, len); -} - -int wrapper_toupper(int c) { - return toupper(c); -} - -int wrapper_tolower(int c) { - return tolower(c); -} - -int wrapper_gethostname(uint8_t *mem, uint32_t name_addr, uint32_t len) { - char buf[256] = {0}; - if (len > 256) { - len = 256; - } - int ret = gethostname(buf, len); - if (ret < 0) { - MEM_U32(ERRNO_ADDR) = errno; - } else { - for (uint32_t i = 0; i < len; i++) { - MEM_S8(name_addr + i) = buf[i]; - } - } - return ret; -} - -int wrapper_isatty(uint8_t *mem, int fd) { - int ret = isatty(fd); - if (ret == 0) { - MEM_U32(ERRNO_ADDR) = errno; - } - return ret; -} - -uint32_t wrapper_strftime(uint8_t *mem, uint32_t ptr_addr, uint32_t maxsize, uint32_t format_addr, uint32_t timeptr_addr) { - //assert(0 && "strftime not implemented"); - MEM_S8(ptr_addr) = 0; - return 0; -} - -int wrapper_times(uint8_t *mem, uint32_t buffer_addr) { - struct tms_irix { - int tms_utime; - int tms_stime; - int tms_cutime; - int tms_cstime; - } r; - struct tms t; - clock_t ret = times(&t); - if (ret == (clock_t)-1) { - MEM_U32(ERRNO_ADDR) = errno; - } else { - r.tms_utime = t.tms_utime; - r.tms_stime = t.tms_stime; - r.tms_cutime = t.tms_cutime; - r.tms_cstime = t.tms_cstime; - } - return (int)ret; -} - -int wrapper_clock(void) { - return (int)clock(); -} - -uint32_t wrapper_ctime(uint8_t *mem, uint32_t timep_addr) { - time_t t = MEM_S32(timep_addr); - char *res = ctime(&t); - size_t len = strlen(res) + 1; - uint32_t ret_addr = wrapper_malloc(mem, len); - uint32_t pos = ret_addr; - while (len--) { - MEM_S8(pos) = *res; - ++pos; - ++res; - } - return ret_addr; - //assert(0 && "ctime not implemented"); - //return 0; -} - -uint32_t wrapper_localtime(uint8_t *mem, uint32_t timep_addr) { - time_t t = MEM_S32(timep_addr); - struct irix_tm { - int tm_sec; - int tm_min; - int tm_hour; - int tm_mday; - int tm_mon; - int tm_year; - int tm_wday; - int tm_yday; - int tm_isdst; - }; - uint32_t ret = wrapper_malloc(mem, sizeof(struct irix_tm)); - struct irix_tm *r = (struct irix_tm *)&MEM_U32(ret); - struct tm *l = localtime(&t); - r->tm_sec = l->tm_sec; - r->tm_min = l->tm_min; - r->tm_hour = l->tm_hour; - r->tm_mday = l->tm_mday; - r->tm_mon = l->tm_mon; - r->tm_year = l->tm_year; - r->tm_wday = l->tm_wday; - r->tm_yday = l->tm_yday; - r->tm_isdst = l->tm_isdst; - return ret; -} - -int wrapper_setvbuf(uint8_t *mem, uint32_t fp_addr, uint32_t buf_addr, int mode, uint32_t size) { - struct FILE_irix *f = (struct FILE_irix *)&MEM_U32(fp_addr); - wrapper_fflush(mem, fp_addr); - if ((f->_flag & IOMYBUF) && f->_base_addr != 0) { - wrapper_free(mem, f->_base_addr); - } - size &= ~0xf; - f->_flag &= ~IOMYBUF; - f->_base_addr = buf_addr; - f->_ptr_addr = buf_addr; - f->_cnt = 0; - bufendtab[(fp_addr - IOB_ADDR) / sizeof(struct FILE_irix)] = size; -} - -int wrapper___semgetc(uint8_t *mem, uint32_t fp_addr) { - assert(0); -} - -int wrapper___semputc(uint8_t *mem, int c, uint32_t fp_addr) { - assert(0); -} - -int wrapper_fgetc(uint8_t *mem, uint32_t fp_addr) { - struct FILE_irix *f = (struct FILE_irix *)&MEM_U32(fp_addr); - if (--f->_cnt < 0) { - return wrapper___filbuf(mem, fp_addr); - } else { - int ret = MEM_U8(f->_ptr_addr); - ++f->_ptr_addr; - return ret; - } -} - -int wrapper_fgets(uint8_t *mem, uint32_t str_addr, int count, uint32_t fp_addr) { - bool modified = false; - uint32_t saved = str_addr; - for (count--; count > 0; count--) { - int ch = wrapper_fgetc(mem, fp_addr); - if (ch == -1) { - MEM_S8(str_addr) = '\0'; - return modified ? saved : 0; - } - modified = true; - MEM_S8(str_addr) = (char)ch; - ++str_addr; - if (ch == '\n') { - break; - } - } - MEM_S8(str_addr) = '\0'; - return saved; -} - -static void file_assign_buffer(uint8_t *mem, struct FILE_irix *f) { - f->_base_addr = wrapper_malloc(mem, STDIO_BUFSIZE); - f->_ptr_addr = f->_base_addr; - f->_flag |= IOMYBUF; - f->_cnt = 0; - bufendtab[f - (struct FILE_irix *)&MEM_U32(IOB_ADDR)] = STDIO_BUFSIZE; -} - -int wrapper___filbuf(uint8_t *mem, uint32_t fp_addr) { - struct FILE_irix *f = (struct FILE_irix *)&MEM_U32(fp_addr); - if (!(f->_flag & IOREAD)) { - if (f->_flag & IORW) { - f->_flag |= IOREAD; - } else { - MEM_U32(ERRNO_ADDR) = 9; // EBADF - return -1; - } - } - if (f->_base_addr == 0) { - file_assign_buffer(mem, f); - } - uint32_t size = bufendtab[(fp_addr - IOB_ADDR) / sizeof(struct FILE_irix)]; - int nread = wrapper_read(mem, f->_file, f->_base_addr, size); - int ret = -1; - if (nread > 0) { - f->_ptr_addr = f->_base_addr; - f->_cnt = nread; - ret = MEM_U8(f->_ptr_addr); - ++f->_ptr_addr; - --f->_cnt; - } else if (nread == 0) { - f->_flag |= IOEOF; - } else { - f->_flag |= IOERR; - } - return ret; -} - -int wrapper___flsbuf(uint8_t *mem, int ch, uint32_t fp_addr) { - struct FILE_irix *f = (struct FILE_irix *)&MEM_U32(fp_addr); - if (wrapper_fflush(mem, fp_addr) != 0) { - return -1; - } - if (f->_base_addr == 0) { - file_assign_buffer(mem, f); - f->_cnt = bufendtab[f - (struct FILE_irix *)&MEM_U32(IOB_ADDR)]; - } - MEM_U8(f->_ptr_addr) = ch; - ++f->_ptr_addr; - --f->_cnt; - if (f->_flag & IONBF) { - if (wrapper_fflush(mem, fp_addr) != 0) { - return -1; - } - f->_cnt = 0; - } - return ch; -} - -int wrapper_ungetc(uint8_t *mem, int ch, uint32_t fp_addr) { - struct FILE_irix *f = (struct FILE_irix *)&MEM_U32(fp_addr); - if (ch == -1 || f->_ptr_addr == f->_base_addr) { - return -1; - } - --f->_ptr_addr; - MEM_U8(f->_ptr_addr) = (uint8_t)ch; - ++f->_cnt; - f->_flag &= ~IOEOF; - return ch; -} - -uint32_t wrapper_gets(uint8_t *mem, uint32_t str_addr) { - uint32_t p, str0 = str_addr; - int n; - - for (;;) { - if (STDIN->_cnt <= 0) { - if (wrapper___filbuf(mem, STDIN_ADDR) == -1) { - if (str0 == str_addr) { - return 0; - } - break; - } - --STDIN->_ptr_addr; - ++STDIN->_cnt; - } - n = STDIN->_cnt; - if ((p = wrapper_memccpy(mem, str_addr, STDIN->_ptr_addr, '\n', n)) != 0) { - n = p - str_addr; - } - str_addr += n; - STDIN->_cnt -= n; - STDIN->_ptr_addr += n; - // bufsync - if (p != 0) { - // found '\n' in buffer - --str_addr; - break; - } - } - MEM_S8(str_addr) = '\0'; - return str0; -} - -uint32_t wrapper_fread(uint8_t *mem, uint32_t data_addr, uint32_t size, uint32_t count, uint32_t fp_addr) { - struct FILE_irix *f = (struct FILE_irix *)&MEM_U32(fp_addr); - int nleft = count * size; - int n; - for (;;) { - if (f->_cnt <= 0) { - if (wrapper___filbuf(mem, fp_addr) == -1) { - return count - (nleft + size - 1) / size; - } - --f->_ptr_addr; - ++f->_cnt; - } - n = MIN(nleft, f->_cnt); - data_addr = wrapper_memcpy(mem, data_addr, f->_ptr_addr, n) + n; - f->_cnt -= n; - f->_ptr_addr += n; - if ((nleft -= n) <= 0) { - return count; - } - } -} - -uint32_t wrapper_fwrite(uint8_t *mem, uint32_t data_addr, uint32_t size, uint32_t count, uint32_t fp_addr) { - struct FILE_irix *f = (struct FILE_irix *)&MEM_U32(fp_addr); - if (size > 0 && count > 0 && f->_base_addr == 0) { - file_assign_buffer(mem, f); - f->_cnt = bufendtab[f - (struct FILE_irix *)&MEM_U32(IOB_ADDR)]; - f->_flag |= IOWRT; - } - uint32_t num_written = 0; - while (count--) { - uint32_t s = size; - while (s > 0) { - uint32_t to_write = f->_cnt; - if (s < to_write) { - to_write = s; - } - if (f->_cnt == 0) { - if (wrapper_fflush(mem, fp_addr) != 0) { - return num_written; - } - } - wrapper_memcpy(mem, f->_ptr_addr, data_addr, to_write); - data_addr += to_write; - f->_ptr_addr += to_write; - f->_cnt -= to_write; - s -= to_write; - } - num_written++; - } - if (f->_flag & IONBF) { - wrapper_fflush(mem, fp_addr); // TODO check error return value - } - return num_written; -} - -int wrapper_fputs(uint8_t *mem, uint32_t str_addr, uint32_t fp_addr) { - uint32_t len = wrapper_strlen(mem, str_addr); - uint32_t ret = wrapper_fwrite(mem, str_addr, 1, len, fp_addr); - return ret == 0 && len != 0 ? -1 : 0; -} - -int wrapper_puts(uint8_t *mem, uint32_t str_addr) { - int ret = wrapper_fputs(mem, str_addr, STDOUT_ADDR); - if (ret != 0) { - return ret; - } - struct FILE_irix *f = STDOUT; - if (--f->_cnt < 0) { - if (wrapper___flsbuf(mem, '\n', STDOUT_ADDR) != '\n') { - return -1; - } - } else { - MEM_S8(f->_ptr_addr) = '\n'; - ++f->_ptr_addr; - } - return 0; -} - -uint32_t wrapper_getcwd(uint8_t *mem, uint32_t buf_addr, uint32_t size) { - char buf[size]; - if (getcwd(buf, size) == NULL) { - MEM_U32(ERRNO_ADDR) = errno; - return 0; - } else { - if (buf_addr == 0) { - buf_addr = wrapper_malloc(mem, size); - } - strcpy1(mem, buf_addr, buf); - return buf_addr; - } -} - -int wrapper_time(uint8_t *mem, uint32_t tloc_addr) { - time_t ret = time(NULL); - if (ret == (time_t)-1) { - MEM_U32(ERRNO_ADDR) = errno; - } else if (tloc_addr != 0) { - MEM_S32(tloc_addr) = ret; - } - return ret; -} - -void wrapper_bzero(uint8_t *mem, uint32_t str_addr, uint32_t n) { - while (n--) { - MEM_U8(str_addr) = 0; - ++str_addr; - } -} - -int wrapper_fp_class_d(double d) { - union { - uint32_t w[2]; - double d; - } bits; - bits.d = d; - uint32_t a2 = bits.w[1]; - uint32_t a1 = a2 >> 20; - uint32_t a0 = a1; - a2 &= 0xfffff; - uint32_t a3 = bits.w[0]; - a1 &= 0x7ff; - a0 &= 0x800; - if (a1 == 0x7ff) { - if (a2 == 0 && a3 == 0) { - return a0 == 0 ? 2 : 3; - } - a0 = a2 & 0x80000; - return a0 == 0 ? 1 : 0; - } - if (a1 == 0) { - if (a2 == 0 && a3 == 0) { - return a0 == 0 ? 8 : 9; - } - return a0 == 0 ? 6 : 7; - } - return a0 == 0 ? 4 : 5; -} - -double wrapper_ldexp(double d, int i) { - return ldexp(d, i); -} - -int64_t wrapper___ll_mul(int64_t a0, int64_t a1) { - return a0 * a1; -} - -int64_t wrapper___ll_div(int64_t a0, int64_t a1) { - return a0 / a1; -} - -int64_t wrapper___ll_rem(uint64_t a0, int64_t a1) { - return a0 % a1; -} - -int64_t wrapper___ll_lshift(int64_t a0, uint64_t shift) { - return a0 << (shift & 0x3f); -} - -int64_t wrapper___ll_rshift(int64_t a0, uint64_t shift) { - return a0 >> (shift & 0x3f); -} - -uint64_t wrapper___ull_div(uint64_t a0, uint64_t a1) { - return a0 / a1; -} - -uint64_t wrapper___ull_rem(uint64_t a0, uint64_t a1) { - return a0 % a1; -} - -uint64_t wrapper___ull_rshift(uint64_t a0, uint64_t shift) { - return a0 >> (shift & 0x3f); -} - -uint64_t wrapper___d_to_ull(double d) { - return d; -} - -int64_t wrapper___d_to_ll(double d) { - return d; -} - -uint64_t wrapper___f_to_ull(float f) { - return f; -} - -int64_t wrapper___f_to_ll(float f) { - return f; -} - -float wrapper___ull_to_f(uint64_t v) { - return v; -} - -float wrapper___ll_to_f(int64_t v) { - return v; -} - -double wrapper___ull_to_d(uint64_t v) { - return v; -} - -double wrapper___ll_to_d(int64_t v) { - return v; -} - -void wrapper_abort(uint8_t *mem) { - abort(); -} - -void wrapper_exit(uint8_t *mem, int status) { - exit(status); -} - -void wrapper__exit(uint8_t *mem, int status) { - assert(0 && "_exit not implemented"); // exit() is already overridden -} - -void wrapper__cleanup(uint8_t *mem) { -} - -uint32_t wrapper__rld_new_interface(uint8_t *mem, uint32_t operation, uint32_t sp) { - assert(0 && "_rld_new_interface not implemented"); - return 0; -} - -void wrapper__exithandle(uint8_t *mem) { - assert(0 && "_exithandle not implemented"); -} - -int wrapper__prctl(uint8_t *mem, int operation, uint32_t sp) { - assert(0 && "_prctl not implemented"); - return 0; -} - -double wrapper__atod(uint8_t *mem, uint32_t buffer_addr, int ndigits, int dexp) { - // ftp://atoum.hst.nerim.net/irix/src/irix-6.5.5-src/6.5.5/m/irix/lib/libc/src/math/atod.c - assert(0 && "_atod not implemented"); - return 0.0; -} - -int wrapper_pathconf(uint8_t *mem, uint32_t path_addr, int name) { - STRING(path) - if (name == 5) { - errno = 0; - int ret = pathconf(path, _PC_PATH_MAX); - if (errno != 0) { - MEM_U32(ERRNO_ADDR) = errno; - } - return ret; - } - assert(0 && "pathconf not implemented for the specific 'name'"); - return 0; -} - -uint32_t wrapper_getenv(uint8_t *mem, uint32_t name_addr) { - // Return null for everything, for now - return 0; -} - -uint32_t wrapper_gettxt(uint8_t *mem, uint32_t msgid_addr, uint32_t default_str_addr) { - // Return default for now - return default_str_addr; -} - -uint32_t wrapper_setlocale(uint8_t *mem, int category, uint32_t locale_addr) { - assert(locale_addr != 0); - STRING(locale) - assert(category == 6); // LC_ALL - char *ret = setlocale(LC_ALL, locale); - // Let's hope the caller doesn't use the return value - return 0; -} - -uint32_t wrapper_mmap(uint8_t *mem, uint32_t addr, uint32_t length, int prot, int flags, int fd, int offset) { - assert(0 && "mmap not implemented"); - return 0; -} - -int wrapper_munmap(uint8_t *mem, uint32_t addr, uint32_t length) { - assert(0 && "munmap not implemented"); - return 0; -} - -int wrapper_mprotect(uint8_t *mem, uint32_t addr, uint32_t length, int prot) { - assert(0 && "mprotect not implemented"); - return 0; -} - -int wrapper_sysconf(uint8_t *mem, int name) { - assert(0 && "sysconf not implemented"); - return 0; -} - -int wrapper_getpagesize(uint8_t *mem) { - return 4096; -} - -int wrapper_strerror(uint8_t *mem, int errnum) { - errno = errnum; - perror("strerror"); - assert(0 && "strerror not implemented"); - return 0; -} - -int wrapper_ioctl(uint8_t *mem, int fd, uint32_t request, uint32_t sp) { - assert(0 && "ioctl not implemented"); - return 0; -} - -int wrapper_fcntl(uint8_t *mem, int fd, int cmd, uint32_t sp) { - assert(0 && "fcntl not implemented"); - return 0; -} - -static void signal_handler(int signum) { - uint32_t level = signal_context.recursion_level++; - uint8_t *mem = signal_context.handlers[signum].mem; - uint32_t fp_dest = signal_context.handlers[signum].fp_dest; - uint32_t sp = SIGNAL_HANDLER_STACK_START - 16 - level * 0x1000; - signal_context.handlers[signum].trampoline(mem, sp, signum, 0, 0, 0, fp_dest); - signal_context.recursion_level--; -} - -uint32_t wrapper_signal(uint8_t *mem, int signum, uint64_t (*trampoline)(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3, uint32_t fp_dest), uint32_t handler_addr, uint32_t sp) { - //assert(0 && "signal not implemented"); - return 0; -} - -uint32_t wrapper_sigset(uint8_t *mem, int signum, uint64_t (*trampoline)(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3, uint32_t fp_dest), uint32_t disp_addr, uint32_t sp) { - void (*handler)(int) = signal_handler; - - if ((int)disp_addr >= -1 && (int)disp_addr <= 1) { - // SIG_DFL etc. - handler = (void (*)(int))(intptr_t)(int)disp_addr; - } - - switch (signum) { - case 2: - signum = SIGINT; - break; - case 13: - signum = SIGPIPE; - break; - case 15: - signum = SIGTERM; - break; - default: - assert(0 && "sigset with this signum not implemented"); - break; - } - - signal_context.handlers[signum].trampoline = trampoline; - signal_context.handlers[signum].mem = mem; - signal_context.handlers[signum].fp_dest = disp_addr; - - return (uint32_t)(uintptr_t)sigset(signum, handler); // for now only support SIG_DFL etc. as return value -} - -int wrapper_get_fpc_csr(uint8_t *mem) { - //assert(0 && "get_fpc_csr not implemented"); - return 0; -} - -int wrapper_set_fpc_csr(uint8_t *mem, int csr) { - //assert(0 && "set_fpc_csr not implemented"); - return 0; -} - -int wrapper_setjmp(uint8_t *mem, uint32_t addr) { - return 0; -} - -void wrapper_longjmp(uint8_t *mem, uint32_t addr, int status) { - assert(0 && "longjmp not implemented"); -} - -uint32_t wrapper_tempnam(uint8_t *mem, uint32_t dir_addr, uint32_t pfx_addr) { - STRING(dir) - STRING(pfx) - char *ret = tempnam(dir, pfx); - char *ret_saved = ret; - if (ret == NULL) { - MEM_U32(ERRNO_ADDR) = errno; - return 0; - } - size_t len = strlen(ret) + 1; - uint32_t ret_addr = wrapper_malloc(mem, len); - uint32_t pos = ret_addr; - while (len--) { - MEM_S8(pos) = *ret; - ++pos; - ++ret; - } - free(ret_saved); - return ret_addr; -} - -uint32_t wrapper_tmpnam(uint8_t *mem, uint32_t str_addr) { - char buf[1024]; - assert(str_addr != 0 && "s NULL not implemented for tmpnam"); - char *ret = tmpnam(buf); - if (ret == NULL) { - return 0; - } else { - strcpy1(mem, str_addr, ret); - return str_addr; - } -} - -uint32_t wrapper_mktemp(uint8_t *mem, uint32_t template_addr) { - STRING(template) - mktemp(template); - strcpy1(mem, template_addr, template); - return template_addr; -} - -int wrapper_mkstemp(uint8_t *mem, uint32_t name_addr) { - STRING(name) - int fd = mkstemp(name); - if (fd < 0) { - MEM_U32(ERRNO_ADDR) = errno; - } else { - strcpy1(mem, name_addr, name); - } - return fd; -} - -uint32_t wrapper_tmpfile(uint8_t *mem) { - // create and fopen a temporary file that is removed when the program exits - char name[] = "/tmp/copt_temp_XXXXXX"; - int fd = mkstemp(name); - if (fd < 0) { - MEM_U32(ERRNO_ADDR) = errno; - return 0; - } - - // the file will be removed from disk when it's closed later - unlink(name); - - // fdopen: - uint32_t ret = init_file(mem, fd, -1, NULL, "w+"); - if (ret == 0) { - close(fd); - } - return ret; -} - -int wrapper_wait(uint8_t *mem, uint32_t wstatus_addr) { - int wstatus; - pid_t ret = wait(&wstatus); - MEM_S32(wstatus_addr) = wstatus; - return ret; -} - -int wrapper_kill(uint8_t *mem, int pid, int sig) { - int ret = kill(pid, sig); - if (ret != 0) { - MEM_U32(ERRNO_ADDR) = errno; - } - return ret; -} - -int wrapper_execlp(uint8_t *mem, uint32_t file_addr, uint32_t sp) { - uint32_t argv_addr = sp + 4; - return wrapper_execvp(mem, file_addr, argv_addr); -} - -int wrapper_execv(uint8_t *mem, uint32_t pathname_addr, uint32_t argv_addr) { - STRING(pathname) - uint32_t argc = 0; - while (MEM_U32(argv_addr + argc * 4) != 0) { - ++argc; - } - char *argv[argc + 1]; - for (uint32_t i = 0; i < argc; i++) { - uint32_t str_addr = MEM_U32(argv_addr + i * 4); - uint32_t len = wrapper_strlen(mem, str_addr) + 1; - argv[i] = (char *)malloc(len); - char *pos = argv[i]; - while (len--) { - *pos++ = MEM_S8(str_addr); - ++str_addr; - } - } - argv[argc] = NULL; - execv(pathname, argv); - MEM_U32(ERRNO_ADDR) = errno; - for (uint32_t i = 0; i < argc; i++) { - free(argv[i]); - } - return -1; -} - -int wrapper_execvp(uint8_t *mem, uint32_t file_addr, uint32_t argv_addr) { - STRING(file) - uint32_t argc = 0; - while (MEM_U32(argv_addr + argc * 4) != 0) { - ++argc; - } - char *argv[argc + 1]; - for (uint32_t i = 0; i < argc; i++) { - uint32_t str_addr = MEM_U32(argv_addr + i * 4); - uint32_t len = wrapper_strlen(mem, str_addr) + 1; - argv[i] = (char *)malloc(len); - char *pos = argv[i]; - while (len--) { - *pos++ = MEM_S8(str_addr); - ++str_addr; - } - } - argv[argc] = NULL; - -#ifdef REDIRECT_USR_LIB - if (!strncmp(file, "/usr/lib/", 9) && bin_dir[0] != '\0') { - char fixed_path[PATH_MAX + 1]; -#ifdef __CYGWIN__ - int n = snprintf(fixed_path, sizeof(fixed_path), "%s/%s.exe", bin_dir, file + 9); -#else - int n = snprintf(fixed_path, sizeof(fixed_path), "%s/%s", bin_dir, file + 9); -#endif - if (n > 0 && n < sizeof(fixed_path)) { - execvp(fixed_path, argv); - } else { - execvp(file, argv); - } - } else { - execvp(file, argv); - } -#else - execvp(file, argv); -#endif - - MEM_U32(ERRNO_ADDR) = errno; - for (uint32_t i = 0; i < argc; i++) { - free(argv[i]); - } - return -1; -} - -int wrapper_fork(uint8_t *mem) { - int ret = fork(); - if (ret == -1) { - MEM_U32(ERRNO_ADDR) = errno; - } - return ret; -} - -int wrapper_system(uint8_t *mem, uint32_t command_addr) { - STRING(command) - return system(command); // no errno -} - -static int name_compare(uint8_t *mem, uint32_t a_addr, uint32_t b_addr) { - //printf("pc=0x00438180\n"); - return wrapper_strcmp(mem, MEM_U32(a_addr), MEM_U32(b_addr)); -} - -static uint32_t tsearch_tfind(uint8_t *mem, uint32_t key_addr, uint32_t rootp_addr, uint32_t compar_addr, bool insert) { - //assert(compar_addr == 0x438180); // name_compare in as1 - - if (rootp_addr == 0) { - return 0; - } - while (MEM_U32(rootp_addr) != 0) { - uint32_t node_addr = MEM_U32(rootp_addr); - int r = name_compare(mem, key_addr, MEM_U32(node_addr)); - if (r == 0) { - return node_addr; - } - rootp_addr = r < 0 ? node_addr + 4 : node_addr + 8; - } - if (insert) { - uint32_t node_addr = wrapper_malloc(mem, 12); - if (node_addr != 0) { - MEM_U32(rootp_addr) = node_addr; - MEM_U32(node_addr) = key_addr; - MEM_U32(node_addr + 4) = 0; - MEM_U32(node_addr + 8) = 0; - return node_addr; - } - } - return 0; -} - -uint32_t wrapper_tsearch(uint8_t *mem, uint32_t key_addr, uint32_t rootp_addr, uint32_t compar_addr) { - return tsearch_tfind(mem, key_addr, rootp_addr, compar_addr, true); -} - -uint32_t wrapper_tfind(uint8_t *mem, uint32_t key_addr, uint32_t rootp_addr, uint32_t compar_addr) { - return tsearch_tfind(mem, key_addr, rootp_addr, compar_addr, false); -} - -uint32_t wrapper_qsort(uint8_t *mem, uint32_t base_addr, uint32_t num, uint32_t size, uint64_t (*trampoline)(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3, uint32_t fp_dest), uint32_t compare_addr, uint32_t sp) { - assert(0 && "qsort not implemented"); - return 0; -} - -uint32_t wrapper_regcmp(uint8_t *mem, uint32_t string1_addr, uint32_t sp) { - STRING(string1); - fprintf(stderr, "regex string: %s\n", string1); - assert(0 && "regcmp not implemented"); - return 0; -} - -uint32_t wrapper_regex(uint8_t *mem, uint32_t re_addr, uint32_t subject_addr, uint32_t sp) { - STRING(subject); - assert(0 && "regex not implemented"); - return 0; -} - -void wrapper___assert(uint8_t *mem, uint32_t assertion_addr, uint32_t file_addr, int line) { - STRING(assertion) - STRING(file) - __assert(assertion, file, line); -} diff --git a/tools/ido-static-recomp/libc_impl.h b/tools/ido-static-recomp/libc_impl.h deleted file mode 100755 index af03e3cf..00000000 --- a/tools/ido-static-recomp/libc_impl.h +++ /dev/null @@ -1,163 +0,0 @@ -#include - -void mmap_initial_data_range(uint8_t *mem, uint32_t start, uint32_t end); -void setup_libc_data(uint8_t *mem); - -uint32_t wrapper_sbrk(uint8_t *mem, int increment); -uint32_t wrapper_malloc(uint8_t *mem, uint32_t size); -uint32_t wrapper_calloc(uint8_t *mem, uint32_t num, uint32_t size); -uint32_t wrapper_realloc(uint8_t *mem, uint32_t data_addr, uint32_t size); -int wrapper_fscanf(uint8_t *mem, uint32_t fp_addr, uint32_t format_addr, uint32_t sp); -int wrapper_printf(uint8_t *mem, uint32_t format_addr, uint32_t sp); -int wrapper_sprintf(uint8_t *mem, uint32_t str_addr, uint32_t format_addr, uint32_t sp); -int wrapper_fprintf(uint8_t *mem, uint32_t fp_addr, uint32_t format_addr, uint32_t sp); -int wrapper__doprnt(uint8_t *mem, uint32_t format_addr, uint32_t params_addr, uint32_t fp_addr); -void wrapper_free(uint8_t *mem, uint32_t data_addr); -uint32_t wrapper_strlen(uint8_t *mem, uint32_t str_addr); -int wrapper_open(uint8_t *mem, uint32_t pathname_addr, int flags, int mode); -int wrapper_creat(uint8_t *mem, uint32_t pathname_addr, int mode); -int wrapper_access(uint8_t *mem, uint32_t pathname_addr, int mode); -int wrapper_rename(uint8_t *mem, uint32_t oldpath_addr, uint32_t newpath_addr); -int wrapper_utime(uint8_t *mem, uint32_t filename_addr, uint32_t times_addr); -int wrapper_flock(uint8_t *mem, int fd, int operation); -int wrapper_chmod(uint8_t *mem, uint32_t path_addr, uint32_t mode); -int wrapper_umask(int mode); -uint32_t wrapper_ecvt(uint8_t *mem, double number, int ndigits, uint32_t decpt_addr, uint32_t sign_addr); -uint32_t wrapper_fcvt(uint8_t *mem, double number, int ndigits, uint32_t decpt_addr, uint32_t sign_addr); -double wrapper_sqrt(double v); -float wrapper_sqrtf(float v); -int wrapper_atoi(uint8_t *mem, uint32_t nptr_addr); -int wrapper_atol(uint8_t *mem, uint32_t nptr_addr); -double wrapper_atof(uint8_t *mem, uint32_t nptr_addr); -int wrapper_strtol(uint8_t *mem, uint32_t nptr_addr, uint32_t endptr_addr, int base); -uint32_t wrapper_strtoul(uint8_t *mem, uint32_t nptr_addr, uint32_t endptr_addr, int base); -double wrapper_strtod(uint8_t *mem, uint32_t nptr_addr, uint32_t endptr_addr); -uint32_t wrapper_strchr(uint8_t *mem, uint32_t str_addr, int c); -uint32_t wrapper_strrchr(uint8_t *mem, uint32_t str_addr, int c); -uint32_t wrapper_strcspn(uint8_t *mem, uint32_t str_addr, uint32_t invalid_addr); -uint32_t wrapper_strpbrk(uint8_t *mem, uint32_t str_addr, uint32_t accept_addr); -int wrapper_fstat(uint8_t *mem, int fildes, uint32_t buf_addr); -int wrapper_stat(uint8_t *mem, uint32_t pathname_addr, uint32_t buf_addr); -int wrapper_ftruncate(uint8_t *mem, int fd, int length); -void wrapper_bcopy(uint8_t *mem, uint32_t src_addr, uint32_t dst_addr, uint32_t len); -uint32_t wrapper_memcpy(uint8_t *mem, uint32_t dst_addr, uint32_t src_addr, uint32_t len); -uint32_t wrapper_memccpy(uint8_t *mem, uint32_t dst_addr, uint32_t src_addr, int c, uint32_t len); -int wrapper_read(uint8_t *mem, int fd, uint32_t buf_addr, uint32_t nbytes); -int wrapper_write(uint8_t *mem, int fd, uint32_t buf_addr, uint32_t nbytes); -uint32_t wrapper_fopen(uint8_t *mem, uint32_t path_addr, uint32_t mode_addr); -uint32_t wrapper_freopen(uint8_t *mem, uint32_t path_addr, uint32_t mode_addr, uint32_t fp_addr); -int wrapper_fclose(uint8_t *mem, uint32_t fp_addr); -int wrapper_fflush(uint8_t *mem, uint32_t fp_addr); -int wrapper_ftell(uint8_t *mem, uint32_t fp_addr); -int wrapper_rewind(uint8_t *mem, uint32_t fp_addr); -int wrapper_fseek(uint8_t *mem, uint32_t fp_addr, int offset, int origin); -int wrapper_lseek(uint8_t *mem, int fd, int offset, int whence); -int wrapper_dup(uint8_t *mem, int fd); -int wrapper_dup2(uint8_t *mem, int oldfd, int newfd); -int wrapper_pipe(uint8_t *mem, uint32_t pipefd_addr); -void wrapper_perror(uint8_t *mem, uint32_t str_addr); -int wrapper_fdopen(uint8_t *mem, int fd, uint32_t mode_addr); -uint32_t wrapper_memset(uint8_t *mem, uint32_t dest_addr, int byte, uint32_t n); -int wrapper_bcmp(uint8_t *mem, uint32_t s1_addr, uint32_t s2_addr, uint32_t n); -int wrapper_memcmp(uint8_t *mem, uint32_t s1_addr, uint32_t s2_addr, uint32_t n); -int wrapper_getpid(void); -int wrapper_getpgrp(uint8_t *mem); -int wrapper_remove(uint8_t *mem, uint32_t path_addr); -int wrapper_unlink(uint8_t *mem, uint32_t path_addr); -int wrapper_close(uint8_t *mem, int fd); -int wrapper_strcmp(uint8_t *mem, uint32_t s1_addr, uint32_t s2_addr); -int wrapper_strncmp(uint8_t *mem, uint32_t s1_addr, uint32_t s2_addr, uint32_t n); -uint32_t wrapper_strcpy(uint8_t *mem, uint32_t dest_addr, uint32_t src_addr); -uint32_t wrapper_strncpy(uint8_t *mem, uint32_t dest_addr, uint32_t src_addr, uint32_t n); -uint32_t wrapper_strcat(uint8_t *mem, uint32_t dest_addr, uint32_t src_addr); -uint32_t wrapper_strncat(uint8_t *mem, uint32_t dest_addr, uint32_t src_addr, uint32_t n); -uint32_t wrapper_strtok(uint8_t *mem, uint32_t str_addr, uint32_t delimiters_addr); -uint32_t wrapper_strstr(uint8_t *mem, uint32_t str1_addr, uint32_t str2_addr); -uint32_t wrapper_strdup(uint8_t *mem, uint32_t str_addr); -int wrapper_toupper(int c); -int wrapper_tolower(int c); -int wrapper_gethostname(uint8_t *mem, uint32_t name_addr, uint32_t len); -int wrapper_isatty(uint8_t *mem, int fd); -int wrapper_times(uint8_t *mem, uint32_t buffer_addr); -uint32_t wrapper_strftime(uint8_t *mem, uint32_t ptr_addr, uint32_t maxsize, uint32_t format_addr, uint32_t timeptr_addr); -int wrapper_clock(void); -uint32_t wrapper_ctime(uint8_t *mem, uint32_t timep_addr); -uint32_t wrapper_localtime(uint8_t *mem, uint32_t timep_addr); -int wrapper_setvbuf(uint8_t *mem, uint32_t fp_addr, uint32_t buf_addr, int mode, uint32_t size); -int wrapper___semgetc(uint8_t *mem, uint32_t fp_addr); -int wrapper___semputc(uint8_t *mem, int c, uint32_t fp_addr); -int wrapper_fgetc(uint8_t *mem, uint32_t fp_addr); -int wrapper_fgets(uint8_t *mem, uint32_t str_addr, int count, uint32_t fp_addr); -int wrapper___filbuf(uint8_t *mem, uint32_t fp_addr); -int wrapper___flsbuf(uint8_t *mem, int ch, uint32_t fp_addr); -int wrapper_ungetc(uint8_t *mem, int ch, uint32_t fp_addr); -uint32_t wrapper_gets(uint8_t *mem, uint32_t str_addr); -uint32_t wrapper_fread(uint8_t *mem, uint32_t data_addr, uint32_t size, uint32_t count, uint32_t fp_addr); -uint32_t wrapper_fwrite(uint8_t *mem, uint32_t data_addr, uint32_t size, uint32_t count, uint32_t fp_addr); -int wrapper_fputs(uint8_t *mem, uint32_t str_addr, uint32_t fp_addr); -int wrapper_puts(uint8_t *mem, uint32_t str_addr); -uint32_t wrapper_getcwd(uint8_t *mem, uint32_t buf_addr, uint32_t size); -int wrapper_time(uint8_t *mem, uint32_t tloc_addr); -void wrapper_bzero(uint8_t *mem, uint32_t str_addr, uint32_t n); -int wrapper_fp_class_d(double d); -double wrapper_ldexp(double d, int i); -int64_t wrapper___ll_mul(int64_t a0, int64_t a1); -int64_t wrapper___ll_div(int64_t a0, int64_t a1); -int64_t wrapper___ll_rem(uint64_t a0, int64_t a1); -int64_t wrapper___ll_lshift(int64_t a0, uint64_t shift); -int64_t wrapper___ll_rshift(int64_t a0, uint64_t shift); -uint64_t wrapper___ull_div(uint64_t a0, uint64_t a1); -uint64_t wrapper___ull_rem(uint64_t a0, uint64_t a1); -uint64_t wrapper___ull_rshift(uint64_t a0, uint64_t shift); -uint64_t wrapper___d_to_ull(double d); -int64_t wrapper___d_to_ll(double d); -uint64_t wrapper___f_to_ull(float f); -int64_t wrapper___f_to_ll(float f); -float wrapper___ull_to_f(uint64_t v); -float wrapper___ll_to_f(int64_t v); -double wrapper___ull_to_d(uint64_t v); -double wrapper___ll_to_d(int64_t v); -void wrapper_abort(uint8_t *mem); -void wrapper_exit(uint8_t *mem, int status); -void wrapper__exit(uint8_t *mem, int status); -void wrapper__cleanup(uint8_t *mem); -uint32_t wrapper__rld_new_interface(uint8_t *mem, uint32_t operation, uint32_t sp); -void wrapper__exithandle(uint8_t *mem); -int wrapper__prctl(uint8_t *mem, int operation, uint32_t sp); -double wrapper__atod(uint8_t *mem, uint32_t buffer_addr, int ndigits, int dexp); -int wrapper_pathconf(uint8_t *mem, uint32_t path_addr, int name); -uint32_t wrapper_getenv(uint8_t *mem, uint32_t name_addr); -uint32_t wrapper_gettxt(uint8_t *mem, uint32_t msgid_addr, uint32_t default_str_addr); -uint32_t wrapper_setlocale(uint8_t *mem, int category, uint32_t locale_addr); -uint32_t wrapper_mmap(uint8_t *mem, uint32_t addr, uint32_t length, int prot, int flags, int fd, int offset); -int wrapper_munmap(uint8_t *mem, uint32_t addr, uint32_t length); -int wrapper_mprotect(uint8_t *mem, uint32_t addr, uint32_t length, int prot); -int wrapper_sysconf(uint8_t *mem, int name); -int wrapper_getpagesize(uint8_t *mem); -int wrapper_strerror(uint8_t *mem, int errnum); -int wrapper_ioctl(uint8_t *mem, int fd, uint32_t request, uint32_t sp); -int wrapper_fcntl(uint8_t *mem, int fd, int cmd, uint32_t sp); -uint32_t wrapper_signal(uint8_t *mem, int signum, uint64_t (*trampoline)(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3, uint32_t fp_dest), uint32_t handler_addr, uint32_t sp); -uint32_t wrapper_sigset(uint8_t *mem, int signum, uint64_t (*trampoline)(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3, uint32_t fp_dest), uint32_t disp_addr, uint32_t sp); -int wrapper_get_fpc_csr(uint8_t *mem); -int wrapper_set_fpc_csr(uint8_t *mem, int csr); -int wrapper_setjmp(uint8_t *mem, uint32_t addr); -void wrapper_longjmp(uint8_t *mem, uint32_t addr, int status); -uint32_t wrapper_tempnam(uint8_t *mem, uint32_t dir_addr, uint32_t pfx_addr); -uint32_t wrapper_tmpnam(uint8_t *mem, uint32_t str_addr); -uint32_t wrapper_mktemp(uint8_t *mem, uint32_t template_addr); -int wrapper_mkstemp(uint8_t *mem, uint32_t name_addr); -uint32_t wrapper_tmpfile(uint8_t *mem); -int wrapper_wait(uint8_t *mem, uint32_t wstatus_addr); -int wrapper_kill(uint8_t *mem, int pid, int sig); -int wrapper_execlp(uint8_t *mem, uint32_t file_addr, uint32_t sp); -int wrapper_execv(uint8_t *mem, uint32_t pathname_addr, uint32_t argv_addr); -int wrapper_execvp(uint8_t *mem, uint32_t file_addr, uint32_t argv_addr); -int wrapper_fork(uint8_t *mem); -int wrapper_system(uint8_t *mem, uint32_t command_addr); -uint32_t wrapper_tsearch(uint8_t *mem, uint32_t key_addr, uint32_t rootp_addr, uint32_t compar_addr); -uint32_t wrapper_tfind(uint8_t *mem, uint32_t key_addr, uint32_t rootp_addr, uint32_t compar_addr); -uint32_t wrapper_qsort(uint8_t *mem, uint32_t base_addr, uint32_t num, uint32_t size, uint64_t (*trampoline)(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3, uint32_t fp_dest), uint32_t compare_addr, uint32_t sp); -uint32_t wrapper_regcmp(uint8_t *mem, uint32_t string1_addr, uint32_t sp); -uint32_t wrapper_regex(uint8_t *mem, uint32_t re_addr, uint32_t subject_addr, uint32_t sp); -void wrapper___assert(uint8_t *mem, uint32_t assertion_addr, uint32_t file_addr, int line); diff --git a/tools/ido-static-recomp/recomp.cpp b/tools/ido-static-recomp/recomp.cpp deleted file mode 100755 index 5d9c0134..00000000 --- a/tools/ido-static-recomp/recomp.cpp +++ /dev/null @@ -1,2929 +0,0 @@ -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include "elf.h" - -#define INSPECT_FUNCTION_POINTERS 0 // set this to 1 when testing a new program, to verify that no false function pointers are found - -#ifndef TRACE -#define TRACE 0 -#endif - -#ifndef ugen53 -#define ugen53 0 -#endif - -#define LABELS_64_BIT 1 - -#define MAX(a, b) ((a) > (b) ? (a) : (b)) -#define MIN(a, b) ((a) < (b) ? (a) : (b)) - -#define u32be(x) (uint32_t)(((x & 0xff) << 24) + ((x & 0xff00) << 8) + ((x & 0xff0000) >> 8) + ((uint32_t)(x) >> 24)) -#define u16be(x) (uint16_t)(((x & 0xff) << 8) + ((x & 0xff00) >> 8)) -#define read_u32_be(buf) (uint32_t)(((buf)[0] << 24) + ((buf)[1] << 16) + ((buf)[2] << 8) + ((buf)[3])) - -using namespace std; - -struct Edge { - uint32_t i; - uint8_t function_entry: 1; - uint8_t function_exit: 1; - uint8_t extern_function: 1; - uint8_t function_pointer: 1; -}; - -struct Insn { - uint32_t id; - uint8_t op_count; - string mnemonic; - string op_str; - cs_mips_op operands[8]; - - uint8_t is_jump: 1; - uint8_t is_global_got_memop: 1; - uint8_t no_following_successor: 1; - int linked_insn; - union { - uint32_t linked_value; - float linked_float; - }; - uint32_t jtbl_addr; - uint32_t num_cases; - mips_reg index_reg; - vector successors; - vector predecessors; - uint64_t b_liveout; - uint64_t b_livein; - uint64_t f_livein; - uint64_t f_liveout; -}; - -struct Function { - vector returns; //points to delay slots - uint32_t end_addr; //address after end - uint32_t nargs; - uint32_t nret; - bool v0_in; - bool referenced_by_function_pointer; -}; - -static csh handle; - -static const uint8_t *text_section; -static uint32_t text_section_len; -static uint32_t text_vaddr; - -static const uint8_t *rodata_section; -static uint32_t rodata_section_len; -static uint32_t rodata_vaddr; - -static const uint8_t *data_section; -static uint32_t data_section_len; -static uint32_t data_vaddr; - -static uint32_t bss_section_len; -static uint32_t bss_vaddr; - -static vector insns; -static set label_addresses; -static vector got_globals; -static vector got_locals; -static uint32_t gp_value; -static uint32_t gp_value_adj; - -static map symbol_names; - -static vector> data_function_pointers; -static set li_function_pointers; -static map functions; -static uint32_t main_addr; -static uint32_t mcount_addr; -static uint32_t procedure_table_start; -static uint32_t procedure_table_len; - -#define FLAG_NO_MEM 1 -#define FLAG_VARARG 2 - -static const struct { - const char *name; - const char *params; - int flags; -} extern_functions[] = { - {"exit", "vi"}, // override exit from application - {"abort", "v"}, - {"sbrk", "pi"}, - {"malloc", "pu"}, - {"calloc", "puu"}, - {"realloc", "ppu"}, - {"free", "vp"}, - {"fscanf", "ipp", FLAG_VARARG}, - {"printf", "ip", FLAG_VARARG}, - {"sprintf", "ipp", FLAG_VARARG}, - {"fprintf", "ipp", FLAG_VARARG}, - {"_doprnt", "ippp"}, - {"strlen", "up"}, - {"open", "ipii"}, - {"creat", "ipi"}, - {"access", "ipi"}, - {"rename", "ipp"}, - {"utime", "ipp"}, - {"flock", "iii"}, - {"chmod", "ipu"}, - {"umask", "ii", FLAG_NO_MEM}, - {"ecvt", "pdipp"}, - {"fcvt", "pdipp"}, - {"sqrt", "dd", FLAG_NO_MEM}, - {"sqrtf", "ff", FLAG_NO_MEM}, - {"atoi", "ip"}, - {"atol", "ip"}, - {"atof", "dp"}, - {"strtol", "ippi"}, - {"strtoul", "uppi"}, - {"strtod", "dpp"}, - {"strchr", "ppi"}, - {"strrchr", "ppi"}, - {"strcspn", "upp"}, - {"strpbrk", "ppp"}, - {"fstat", "iip"}, - {"stat", "ipp"}, - {"ftruncate", "iii"}, - {"bcopy", "vppu"}, - {"memcpy", "pppu"}, - {"memccpy", "pppiu"}, - {"read", "iipu"}, - {"write", "iipu"}, - {"fopen", "ppp"}, - {"freopen", "pppp"}, - {"fclose", "ip"}, - {"ftell", "ip"}, - {"rewind", "ip"}, - {"fseek", "ipii"}, - {"lseek", "iiii"}, - {"fflush", "ip"}, - {"dup", "ii"}, - {"dup2", "iii"}, - {"pipe", "ip"}, - {"perror", "vp"}, - {"fdopen", "iip"}, - {"memset", "ppiu"}, - {"bcmp", "ippu"}, - {"memcmp", "ippu"}, - {"getpid", "i", FLAG_NO_MEM}, - {"getpgrp", "i"}, - {"remove", "ip"}, - {"unlink", "ip"}, - {"close", "ii"}, - {"strcmp", "ipp"}, - {"strncmp", "ippu"}, - {"strcpy", "ppp"}, - {"strncpy", "pppu"}, - {"strcat", "ppp"}, - {"strncat", "pppu"}, - {"strtok", "ppp"}, - {"strstr", "ppp"}, - {"strdup", "pp"}, - {"toupper", "ii", FLAG_NO_MEM}, - {"tolower", "ii", FLAG_NO_MEM}, - {"gethostname", "ipu"}, - {"isatty", "ii"}, - {"strftime", "upupp"}, - {"times", "ip"}, - {"clock", "i", FLAG_NO_MEM}, - {"ctime", "pp"}, - {"localtime", "pp"}, - {"setvbuf", "ippiu"}, - {"__semgetc", "ip"}, - {"__semputc", "iip"}, - {"fgetc", "ip"}, - {"fgets", "ipip"}, - {"__filbuf", "ip"}, - {"__flsbuf", "iip"}, - {"ungetc", "iip"}, - {"gets", "pp"}, - {"fread", "upuup"}, - {"fwrite", "upuup"}, - {"fputs", "ipp"}, - {"puts", "ip"}, - {"getcwd", "ppu"}, - {"time", "ip"}, - {"bzero", "vpu"}, - {"fp_class_d", "id", FLAG_NO_MEM}, - {"ldexp", "ddi", FLAG_NO_MEM}, - {"__ll_mul", "lll", FLAG_NO_MEM}, - {"__ll_div", "lll", FLAG_NO_MEM}, - {"__ll_rem", "ljl", FLAG_NO_MEM}, - {"__ll_lshift", "llj", FLAG_NO_MEM}, - {"__ll_rshift", "llj", FLAG_NO_MEM}, - {"__ull_div", "jjj", FLAG_NO_MEM}, - {"__ull_rem", "jjj", FLAG_NO_MEM}, - {"__ull_rshift", "jjj", FLAG_NO_MEM}, - {"__d_to_ull", "jd", FLAG_NO_MEM}, - {"__d_to_ll", "ld", FLAG_NO_MEM}, - {"__f_to_ull", "jf", FLAG_NO_MEM}, - {"__f_to_ll", "lf", FLAG_NO_MEM}, - {"__ull_to_f", "fj", FLAG_NO_MEM}, - {"__ll_to_f", "fl", FLAG_NO_MEM}, - {"__ull_to_d", "dj", FLAG_NO_MEM}, - {"__ll_to_d", "dl", FLAG_NO_MEM}, - {"_exit", "vi"}, - {"_cleanup", "v"}, - {"_rld_new_interface", "pu", FLAG_VARARG}, - {"_exithandle", "v"}, - {"_prctl", "ii", FLAG_VARARG}, - {"_atod", "dpii"}, - {"pathconf", "ipi"}, - {"getenv", "pp"}, - {"gettxt", "ppp"}, - {"setlocale", "pip"}, - {"mmap", "ppuiiii"}, - {"munmap", "ipu"}, - {"mprotect", "ipui"}, - {"sysconf", "ii"}, - {"getpagesize", "i"}, - {"strerror", "pi"}, - {"ioctl", "iiu", FLAG_VARARG}, - {"fcntl", "iii", FLAG_VARARG}, - {"signal", "pit"}, - {"sigset", "pit"}, - {"get_fpc_csr", "i"}, - {"set_fpc_csr", "ii"}, - {"setjmp", "ip"}, - {"longjmp", "vpi"}, - {"tempnam", "ppp"}, - {"tmpnam", "pp"}, - {"mktemp", "pp"}, - {"mkstemp", "ip"}, - {"tmpfile", "p"}, - {"wait", "ip"}, - {"kill", "iii"}, - {"execlp", "ip", FLAG_VARARG}, - {"execv", "ipp"}, - {"execvp", "ipp"}, - {"fork", "i"}, - {"system", "ip"}, - {"tsearch", "pppp"}, - {"tfind", "pppp"}, - {"qsort", "vpuut"}, - {"regcmp", "pp", FLAG_VARARG}, - {"regex", "ppp", FLAG_VARARG}, - {"__assert", "vppi"}, -}; - -static void disassemble(void) { - csh handle; - cs_insn *disasm; - static size_t disasm_size; - assert(cs_open(CS_ARCH_MIPS, (cs_mode)(CS_MODE_MIPS64 | CS_MODE_BIG_ENDIAN), &handle) == CS_ERR_OK); - cs_option(handle, CS_OPT_DETAIL, CS_OPT_ON); - disasm_size = cs_disasm(handle, text_section, text_section_len, text_vaddr, 0, &disasm); - for (size_t i = 0; i < disasm_size; i++) { - insns.push_back(Insn()); - Insn& insn = insns.back(); - insn.id = disasm[i].id; - insn.mnemonic = disasm[i].mnemonic; - insn.op_str = disasm[i].op_str; - if (disasm[i].detail != nullptr && disasm[i].detail->mips.op_count > 0) { - insn.op_count = disasm[i].detail->mips.op_count; - memcpy(insn.operands, disasm[i].detail->mips.operands, sizeof(insn.operands)); - } - insn.is_jump = cs_insn_group(handle, &disasm[i], MIPS_GRP_JUMP) || insn.id == MIPS_INS_JAL || insn.id == MIPS_INS_BAL || insn.id == MIPS_INS_JALR; - insn.linked_insn = -1; - } - cs_free(disasm, disasm_size); - cs_close(&handle); - - { - // Add dummy instruction to avoid out of bounds - insns.push_back(Insn()); - Insn& insn = insns.back(); - insn.id = MIPS_INS_NOP; - insn.mnemonic = "nop"; - insn.no_following_successor = true; - } -} - -static void add_function(uint32_t addr) { - if (addr >= text_vaddr && addr < text_vaddr + text_section_len) { - functions[addr]; - } -} - -static map::iterator find_function(uint32_t addr) { - if (functions.size() == 0) { - return functions.end(); - } - auto it = functions.upper_bound(addr); - if (it == functions.begin()) { - return functions.end(); - } - --it; - return it; -} - -// try to find a matching LUI for a given register -static void link_with_lui(int offset, uint32_t reg, int mem_imm) -{ -#define MAX_LOOKBACK 128 - // don't attempt to compute addresses for zero offset - // end search after some sane max number of instructions - int end_search = MAX(0, offset - MAX_LOOKBACK); - for (int search = offset - 1; search >= end_search; search--) { - // use an `if` instead of `case` block to allow breaking out of the `for` loop - if (insns[search].id == MIPS_INS_LUI) { - uint32_t rd = insns[search].operands[0].reg; - if (reg == rd) { - break; - } - } else if (insns[search].id == MIPS_INS_LW || - insns[search].id == MIPS_INS_LD || - insns[search].id == MIPS_INS_ADDIU || - //insns[search].id == MIPS_INS_ADDU || used in jump tables for offset - insns[search].id == MIPS_INS_ADD || - insns[search].id == MIPS_INS_SUB || - insns[search].id == MIPS_INS_SUBU) { - uint32_t rd = insns[search].operands[0].reg; - if (reg == rd) { - if (insns[search].id == MIPS_INS_LW && insns[search].operands[1].mem.base == MIPS_REG_GP) { - int mem_imm0 = (int)insns[search].operands[1].mem.disp; - uint32_t got_entry = (mem_imm0 + gp_value_adj) / sizeof(uint32_t); - if (got_entry < got_locals.size()) { - // used for static functions - char buf[32]; - uint32_t addr = got_locals[got_entry] + mem_imm; - insns[search].linked_insn = offset; - insns[search].linked_value = addr; - insns[offset].linked_insn = search; - insns[offset].linked_value = addr; - - //vaddr_references[addr].insert(text_vaddr + offset * 4); - - insns[search].id = MIPS_INS_LI; - insns[search].mnemonic = "li"; - sprintf(buf, "$%s, 0x%x", cs_reg_name(handle, rd), addr); - insns[search].op_str = buf; - insns[search].operands[1].type = MIPS_OP_IMM; - insns[search].operands[1].imm = addr; - - switch (insns[offset].id) { - case MIPS_INS_ADDIU: - insns[offset].id = MIPS_INS_MOVE; - insns[offset].operands[1].type = MIPS_OP_REG; - insns[offset].mnemonic = "move"; - sprintf(buf, "$%s, $%s", cs_reg_name(handle, insns[offset].operands[0].reg), cs_reg_name(handle, rd)); - insns[offset].op_str = buf; - if (addr >= text_vaddr && addr < text_vaddr + text_section_len) { - add_function(addr); - } - break; - case MIPS_INS_LB: - case MIPS_INS_LBU: - case MIPS_INS_SB: - case MIPS_INS_LH: - case MIPS_INS_LHU: - case MIPS_INS_SH: - case MIPS_INS_LW: - case MIPS_INS_SW: - case MIPS_INS_LDC1: - case MIPS_INS_LWC1: - case MIPS_INS_SWC1: - insns[offset].operands[1].mem.disp = 0; - sprintf(buf, "$%s, ($%s)", cs_reg_name(handle, insns[offset].operands[0].reg), cs_reg_name(handle, rd)); - insns[offset].op_str = buf; - break; - default: - assert(0); - } - } - break; - } else { - // ignore: reg is pointer, offset is probably struct data member - break; - } - } - } else if (insns[search].id == MIPS_INS_JR && - insns[search].operands[0].reg == MIPS_REG_RA && offset - search >= 2) { - // stop looking when previous `jr ra` is hit, - // but ignore if `offset` is branch delay slot for this `jr ra` - break; - } - } -} - -// for a given `jalr t9`, find the matching t9 load -static void link_with_jalr(int offset) -{ - // end search after some sane max number of instructions - int end_search = MAX(0, offset - MAX_LOOKBACK); - for (int search = offset - 1; search >= end_search; search--) { - if (insns[search].operands[0].reg == MIPS_REG_T9) { - if (insns[search].id == MIPS_INS_LW || insns[search].id == MIPS_INS_LI) { - if (insns[search].is_global_got_memop || insns[search].id == MIPS_INS_LI) { - char buf[32]; - sprintf(buf, "0x%x", insns[search].linked_value); - insns[search].linked_insn = offset; - insns[offset].linked_insn = search; - insns[offset].linked_value = insns[search].linked_value; - //insns[offset].label = insns[search].label; - //function_entry_points.insert(insns[search].linked_value); - insns[offset].id = MIPS_INS_JAL; - insns[offset].mnemonic = "jal"; - insns[offset].op_str = buf; - insns[offset].operands[0].type = MIPS_OP_IMM; - insns[offset].operands[0].imm = insns[search].linked_value; - insns[search].id = MIPS_INS_NOP; - insns[search].mnemonic = "nop"; - insns[search].op_str = ""; - insns[search].is_global_got_memop = false; - add_function(insns[search].linked_value); - } - break; - } else if (insns[search].id == MIPS_INS_ADDIU) { - if (insns[search].linked_insn != -1) { - //function_entry_points.insert(insns[search].linked_value); - uint32_t first = insns[search].linked_insn; - insns[search].linked_insn = offset; - insns[offset].linked_insn = first; - insns[offset].linked_value = insns[search].linked_value; - } - break; - } else if (insns[search].id == MIPS_INS_LI) { - if (insns[search].linked_insn != -1) { - //function_entry_points.insert(insns[search].linked_value); - uint32_t first = insns[search].linked_insn; - insns[search].linked_insn = offset; - insns[offset].linked_insn = first; - insns[offset].linked_value = insns[search].linked_value; - insns[search].id = MIPS_INS_NOP; - insns[search].mnemonic = "nop"; - insns[search].op_str = ""; - } - break; - } else if (insns[search].id == MIPS_INS_LD || - insns[search].id == MIPS_INS_ADDU || - insns[search].id == MIPS_INS_ADD || - insns[search].id == MIPS_INS_SUB || - insns[search].id == MIPS_INS_SUBU) { - break; - } - } else if (insns[search].id == MIPS_INS_JR && - insns[search].operands[0].reg == MIPS_REG_RA) - { - // stop looking when previous `jr ra` is hit - break; - } - } -} - -static void pass1(void) { - for (size_t i = 0; i < insns.size(); i++) { - Insn& insn = insns[i]; - if (insn.id == MIPS_INS_BAL) { - insn.id = MIPS_INS_JAL; - insn.mnemonic = "jal"; - } - if (insn.is_jump) { - if (insn.id == MIPS_INS_JAL || insn.id == MIPS_INS_J) { - uint32_t target = (uint32_t)insn.operands[0].imm; - label_addresses.insert(target); - add_function(target); - } else if (insn.id == MIPS_INS_JR) { - // sltiu $at, $ty, z - // sw $reg, offset($sp) (very seldom, one or more, usually in func entry) - // lw $gp, offset($sp) (if PIC, and very seldom) - // beqz $at, .L - // some other instruction (not always) - // lui $at, %hi(jtbl) - // sll $tx, $ty, 2 - // addu $at, $at, $tx - // lw $tx, %lo(jtbl)($at) - // nop (code compiled with 5.3) - // addu $tx, $tx, $gp (if PIC) - // jr $tx - - // IDO 7.1: - //lw at,offset(gp) - //andi t9,t8,0x3f - //sll t9,t9,0x2 - //addu at,at,t9 - //lw t9,offset(at) - //addu t9,t9,gp - //jr t9 - - // IDO 5.3: - //lw at,offset(gp) - //andi t3,t2,0x3f - //sll t3,t3,0x2 - //addu at,at,t3 - //something - //lw t3,offset(at) - //something - //addu t3,t3,gp - //jr t3 - if (i >= 7 && rodata_section != NULL) { - bool is_pic = insns[i - 1].id == MIPS_INS_ADDU && insns[i - 1].operands[2].reg == MIPS_REG_GP; - bool has_nop = insns[i - is_pic - 1].id == MIPS_INS_NOP; - bool has_extra = insns[i - is_pic - has_nop - 5].id != MIPS_INS_BEQZ; - int lw = i - is_pic - has_nop - 1; - if (insns[lw].id != MIPS_INS_LW) { - --lw; - } - if (insns[lw].id == MIPS_INS_LW && insns[lw].linked_insn != -1) { - int sltiu_index = -1; - int andi_index = -1; - uint32_t addu_index = lw - 1; - uint32_t num_cases; - bool found = false; - bool and_variant = false; - int end = 14; - if (insns[addu_index].id != MIPS_INS_ADDU) { - --addu_index; - } - mips_reg index_reg = (mips_reg)insns[addu_index - 1].operands[1].reg; - if (insns[addu_index].id != MIPS_INS_ADDU) { - goto skip; - } - if (insns[addu_index - 1].id != MIPS_INS_SLL) { - goto skip; - } - if (insns[addu_index - 1].operands[0].reg != insn.operands[0].reg) { - goto skip; - } - for (int j = 3; j <= 4; j++) { - if (insns[lw - j].id == MIPS_INS_ANDI) { - andi_index = lw - j; - break; - } - } - if (i == 368393) { - // In copt - end = 18; - } - for (int j = 5; j <= end; j++) { - if (insns[lw - has_extra - j].id == MIPS_INS_SLTIU && - insns[lw - has_extra - j].operands[0].reg == MIPS_REG_AT) - { - sltiu_index = j; - break; - } - if (insns[lw - has_extra - j].id == MIPS_INS_JR) { - // Prevent going into a previous switch - break; - } - } - if (sltiu_index != -1) { - andi_index = -1; - } - if (sltiu_index != -1 && insns[lw - has_extra - sltiu_index].id == MIPS_INS_SLTIU) { - num_cases = insns[lw - has_extra - sltiu_index].operands[2].imm; - found = true; - } else if (andi_index != -1) { - num_cases = insns[andi_index].operands[2].imm + 1; - found = true; - and_variant = true; - } else if (i == 219382) { - // Special hard case in copt where the initial sltiu is in another basic block - found = true; - num_cases = 13; - } else if (i == 370995) { - // Special hard case in copt where the initial sltiu is in another basic block - found = true; - num_cases = 12; - } - if (found) { - uint32_t jtbl_addr = insns[lw].linked_value; - if (is_pic) { - insns[i - 1].id = MIPS_INS_NOP; - } - //printf("jump table at %08x, size %u\n", jtbl_addr, num_cases); - insn.jtbl_addr = jtbl_addr; - insn.num_cases = num_cases; - insn.index_reg = index_reg; - insns[lw].id = MIPS_INS_NOP; - insns[addu_index].id = MIPS_INS_NOP; - insns[addu_index - 1].id = MIPS_INS_NOP; - if (!and_variant) { - insns[addu_index - 2].id = MIPS_INS_NOP; - } - - if (jtbl_addr < rodata_vaddr || jtbl_addr + num_cases * sizeof(uint32_t) > rodata_vaddr + rodata_section_len) { - fprintf(stderr, "jump table outside rodata\n"); - exit(EXIT_FAILURE); - } - for (uint32_t i = 0; i < num_cases; i++) { - uint32_t target_addr = read_u32_be(rodata_section + (jtbl_addr - rodata_vaddr) + i * sizeof(uint32_t)); - target_addr += gp_value; - //printf("%08X\n", target_addr); - label_addresses.insert(target_addr); - } - } - skip:; - } - } - } else { - for (int j = 0; j < insn.op_count; j++) { - if (insn.operands[j].type == MIPS_OP_IMM) { - uint32_t target = (uint32_t)insn.operands[j].imm; - label_addresses.insert(target); - } - } - } - } - switch (insns[i].id) { - // find floating point LI - case MIPS_INS_MTC1: - { - unsigned int rt = insns[i].operands[0].reg; - for (int s = i - 1; s >= 0; s--) { - if (insns[s].id == MIPS_INS_LUI && insns[s].operands[0].reg == rt) { - float f; - uint32_t lui_imm = (uint32_t)(insns[s].operands[1].imm << 16); - memcpy(&f, &lui_imm, sizeof(f)); - insns[s].operands[1].imm <<= 16; - // link up the LUI with this instruction and the float - insns[s].linked_insn = i; - insns[s].linked_float = f; - // rewrite LUI instruction to be LI - insns[s].id = MIPS_INS_LI; - insns[s].mnemonic = "li"; - break; - } else if (insns[s].id == MIPS_INS_LW || - insns[s].id == MIPS_INS_LD || - insns[s].id == MIPS_INS_LH || - insns[s].id == MIPS_INS_LHU || - insns[s].id == MIPS_INS_LB || - insns[s].id == MIPS_INS_LBU || - insns[s].id == MIPS_INS_ADDIU || - insns[s].id == MIPS_INS_ADD || - insns[s].id == MIPS_INS_SUB || - insns[s].id == MIPS_INS_SUBU) { - unsigned int rd = insns[s].operands[0].reg; - if (rt == rd) { - break; - } - } else if (insns[s].id == MIPS_INS_JR && - insns[s].operands[0].reg == MIPS_REG_RA) { - // stop looking when previous `jr ra` is hit - break; - } - } - break; - } - case MIPS_INS_SD: - case MIPS_INS_SW: - case MIPS_INS_SH: - case MIPS_INS_SB: - case MIPS_INS_LB: - case MIPS_INS_LBU: - case MIPS_INS_LD: - case MIPS_INS_LDL: - case MIPS_INS_LDR: - case MIPS_INS_LH: - case MIPS_INS_LHU: - case MIPS_INS_LW: - case MIPS_INS_LWU: - case MIPS_INS_LDC1: - case MIPS_INS_LWC1: - case MIPS_INS_LWC2: - case MIPS_INS_LWC3: - case MIPS_INS_SWC1: - case MIPS_INS_SWC2: - case MIPS_INS_SWC3: - { - unsigned int mem_rs = insns[i].operands[1].mem.base; - int mem_imm = (int)insns[i].operands[1].mem.disp; - if (mem_rs == MIPS_REG_GP) { - unsigned int got_entry = (mem_imm + gp_value_adj) / sizeof(unsigned int); - if (got_entry >= got_locals.size()) { - got_entry -= got_locals.size(); - if (got_entry < got_globals.size()) { - assert(insn.id == MIPS_INS_LW); - //printf("gp 0x%08x %s\n", mem_imm, got_globals[got_entry].name); - unsigned int dest_vaddr = got_globals[got_entry]; - insns[i].is_global_got_memop = true; - insns[i].linked_value = dest_vaddr; - //insns[i].label = got_globals[got_entry].name; - - //vaddr_references[dest_vaddr].insert(vaddr + i * 4); - //disasm_add_data_addr(state, dest_vaddr); - insns[i].id = MIPS_INS_LI; - insns[i].operands[1].imm = dest_vaddr; - char buf[32]; - sprintf(buf, "$%s, 0x%x", cs_reg_name(handle, insn.operands[0].reg), dest_vaddr); - insns[i].op_str = buf; - } - } - } else { - link_with_lui(i, mem_rs, mem_imm); - } - break; - } - case MIPS_INS_ADDIU: - case MIPS_INS_ORI: - { - unsigned int rd = insns[i].operands[0].reg; - unsigned int rs = insns[i].operands[1].reg; - int64_t imm = insns[i].operands[2].imm; - if (rs == MIPS_REG_ZERO) { // becomes LI - char buf[32]; - insns[i].id = MIPS_INS_LI; - insns[i].operands[1].imm = imm; - insns[i].mnemonic = "li"; - sprintf(buf, "$%s, %" PRIi64, cs_reg_name(handle, rd), imm); - insns[i].op_str = buf; - } else if (/*rd == rs &&*/ rd != MIPS_REG_GP) { // only look for LUI if rd and rs are the same - link_with_lui(i, rs, (int)imm); - } - break; - } - case MIPS_INS_JALR: - { - unsigned int r = insn.operands[0].reg; - if (r == MIPS_REG_T9) { - link_with_jalr(i); - if (insn.linked_insn != -1) { - char buf[32]; - sprintf(buf, "0x%x", insn.linked_value); - insn.id = MIPS_INS_JAL; - insn.mnemonic = "jal"; - insn.op_str = buf; - insn.operands[0].type = MIPS_OP_IMM; - insn.operands[0].imm = insn.linked_value; - label_addresses.insert(insn.linked_value); - add_function(insn.linked_value); - } - } - break; - } - } - if (insn.id == MIPS_INS_ADDU && insn.operands[0].reg == MIPS_REG_GP && insn.operands[1].reg == MIPS_REG_GP && insn.operands[2].reg == MIPS_REG_T9 && i >= 2) { - //state->function_entry_points.insert(vaddr + (i - 2) * 4); - for (int j = i - 2; j <= i; j++) { - insns[j].id = MIPS_INS_NOP; - insns[j].mnemonic = "nop"; - insns[j].op_str = ""; - } - } - } -} - -static uint32_t addr_to_i(uint32_t addr) { - return (addr - text_vaddr) / 4; -} - -static void pass2(void) { - // Find returns in each function - for (size_t i = 0; i < insns.size(); i++) { - uint32_t addr = text_vaddr + i * 4; - Insn& insn = insns[i]; - if (insn.id == MIPS_INS_JR && insn.operands[0].reg == MIPS_REG_RA) { - auto it = find_function(addr); - assert(it != functions.end()); - it->second.returns.push_back(addr + 4); - } - if (insn.is_global_got_memop && text_vaddr <= insn.operands[1].imm && insn.operands[1].imm < text_vaddr + text_section_len) { - uint32_t faddr = insn.operands[1].imm; - li_function_pointers.insert(faddr); - functions[faddr].referenced_by_function_pointer = true; -#if INSPECT_FUNCTION_POINTERS - fprintf(stderr, "li function pointer: 0x%x at 0x%x\n", faddr, addr); -#endif - } - } - for (auto it = functions.begin(); it != functions.end(); ++it) { - if (it->second.returns.size() == 0) { - uint32_t i = addr_to_i(it->first); - auto str_it = symbol_names.find(it->first); - if (str_it != symbol_names.end() && str_it->second == "__start") { - - } else if (str_it != symbol_names.end() && str_it->second == "xmalloc") { - // orig 5.3: - /* - 496bf4: 3c1c0fb9 lui gp,0xfb9 - 496bf8: 279c366c addiu gp,gp,13932 - 496bfc: 0399e021 addu gp,gp,t9 - 496c00: 27bdffd8 addiu sp,sp,-40 - 496c04: 8f858de8 lw a1,-29208(gp) - 496c08: 10000006 b 496c24 - 496c0c: afbf0020 sw ra,32(sp) - */ - - // jal alloc_new - // lui $a1, malloc_scb - // jr $ra - // nop - uint32_t alloc_new_addr = text_vaddr + (i + 7) * 4; - insns[i].id = MIPS_INS_JAL; - insns[i].op_count = 1; - insns[i].mnemonic = "jal"; - insns[i].op_str = "alloc_new"; - insns[i].operands[0].imm = alloc_new_addr; - assert(symbol_names.count(alloc_new_addr) && symbol_names[alloc_new_addr] == "alloc_new"); - i++; - if (insns[i + 5].id == MIPS_INS_LI) { - // 7.1 - insns[i] = insns[i + 5]; - } else { - // 5.3 - insns[i] = insns[i + 3]; - } - i++; - insns[i].id = MIPS_INS_JR; - insns[i].op_count = 1; - insns[i].mnemonic = "jr"; - insns[i].op_str = "$ra"; - insns[i].operands[0].reg = MIPS_REG_RA; - it->second.returns.push_back(text_vaddr + i * 4 + 4); - i++; - for (uint32_t j = 0; j < 4; j++) { - insns[i].id = MIPS_INS_NOP; - insns[i].op_count = 0; - insns[i].mnemonic = "nop"; - i++; - } - } else if (str_it != symbol_names.end() && str_it->second == "xfree") { - // jal alloc_dispose - // lui $a1, malloc_scb - // jr $ra - // nop - uint32_t alloc_dispose_addr = text_vaddr + (i + 4) * 4; - if (symbol_names.count(alloc_dispose_addr + 4) && symbol_names[alloc_dispose_addr + 4] == "alloc_dispose") { - alloc_dispose_addr += 4; - } - insns[i].id = MIPS_INS_JAL; - insns[i].op_count = 1; - insns[i].mnemonic = "jal"; - insns[i].op_str = "alloc_dispose"; - insns[i].operands[0].imm = alloc_dispose_addr; - assert(symbol_names.count(alloc_dispose_addr) && symbol_names[alloc_dispose_addr] == "alloc_dispose"); - i++; - insns[i] = insns[i + 2]; - i++; - insns[i].id = MIPS_INS_JR; - insns[i].op_count = 1; - insns[i].mnemonic = "jr"; - insns[i].op_str = "$ra"; - insns[i].operands[0].reg = MIPS_REG_RA; - it->second.returns.push_back(text_vaddr + i * 4 + 4); - i++; - insns[i].id = MIPS_INS_NOP; - insns[i].op_count = 0; - insns[i].mnemonic = "nop"; - } else if (insns[i].id == MIPS_INS_LW && insns[i + 1].id == MIPS_INS_MOVE && insns[i + 2].id == MIPS_INS_JALR) { - /* - 408f50: 8f998010 lw t9,-32752(gp) - 408f54: 03e07821 move t7,ra - 408f58: 0320f809 jalr t9 - */ - } else if (it->first > mcount_addr) { - fprintf(stderr, "no ret: 0x%x\n", it->first); - abort(); - } - } - auto next = it; - ++next; - if (next == functions.end()) { - it->second.end_addr = text_vaddr + text_section_len; - } else { - it->second.end_addr = next->first; - } - } -} - -static void add_edge(uint32_t from, uint32_t to, bool function_entry = false, bool function_exit = false, bool extern_function = false, bool function_pointer = false) { - Edge fe = Edge(), be = Edge(); - fe.i = to; - be.i = from; - fe.function_entry = function_entry; - be.function_entry = function_entry; - fe.function_exit = function_exit; - be.function_exit = function_exit; - fe.extern_function = extern_function; - be.extern_function = extern_function; - fe.function_pointer = function_pointer; - be.function_pointer = function_pointer; - insns[from].successors.push_back(fe); - insns[to].predecessors.push_back(be); -} - -static void pass3(void) { - // Build graph - for (size_t i = 0; i < insns.size(); i++) { - uint32_t addr = text_vaddr + i * 4; - Insn& insn = insns[i]; - if (insn.no_following_successor) { - continue; - } - switch (insn.id) { - case MIPS_INS_BEQ: - case MIPS_INS_BGEZ: - case MIPS_INS_BGTZ: - case MIPS_INS_BLEZ: - case MIPS_INS_BLTZ: - case MIPS_INS_BNE: - case MIPS_INS_BEQZ: - case MIPS_INS_BNEZ: - case MIPS_INS_BC1F: - case MIPS_INS_BC1T: - add_edge(i, i + 1); - add_edge(i + 1, addr_to_i((uint32_t)insn.operands[insn.op_count - 1].imm)); - break; - - case MIPS_INS_BEQL: - case MIPS_INS_BGEZL: - case MIPS_INS_BGTZL: - case MIPS_INS_BLEZL: - case MIPS_INS_BLTZL: - case MIPS_INS_BNEL: - case MIPS_INS_BC1FL: - case MIPS_INS_BC1TL: - add_edge(i, i + 1); - add_edge(i, i + 2); - add_edge(i + 1, addr_to_i((uint32_t)insn.operands[insn.op_count - 1].imm)); - insns[i + 1].no_following_successor = true; // don't inspect delay slot - break; - - case MIPS_INS_B: - case MIPS_INS_J: - add_edge(i, i + 1); - add_edge(i + 1, addr_to_i((uint32_t)insn.operands[0].imm)); - insns[i + 1].no_following_successor = true; // don't inspect delay slot - break; - - case MIPS_INS_JR: { - add_edge(i, i + 1); - if (insn.jtbl_addr != 0) { - uint32_t jtbl_pos = insn.jtbl_addr - rodata_vaddr; - assert(jtbl_pos < rodata_section_len && jtbl_pos + insn.num_cases * 4 <= rodata_section_len); - for (uint32_t j = 0; j < insn.num_cases; j++) { - uint32_t dest_addr = read_u32_be(rodata_section + jtbl_pos + j * 4) + gp_value; - add_edge(i + 1, addr_to_i(dest_addr)); - } - } else { - assert(insn.operands[0].reg == MIPS_REG_RA && "jump to address in register not supported"); - } - insns[i + 1].no_following_successor = true; // don't inspect delay slot - break; - } - - case MIPS_INS_JAL: { - add_edge(i, i + 1); - uint32_t dest = (uint32_t)insn.operands[0].imm; - if (dest > mcount_addr && dest >= text_vaddr && dest < text_vaddr + text_section_len) { - add_edge(i + 1, addr_to_i(dest), true); - auto it = functions.find(dest); - assert(it != functions.end()); - for (uint32_t ret_instr : it->second.returns) { - add_edge(addr_to_i(ret_instr), i + 2, false, true); - } - } else { - add_edge(i + 1, i + 2, false, false, true); - } - insns[i + 1].no_following_successor = true; // don't inspect delay slot - break; - } - - case MIPS_INS_JALR: - // function pointer - add_edge(i, i + 1); - add_edge(i + 1, i + 2, false, false, false, true); - insns[i + 1].no_following_successor = true; // don't inspect delay slot - break; - - default: - add_edge(i, i + 1); - break; - } - } -} - -static uint64_t map_reg(int32_t reg) { - if (reg > MIPS_REG_31) { - if (reg == MIPS_REG_HI) { - reg = MIPS_REG_31 + 1; - } else if (reg == MIPS_REG_LO) { - reg = MIPS_REG_31 + 2; - } else { - return 0; - } - } - return (uint64_t)1 << (reg - MIPS_REG_0 + 1); -} - -static uint64_t temporary_regs(void) { - return - map_reg(MIPS_REG_T0) | - map_reg(MIPS_REG_T1) | - map_reg(MIPS_REG_T2) | - map_reg(MIPS_REG_T3) | - map_reg(MIPS_REG_T4) | - map_reg(MIPS_REG_T5) | - map_reg(MIPS_REG_T6) | - map_reg(MIPS_REG_T7) | - map_reg(MIPS_REG_T8) | - map_reg(MIPS_REG_T9); -} - -typedef enum { - TYPE_NOP, - TYPE_1S, - TYPE_2S, - TYPE_1D, - TYPE_1D_1S, - TYPE_1D_2S, - TYPE_D_LO_HI_2S, - TYPE_1S_POS1 -} TYPE; -static TYPE insn_to_type(Insn& i) { - switch (i.id) { - case MIPS_INS_ADD: - case MIPS_INS_ADDU: - if (i.mnemonic != "add.s" && i.mnemonic != "add.d") { - return TYPE_1D_2S; - } else { - return TYPE_NOP; - } - - case MIPS_INS_ADDI: - case MIPS_INS_ADDIU: - case MIPS_INS_ANDI: - case MIPS_INS_ORI: - case MIPS_INS_LB: - case MIPS_INS_LBU: - case MIPS_INS_LH: - case MIPS_INS_LHU: - case MIPS_INS_LW: - case MIPS_INS_LWL: - //case MIPS_INS_LWR: - case MIPS_INS_MOVE: - case MIPS_INS_NEGU: - case MIPS_INS_NOT: - case MIPS_INS_SLL: - case MIPS_INS_SLTI: - case MIPS_INS_SLTIU: - case MIPS_INS_SRA: - case MIPS_INS_SRL: - case MIPS_INS_XORI: - return TYPE_1D_1S; - - case MIPS_INS_MFHI: - i.operands[1].reg = MIPS_REG_HI; - return TYPE_1D_1S; - - case MIPS_INS_MFLO: - i.operands[1].reg = MIPS_REG_LO; - return TYPE_1D_1S; - - case MIPS_INS_AND: - case MIPS_INS_OR: - case MIPS_INS_NOR: - case MIPS_INS_SLLV: - case MIPS_INS_SLT: - case MIPS_INS_SLTU: - case MIPS_INS_SRAV: - case MIPS_INS_SRLV: - case MIPS_INS_SUBU: - case MIPS_INS_XOR: - return TYPE_1D_2S; - - case MIPS_INS_CFC1: - case MIPS_INS_MFC1: - case MIPS_INS_LI: - case MIPS_INS_LUI: - return TYPE_1D; - - case MIPS_INS_CTC1: - case MIPS_INS_BGEZ: - case MIPS_INS_BGEZL: - case MIPS_INS_BGTZ: - case MIPS_INS_BGTZL: - case MIPS_INS_BLEZ: - case MIPS_INS_BLEZL: - case MIPS_INS_BLTZ: - case MIPS_INS_BLTZL: - case MIPS_INS_BEQZ: - case MIPS_INS_BNEZ: - case MIPS_INS_MTC1: - return TYPE_1S; - - case MIPS_INS_BEQ: - case MIPS_INS_BEQL: - case MIPS_INS_BNE: - case MIPS_INS_BNEL: - case MIPS_INS_SB: - case MIPS_INS_SH: - case MIPS_INS_SW: - case MIPS_INS_SWL: - //case MIPS_INS_SWR: - case MIPS_INS_TNE: - case MIPS_INS_TEQ: - case MIPS_INS_TGE: - case MIPS_INS_TGEU: - case MIPS_INS_TLT: - return TYPE_2S; - - case MIPS_INS_DIV: - if (i.mnemonic != "div.s" && i.mnemonic != "div.d") { - return TYPE_D_LO_HI_2S; - } else { - return TYPE_NOP; - } - - case MIPS_INS_DIVU: - case MIPS_INS_MULT: - case MIPS_INS_MULTU: - return TYPE_D_LO_HI_2S; - - case MIPS_INS_NEG: - if (i.mnemonic != "neg.s" && i.mnemonic != "neg.d") { - return TYPE_1D_1S; - } else { - return TYPE_NOP; - } - - case MIPS_INS_JALR: - return TYPE_1S; - - case MIPS_INS_JR: - if (i.jtbl_addr != 0) { - i.operands[0].reg = i.index_reg; - } - if (i.operands[0].reg == MIPS_REG_RA) { - return TYPE_NOP; - } - return TYPE_1S; - - case MIPS_INS_LWC1: - case MIPS_INS_LDC1: - case MIPS_INS_SWC1: - case MIPS_INS_SDC1: - return TYPE_1S_POS1; - - default: - return TYPE_NOP; - } -} - -static void pass4(void) { - vector q; - uint64_t livein_func_start = 1U | map_reg(MIPS_REG_A0) | map_reg(MIPS_REG_A1) | map_reg(MIPS_REG_SP) | map_reg(MIPS_REG_ZERO); - - q.push_back(main_addr); - insns[addr_to_i(main_addr)].f_livein = livein_func_start; - - for (auto& it : data_function_pointers) { - q.push_back(it.second); - insns[addr_to_i(it.second)].f_livein = livein_func_start | map_reg(MIPS_REG_A2) | map_reg(MIPS_REG_A3); - } - for (auto& addr : li_function_pointers) { - q.push_back(addr); - insns[addr_to_i(addr)].f_livein = livein_func_start | map_reg(MIPS_REG_A2) | map_reg(MIPS_REG_A3); - } - - while (!q.empty()) { - uint32_t addr = q.back(); - q.pop_back(); - uint32_t idx = addr_to_i(addr); - Insn& i = insns[idx]; - uint64_t live = i.f_livein | 1; - switch (insn_to_type(i)) { - case TYPE_1D: - live |= map_reg(i.operands[0].reg); - break; - - case TYPE_1D_1S: - if (live & map_reg(i.operands[1].reg)) { - live |= map_reg(i.operands[0].reg); - } - break; - - case TYPE_1D_2S: - if ((live & map_reg(i.operands[1].reg)) && (live & map_reg(i.operands[2].reg))) { - live |= map_reg(i.operands[0].reg); - } - break; - - case TYPE_D_LO_HI_2S: - if ((live & map_reg(i.operands[0].reg)) && (live & map_reg(i.operands[1].reg))) { - live |= map_reg(MIPS_REG_LO); - live |= map_reg(MIPS_REG_HI); - } - break; - } - if ((i.f_liveout | live) == i.f_liveout) { - // No new bits - continue; - } - live |= i.f_liveout; - i.f_liveout = live; - - bool function_entry = false; - for (Edge& e : i.successors) { - uint64_t new_live = live; - if (e.function_exit) { - new_live &= 1U | map_reg(MIPS_REG_V0) | map_reg(MIPS_REG_V1) | map_reg(MIPS_REG_ZERO); - } else if (e.function_entry) { - new_live &= 1U | map_reg(MIPS_REG_V0) | map_reg(MIPS_REG_A0) | map_reg(MIPS_REG_A1) | - map_reg(MIPS_REG_A2) | map_reg(MIPS_REG_A3) | map_reg(MIPS_REG_SP) | map_reg(MIPS_REG_ZERO); - function_entry = true; - } else if (e.extern_function) { - string name; - bool is_extern_function = false; - size_t extern_function_id; - auto it = symbol_names.find(insns[idx - 1].operands[0].imm); - if (it != symbol_names.end()) { - name = it->second; - for (size_t i = 0; i < sizeof(extern_functions) / sizeof(extern_functions[0]); i++) { - if (name == extern_functions[i].name) { - is_extern_function = true; - extern_function_id = i; - break; - } - } - if (!is_extern_function) { - fprintf(stderr, "missing extern function: %s\n", name.c_str()); - } - } - assert(is_extern_function); - auto& fn = extern_functions[extern_function_id]; - char ret_type = fn.params[0]; - new_live &= ~(map_reg(MIPS_REG_V0) | map_reg(MIPS_REG_A0) | map_reg(MIPS_REG_A1) | - map_reg(MIPS_REG_A2) | map_reg(MIPS_REG_A3) | map_reg(MIPS_REG_V1) | temporary_regs()); - switch (ret_type) { - case 'i': - case 'u': - case 'p': - new_live |= map_reg(MIPS_REG_V0); - break; - case 'f': - break; - case 'd': - break; - case 'v': - break; - case 'l': - case 'j': - new_live |= map_reg(MIPS_REG_V0) | map_reg(MIPS_REG_V1); - break; - } - } else if (e.function_pointer) { - new_live &= ~(map_reg(MIPS_REG_V0) | map_reg(MIPS_REG_A0) | map_reg(MIPS_REG_A1) | - map_reg(MIPS_REG_A2) | map_reg(MIPS_REG_A3) | map_reg(MIPS_REG_V1) | temporary_regs()); - new_live |= map_reg(MIPS_REG_V0) | map_reg(MIPS_REG_V1); - } - if ((insns[e.i].f_livein | new_live) != insns[e.i].f_livein) { - insns[e.i].f_livein |= new_live; - q.push_back(text_vaddr + e.i * 4); - } - } - if (function_entry) { - // add one edge that skips the function call, for callee-saved register liveness propagation - live &= ~(map_reg(MIPS_REG_V0) | map_reg(MIPS_REG_A0) | map_reg(MIPS_REG_A1) | - map_reg(MIPS_REG_A2) | map_reg(MIPS_REG_A3) | map_reg(MIPS_REG_V1) | temporary_regs()); - if ((insns[idx + 1].f_livein | live) != insns[idx + 1].f_livein) { - insns[idx + 1].f_livein |= live; - q.push_back(text_vaddr + (idx + 1) * 4); - } - } - } -} - -static void pass5(void) { - vector q; - - assert(functions.count(main_addr)); - - q = functions[main_addr].returns; - for (auto addr : q) { - insns[addr_to_i(addr)].b_liveout = 1U | map_reg(MIPS_REG_V0); - } - for (auto& it : data_function_pointers) { - for (auto addr : functions[it.second].returns) { - q.push_back(addr); - insns[addr_to_i(addr)].b_liveout = 1U | map_reg(MIPS_REG_V0) | map_reg(MIPS_REG_V1); - } - } - for (auto& func_addr : li_function_pointers) { - for (auto addr : functions[func_addr].returns) { - q.push_back(addr); - insns[addr_to_i(addr)].b_liveout = 1U | map_reg(MIPS_REG_V0) | map_reg(MIPS_REG_V1); - } - } - for (size_t i = 0; i < insns.size(); i++) { - if (insns[i].f_livein != 0) { - // Instruction is reachable - q.push_back(text_vaddr + i * 4); - } - } - - while (!q.empty()) { - uint32_t addr = q.back(); - q.pop_back(); - uint32_t idx = addr_to_i(addr); - Insn& i = insns[idx]; - uint64_t live = i.b_liveout | 1; - switch (insn_to_type(i)) { - case TYPE_1S: - live |= map_reg(i.operands[0].reg); - break; - - case TYPE_1S_POS1: - live |= map_reg(i.operands[1].reg); - break; - - case TYPE_2S: - live |= map_reg(i.operands[0].reg); - live |= map_reg(i.operands[1].reg); - break; - - case TYPE_1D: - live &= ~map_reg(i.operands[0].reg); - break; - - case TYPE_1D_1S: - if (live & map_reg(i.operands[0].reg)) { - live &= ~map_reg(i.operands[0].reg); - live |= map_reg(i.operands[1].reg); - } - break; - - case TYPE_1D_2S: - if (live & map_reg(i.operands[0].reg)) { - live &= ~map_reg(i.operands[0].reg); - live |= map_reg(i.operands[1].reg); - live |= map_reg(i.operands[2].reg); - } - break; - - case TYPE_D_LO_HI_2S: { - bool used = (live & map_reg(MIPS_REG_LO)) || (live & map_reg(MIPS_REG_HI)); - live &= ~map_reg(MIPS_REG_LO); - live &= ~map_reg(MIPS_REG_HI); - if (used) { - live |= map_reg(i.operands[0].reg); - live |= map_reg(i.operands[1].reg); - } - break; - } - } - if ((i.b_livein | live) == i.b_livein) { - // No new bits - continue; - } - live |= i.b_livein; - i.b_livein = live; - - bool function_exit = false; - for (Edge& e : i.predecessors) { - uint64_t new_live = live; - if (e.function_exit) { - new_live &= 1U | map_reg(MIPS_REG_V0) | map_reg(MIPS_REG_V1); - function_exit = true; - } else if (e.function_entry) { - new_live &= 1U | map_reg(MIPS_REG_V0) | map_reg(MIPS_REG_A0) | map_reg(MIPS_REG_A1) | - map_reg(MIPS_REG_A2) | map_reg(MIPS_REG_A3) | map_reg(MIPS_REG_SP); - } else if (e.extern_function) { - string name; - bool is_extern_function = false; - size_t extern_function_id; - auto it = symbol_names.find(insns[idx - 2].operands[0].imm); - if (it != symbol_names.end()) { - name = it->second; - for (size_t i = 0; i < sizeof(extern_functions) / sizeof(extern_functions[0]); i++) { - if (name == extern_functions[i].name) { - is_extern_function = true; - extern_function_id = i; - break; - } - } - } - assert(is_extern_function); - auto& fn = extern_functions[extern_function_id]; - uint64_t args = 1U; - if (fn.flags & FLAG_VARARG) { - // Assume the worst, that all four registers are used - for (int j = 0; j < 4; j++) { - args |= map_reg(MIPS_REG_A0 + j); - } - } - int pos = 0; - int pos_float = 0; - bool only_floats_so_far = true; - for (const char *p = fn.params + 1; *p != '\0'; ++p) { - switch (*p) { - case 'i': - case 'u': - case 'p': - case 't': - only_floats_so_far = false; - if (pos < 4) { - args |= map_reg(MIPS_REG_A0 + pos); - } - ++pos; - break; - case 'f': - if (only_floats_so_far && pos_float < 4) { - pos_float += 2; - } else if (pos < 4) { - args |= map_reg(MIPS_REG_A0 + pos); - } - ++pos; - break; - case 'd': - if (pos % 1 != 0) { - ++pos; - } - if (only_floats_so_far && pos_float < 4) { - pos_float += 2; - } else if (pos < 4) { - args |= map_reg(MIPS_REG_A0 + pos) | map_reg(MIPS_REG_A0 + pos + 1); - } - pos += 2; - break; - case 'l': - case 'j': - if (pos % 1 != 0) { - ++pos; - } - only_floats_so_far = false; - if (pos < 4) { - args |= map_reg(MIPS_REG_A0 + pos) | map_reg(MIPS_REG_A0 + pos + 1); - } - pos += 2; - break; - } - } - args |= map_reg(MIPS_REG_SP); - new_live &= ~(map_reg(MIPS_REG_V0) | map_reg(MIPS_REG_A0) | map_reg(MIPS_REG_A1) | - map_reg(MIPS_REG_A2) | map_reg(MIPS_REG_A3) | map_reg(MIPS_REG_V1) | temporary_regs()); - new_live |= args; - } else if (e.function_pointer) { - new_live &= ~(map_reg(MIPS_REG_V0) | map_reg(MIPS_REG_A0) | map_reg(MIPS_REG_A1) | - map_reg(MIPS_REG_A2) | map_reg(MIPS_REG_A3) | map_reg(MIPS_REG_V1) | temporary_regs()); - new_live |= map_reg(MIPS_REG_A0) | map_reg(MIPS_REG_A1) | map_reg(MIPS_REG_A2) | map_reg(MIPS_REG_A3); - } - if ((insns[e.i].b_liveout | new_live) != insns[e.i].b_liveout) { - insns[e.i].b_liveout |= new_live; - q.push_back(text_vaddr + e.i * 4); - } - } - if (function_exit) { - // add one edge that skips the function call, for callee-saved register liveness propagation - live &= ~(map_reg(MIPS_REG_V0) | map_reg(MIPS_REG_A0) | map_reg(MIPS_REG_A1) | - map_reg(MIPS_REG_A2) | map_reg(MIPS_REG_A3) | map_reg(MIPS_REG_V1) | temporary_regs()); - if ((insns[idx - 1].b_liveout | live) != insns[idx - 1].b_liveout) { - insns[idx - 1].b_liveout |= live; - q.push_back(text_vaddr + (idx - 1) * 4); - } - } - } -} - -static void pass6(void) { - for (auto& it : functions) { - uint32_t addr = it.first; - Function& f = it.second; - for (uint32_t ret : f.returns) { - Insn& i = insns[addr_to_i(ret)]; - if (i.f_liveout & i.b_liveout & map_reg(MIPS_REG_V1)) { - f.nret = 2; - } else if ((i.f_liveout & i.b_liveout & map_reg(MIPS_REG_V0)) && f.nret == 0) { - f.nret = 1; - } - } - Insn& insn = insns.at(addr_to_i(addr)); - for (int i = 0; i < 4; i++) { - if (insn.f_livein & insn.b_livein & map_reg(MIPS_REG_A0 + i)) { - f.nargs = 1 + i; - } - } - f.v0_in = (insn.f_livein & insn.b_livein & map_reg(MIPS_REG_V0)) != 0 && !f.referenced_by_function_pointer; - } -} - -static void dump(void) { - for (size_t i = 0; i < insns.size(); i++) { - Insn& insn = insns[i]; - uint32_t vaddr = text_vaddr + i * 4; - if (label_addresses.count(vaddr)) { - if (symbol_names.count(vaddr)) { - printf("L%08x: //%s\n", vaddr, symbol_names[vaddr].c_str()); - } else { - printf("L%08x:\n", vaddr); - } - } - printf("\t%s %s\n", insn.mnemonic.c_str(), insn.op_str.c_str()); - } -} - -static const char *r(uint32_t reg) { - return cs_reg_name(handle, reg); -} - -static const char *wr(uint32_t reg) { - static const char *regs[] = { - "f0.w[0]", "f0.w[1]", - "f2.w[0]", "f2.w[1]", - "f4.w[0]", "f4.w[1]", - "f6.w[0]", "f6.w[1]", - "f8.w[0]", "f8.w[1]", - "f10.w[0]", "f10.w[1]", - "f12.w[0]", "f12.w[1]", - "f14.w[0]", "f14.w[1]", - "f16.w[0]", "f16.w[1]", - "f18.w[0]", "f18.w[1]", - "f20.w[0]", "f20.w[1]", - "f22.w[0]", "f22.w[1]", - "f24.w[0]", "f24.w[1]", - "f26.w[0]", "f26.w[1]", - "f28.w[0]", "f28.w[1]", - "f30.w[0]", "f30.w[1]" - }; - assert(reg >= MIPS_REG_F0 && reg <= MIPS_REG_F31); - return regs[reg - MIPS_REG_F0]; -} - -static const char *fr(uint32_t reg) { - static const char *regs[] = { - "f0.f[0]", "f0.f[1]", - "f2.f[0]", "f2.f[1]", - "f4.f[0]", "f4.f[1]", - "f6.f[0]", "f6.f[1]", - "f8.f[0]", "f8.f[1]", - "f10.f[0]", "f10.f[1]", - "f12.f[0]", "f12.f[1]", - "f14.f[0]", "f14.f[1]", - "f16.f[0]", "f16.f[1]", - "f18.f[0]", "f18.f[1]", - "f20.f[0]", "f20.f[1]", - "f22.f[0]", "f22.f[1]", - "f24.f[0]", "f24.f[1]", - "f26.f[0]", "f26.f[1]", - "f28.f[0]", "f28.f[1]", - "f30.f[0]", "f30.f[1]" - }; - assert(reg >= MIPS_REG_F0 && reg <= MIPS_REG_F31); - return regs[reg - MIPS_REG_F0]; -} - -static const char *dr(uint32_t reg) { - static const char *regs[] = { - "f0.d", - "f2.d", - "f4.d", - "f6.d", - "f8.d", - "f10.d", - "f12.d", - "f14.d", - "f16.d", - "f18.d", - "f20.d", - "f22.d", - "f24.d", - "f26.d", - "f28.d", - "f30.d" - }; - assert(reg >= MIPS_REG_F0 && reg <= MIPS_REG_F31 && (reg - MIPS_REG_F0) % 2 == 0); - return regs[(reg - MIPS_REG_F0) / 2]; -} - -static void dump_instr(int i); - -static void dump_cond_branch(int i, const char *lhs, const char *op, const char *rhs) { - Insn& insn = insns[i]; - const char *cast1 = ""; - const char *cast2 = ""; - if (strcmp(op, "==") && strcmp(op, "!=")) { - cast1 = "(int)"; - if (strcmp(rhs, "0")) { - cast2 = "(int)"; - } - } - printf("if (%s%s %s %s%s) {", cast1, lhs, op, cast2, rhs); - dump_instr(i + 1); - printf("goto L%x;}\n", (uint32_t)insn.operands[insn.op_count - 1].imm); -} - -static void dump_cond_branch_likely(int i, const char *lhs, const char *op, const char *rhs) { - uint32_t target = text_vaddr + (i + 2) * 4; - dump_cond_branch(i, lhs, op, rhs); - if (!TRACE) { - printf("else goto L%x;\n", target); - } else { - printf("else {printf(\"pc=0x%08x (ignored)\\n\"); goto L%x;}\n", text_vaddr + (i + 1) * 4, target); - } - label_addresses.insert(target); -} - -static void dump_instr(int i) { - const char *symbol_name = NULL; - if (symbol_names.count(text_vaddr + i * 4) != 0) { - symbol_name = symbol_names[text_vaddr + i * 4].c_str(); - printf("//%s:\n", symbol_name); - } - if (TRACE) { - printf("++cnt; printf(\"pc=0x%08x%s%s\\n\"); ", text_vaddr + i * 4, symbol_name ? " " : "", symbol_name ? symbol_name : ""); - } - Insn& insn = insns[i]; - if (!insn.is_jump && !ugen53) { - switch (insn_to_type(insn)) { - case TYPE_1S: - if (!(insn.f_livein & map_reg(insn.operands[0].reg))) { - printf("// fdead %llx ", (unsigned long long)insn.f_livein); - } - break; - case TYPE_1S_POS1: - if (!(insn.f_livein & map_reg(insn.operands[1].reg))) { - printf("// fdead %llx ", (unsigned long long)insn.f_livein); - } - break; - case TYPE_2S: - if (!(insn.f_livein & map_reg(insn.operands[0].reg)) || !(insn.f_livein & map_reg(insn.operands[1].reg))) { - printf("// fdead %llx ", (unsigned long long)insn.f_livein); - } - break; - case TYPE_1D_2S: - if (!(insn.f_livein & map_reg(insn.operands[2].reg))) { - printf("// fdead %llx ", (unsigned long long)insn.f_livein); - break; - } - // fallthrough - case TYPE_1D_1S: - if (!(insn.f_livein & map_reg(insn.operands[1].reg))) { - printf("// fdead %llx ", (unsigned long long)insn.f_livein); - break; - } - // fallthrough - case TYPE_1D: - if (!(insn.b_liveout & map_reg(insn.operands[0].reg))) { - printf("// bdead %llx ", (unsigned long long)insn.b_liveout); - } - break; - case TYPE_D_LO_HI_2S: - if (!(insn.f_livein & map_reg(insn.operands[0].reg)) || !(insn.f_livein & map_reg(insn.operands[1].reg))) { - printf("// fdead %llx ", (unsigned long long)insn.f_livein); - break; - } - if (!(insn.b_liveout & (map_reg(MIPS_REG_LO) | map_reg(MIPS_REG_HI)))) { - printf("// bdead %llx ", (unsigned long long)insn.b_liveout); - } - break; - } - } - switch (insn.id) { - case MIPS_INS_ADD: - case MIPS_INS_ADDU: - if (insn.mnemonic == "add.s") { - printf("%s = %s + %s;\n", fr(insn.operands[0].reg), fr(insn.operands[1].reg), fr(insn.operands[2].reg)); - } else if (insn.mnemonic == "add.d") { - printf("%s = %s + %s;\n", dr(insn.operands[0].reg), dr(insn.operands[1].reg), dr(insn.operands[2].reg)); - } else { - printf("%s = %s + %s;\n", r(insn.operands[0].reg), r(insn.operands[1].reg), r(insn.operands[2].reg)); - } - break; - case MIPS_INS_ADDI: - case MIPS_INS_ADDIU: - printf("%s = %s + 0x%x;\n", r(insn.operands[0].reg), r(insn.operands[1].reg), (uint32_t)insn.operands[2].imm); - break; - case MIPS_INS_AND: - printf("%s = %s & %s;\n", r(insn.operands[0].reg), r(insn.operands[1].reg), r(insn.operands[2].reg)); - break; - case MIPS_INS_ANDI: - printf("%s = %s & 0x%x;\n", r(insn.operands[0].reg), r(insn.operands[1].reg), (uint32_t)insn.operands[2].imm); - break; - case MIPS_INS_BEQ: - dump_cond_branch(i, r(insn.operands[0].reg), "==", r(insn.operands[1].reg)); - break; - case MIPS_INS_BEQL: - dump_cond_branch_likely(i, r(insn.operands[0].reg), "==", r(insn.operands[1].reg)); - break; - case MIPS_INS_BGEZ: - dump_cond_branch(i, r(insn.operands[0].reg), ">=", "0"); - break; - case MIPS_INS_BGEZL: - dump_cond_branch_likely(i, r(insn.operands[0].reg), ">=", "0"); - break; - case MIPS_INS_BGTZ: - dump_cond_branch(i, r(insn.operands[0].reg), ">", "0"); - break; - case MIPS_INS_BGTZL: - dump_cond_branch_likely(i, r(insn.operands[0].reg), ">", "0"); - break; - case MIPS_INS_BLEZ: - dump_cond_branch(i, r(insn.operands[0].reg), "<=", "0"); - break; - case MIPS_INS_BLEZL: - dump_cond_branch_likely(i, r(insn.operands[0].reg), "<=", "0"); - break; - case MIPS_INS_BLTZ: - dump_cond_branch(i, r(insn.operands[0].reg), "<", "0"); - break; - case MIPS_INS_BLTZL: - dump_cond_branch_likely(i, r(insn.operands[0].reg), "<", "0"); - break; - case MIPS_INS_BNE: - dump_cond_branch(i, r(insn.operands[0].reg), "!=", r(insn.operands[1].reg)); - break; - case MIPS_INS_BNEL: - dump_cond_branch_likely(i, r(insn.operands[0].reg), "!=", insn.mnemonic == "bnezl" ? "0" : r(insn.operands[1].reg)); - break; - case MIPS_INS_BREAK: - printf("abort();\n"); - break; - case MIPS_INS_BEQZ: - dump_cond_branch(i, r(insn.operands[0].reg), "==", "0"); - break; - /*case MIPS_INS_BEQZL: - dump_cond_branch_likely(i, r(insn.operands[0].reg), "==", "0"); - break;*/ - case MIPS_INS_B: - dump_instr(i + 1); - printf("goto L%x;\n", (int32_t)insn.operands[0].imm); - break; - case MIPS_INS_BC1F: - case MIPS_INS_BC1T: - printf("if (%scf) {", insn.id == MIPS_INS_BC1F ? "!" : ""); - dump_instr(i + 1); - printf("goto L%x;}\n", (int32_t)insn.operands[0].imm); - break; - case MIPS_INS_BC1FL: - case MIPS_INS_BC1TL: - { - uint32_t target = text_vaddr + (i + 2) * 4; - printf("if (%scf) {", insn.id == MIPS_INS_BC1FL ? "!" : ""); - dump_instr(i + 1); - printf("goto L%x;}\n", (int32_t)insn.operands[0].imm); - if (!TRACE) { - printf("else goto L%x;\n", target); - } else { - printf("else {printf(\"pc=0x%08x (ignored)\\n\"); goto L%x;}\n", text_vaddr + (i + 1) * 4, target); - } - label_addresses.insert(target); - break; - } - case MIPS_INS_BNEZ: - dump_cond_branch(i, r(insn.operands[0].reg), "!=", "0"); - break; - /*case MIPS_INS_BNEZL: - dump_cond_branch_likely(i, r(insn.operands[0].reg), "!=", "0"); - break;*/ - case MIPS_INS_C: - if (insn.mnemonic == "c.lt.s") { - printf("cf = %s < %s;\n", fr(insn.operands[0].reg), fr(insn.operands[1].reg)); - } else if (insn.mnemonic == "c.le.s") { - printf("cf = %s <= %s;\n", fr(insn.operands[0].reg), fr(insn.operands[1].reg)); - } else if (insn.mnemonic == "c.eq.s") { - printf("cf = %s == %s;\n", fr(insn.operands[0].reg), fr(insn.operands[1].reg)); - } else if (insn.mnemonic == "c.lt.d") { - printf("cf = %s < %s;\n", dr(insn.operands[0].reg), dr(insn.operands[1].reg)); - } else if (insn.mnemonic == "c.le.d") { - printf("cf = %s <= %s;\n", dr(insn.operands[0].reg), dr(insn.operands[1].reg)); - } else if (insn.mnemonic == "c.eq.d") { - printf("cf = %s == %s;\n", dr(insn.operands[0].reg), dr(insn.operands[1].reg)); - } - break; - case MIPS_INS_CVT: - if (insn.mnemonic == "cvt.s.w") { - printf("%s = (int)%s;\n", fr(insn.operands[0].reg), wr(insn.operands[1].reg)); - } else if (insn.mnemonic == "cvt.d.w") { - printf("%s = (int)%s;\n", dr(insn.operands[0].reg), wr(insn.operands[1].reg)); - } else if (insn.mnemonic == "cvt.d.s") { - printf("%s = %s;\n", dr(insn.operands[0].reg), fr(insn.operands[1].reg)); - } else if (insn.mnemonic == "cvt.s.d") { - printf("%s = %s;\n", fr(insn.operands[0].reg), dr(insn.operands[1].reg)); - } else if (insn.mnemonic == "cvt.w.d") { - printf("%s = cvt_w_d(%s);\n", wr(insn.operands[0].reg), dr(insn.operands[1].reg)); - } else if (insn.mnemonic == "cvt.w.s") { - printf("%s = cvt_w_s(%s);\n", wr(insn.operands[0].reg), fr(insn.operands[1].reg)); - } else { - goto unimplemented; - } - break; - case MIPS_INS_CFC1: - assert(insn.operands[1].reg == MIPS_REG_31); - printf("%s = fcsr;\n", r(insn.operands[0].reg)); - break; - case MIPS_INS_CTC1: - assert(insn.operands[1].reg == MIPS_REG_31); - printf("fcsr = %s;\n", r(insn.operands[0].reg)); - break; - case MIPS_INS_DIV: - if (insn.mnemonic == "div.s") { - assert(insn.op_count == 3); - printf("%s = %s / %s;\n", fr(insn.operands[0].reg), fr(insn.operands[1].reg), fr(insn.operands[2].reg)); - } else if (insn.mnemonic == "div.d") { - assert(insn.op_count == 3); - printf("%s = %s / %s;\n", dr(insn.operands[0].reg), dr(insn.operands[1].reg), dr(insn.operands[2].reg)); - } else { - assert(insn.op_count == 2); - printf("lo = (int)%s / (int)%s; ", r(insn.operands[0].reg), r(insn.operands[1].reg)); - printf("hi = (int)%s %% (int)%s;\n", r(insn.operands[0].reg), r(insn.operands[1].reg)); - } - break; - case MIPS_INS_DIVU: - assert(insn.op_count == 2); - printf("lo = %s / %s; ", r(insn.operands[0].reg), r(insn.operands[1].reg)); - printf("hi = %s %% %s;\n", r(insn.operands[0].reg), r(insn.operands[1].reg)); - break; - case MIPS_INS_MOV: - if (insn.mnemonic == "mov.s") { - printf("%s = %s;\n", fr(insn.operands[0].reg), fr(insn.operands[1].reg)); - } else if (insn.mnemonic == "mov.d") { - printf("%s = %s;\n", dr(insn.operands[0].reg), dr(insn.operands[1].reg)); - } else { - goto unimplemented; - } - break; - case MIPS_INS_MUL: - if (insn.mnemonic == "mul.s") { - printf("%s = %s * %s;\n", fr(insn.operands[0].reg), fr(insn.operands[1].reg), fr(insn.operands[2].reg)); - } else if (insn.mnemonic == "mul.d") { - printf("%s = %s * %s;\n", dr(insn.operands[0].reg), dr(insn.operands[1].reg), dr(insn.operands[2].reg)); - } else { - goto unimplemented; - } - break; - case MIPS_INS_NEG: - if (insn.mnemonic == "neg.s") { - printf("%s = -%s;\n", fr(insn.operands[0].reg), fr(insn.operands[1].reg)); - } else if (insn.mnemonic == "neg.d") { - printf("%s = -%s;\n", dr(insn.operands[0].reg), dr(insn.operands[1].reg)); - } else { - printf("%s = -%s;\n", r(insn.operands[0].reg), r(insn.operands[1].reg)); - } - break; - case MIPS_INS_SUB: - if (insn.mnemonic == "sub.s") { - printf("%s = %s - %s;\n", fr(insn.operands[0].reg), fr(insn.operands[1].reg), fr(insn.operands[2].reg)); - } else if (insn.mnemonic == "sub.d") { - printf("%s = %s - %s;\n", dr(insn.operands[0].reg), dr(insn.operands[1].reg), dr(insn.operands[2].reg)); - } else { - goto unimplemented; - } - break; - case MIPS_INS_J: - dump_instr(i + 1); - printf("goto L%x;\n", (uint32_t)insn.operands[0].imm); - break; - case MIPS_INS_JAL: - { - string name; - bool is_extern_function = false; - size_t extern_function_id; - auto it = symbol_names.find(insn.operands[0].imm); - if (it != symbol_names.end()) { - name = it->second; - for (size_t i = 0; i < sizeof(extern_functions) / sizeof(extern_functions[0]); i++) { - if (name == extern_functions[i].name) { - is_extern_function = true; - extern_function_id = i; - break; - } - } - } - dump_instr(i + 1); - if (is_extern_function) { - auto& fn = extern_functions[extern_function_id]; - if (fn.flags & FLAG_VARARG) { - for (int j = 0; j < 4; j++) { - printf("MEM_U32(sp + %d) = %s;\n", j * 4, r(MIPS_REG_A0 + j)); - } - } - char ret_type = fn.params[0]; - if (ret_type != 'v') { - switch (ret_type) { - case 'i': - case 'u': - case 'p': - printf("%s = ", r(MIPS_REG_V0)); - break; - case 'f': - printf("%s = ", fr(MIPS_REG_F0)); - break; - case 'd': - printf("%s = ", dr(MIPS_REG_F0)); - break; - case 'l': - case 'j': - printf("temp64 = "); - break; - } - } - printf("wrapper_%s(", name.c_str()); - bool first = true; - if (!(fn.flags & FLAG_NO_MEM)) { - printf("mem"); - first = false; - } - int pos = 0; - int pos_float = 0; - bool only_floats_so_far = true; - bool needs_sp = false; - for (const char *p = fn.params + 1; *p != '\0'; ++p) { - if (!first) { - printf(", "); - } - first = false; - switch (*p) { - case 't': - printf("trampoline, "); - needs_sp = true; - // fallthrough - case 'i': - case 'u': - case 'p': - only_floats_so_far = false; - if (pos < 4) { - printf("%s", r(MIPS_REG_A0 + pos)); - } else { - printf("MEM_%c32(sp + %d)", *p == 'i' ? 'S' : 'U', pos * 4); - } - ++pos; - break; - case 'f': - if (only_floats_so_far && pos_float < 4) { - printf("%s", fr(MIPS_REG_F12 + pos_float)); - pos_float += 2; - } else if (pos < 4) { - printf("BITCAST_U32_TO_F32(%s)", r(MIPS_REG_A0 + pos)); - } else { - printf("BITCAST_U32_TO_F32(MEM_U32(sp + %d))", pos * 4); - } - ++pos; - break; - case 'd': - if (pos % 1 != 0) { - ++pos; - } - if (only_floats_so_far && pos_float < 4) { - printf("%s", dr(MIPS_REG_F12 + pos_float)); - pos_float += 2; - } else if (pos < 4) { - printf("BITCAST_U64_TO_F64(((uint64_t)%s << 32) | (uint64_t)%s)", r(MIPS_REG_A0 + pos), r(MIPS_REG_A0 + pos + 1)); - } else { - printf("BITCAST_U64_TO_F64(((uint64_t)MEM_U32(sp + %d) << 32) | (uint64_t)MEM_U32(sp + %d))", pos * 4, (pos + 1) * 4); - } - pos += 2; - break; - case 'l': - case 'j': - if (pos % 1 != 0) { - ++pos; - } - only_floats_so_far = false; - if (*p == 'l') { - printf("(int64_t)"); - } - if (pos < 4) { - printf("(((uint64_t)%s << 32) | (uint64_t)%s)", r(MIPS_REG_A0 + pos), r(MIPS_REG_A0 + pos + 1)); - } else { - printf("(((uint64_t)MEM_U32(sp + %d) << 32) | (uint64_t)MEM_U32(sp + %d))", pos * 4, (pos + 1) * 4); - } - pos += 2; - break; - } - } - if ((fn.flags & FLAG_VARARG) || needs_sp) { - printf("%s%s", first ? "" : ", ", r(MIPS_REG_SP)); - } - printf(");\n"); - if (ret_type == 'l' || ret_type == 'j') { - printf("%s = (uint32_t)(temp64 >> 32);\n", r(MIPS_REG_V0)); - printf("%s = (uint32_t)temp64;\n", r(MIPS_REG_V1)); - } - if (!name.empty()) { - //printf("printf(\"%s %%x\\n\", %s);\n", name.c_str(), r(MIPS_REG_A0)); - } - } else { - Function& f = functions.find((uint32_t)insn.operands[0].imm)->second; - if (f.nret == 1) { - printf("v0 = "); - } else if (f.nret == 2) { - printf("temp64 = "); - } - if (!name.empty()) { - //printf("printf(\"%s %%x\\n\", %s);\n", name.c_str(), r(MIPS_REG_A0)); - printf("f_%s", name.c_str()); - } else { - printf("func_%x", (uint32_t)insn.operands[0].imm); - } - printf("(mem, sp"); - if (f.v0_in) { - printf(", %s", r(MIPS_REG_V0)); - } - for (uint32_t i = 0; i < f.nargs; i++) { - printf(", %s", r(MIPS_REG_A0 + i)); - } - printf(");\n"); - if (f.nret == 2) { - printf("%s = (uint32_t)(temp64 >> 32);\n", r(MIPS_REG_V0)); - printf("%s = (uint32_t)temp64;\n", r(MIPS_REG_V1)); - } - } - printf("goto L%x;\n", text_vaddr + (i + 2) * 4); - label_addresses.insert(text_vaddr + (i + 2) * 4); - break; - } - case MIPS_INS_JALR: - printf("fp_dest = %s;\n", r(insn.operands[0].reg)); - dump_instr(i + 1); - printf("temp64 = trampoline(mem, sp, %s, %s, %s, %s, fp_dest);\n", - r(MIPS_REG_A0), r(MIPS_REG_A1), r(MIPS_REG_A2), r(MIPS_REG_A3)); - printf("%s = (uint32_t)(temp64 >> 32);\n", r(MIPS_REG_V0)); - printf("%s = (uint32_t)temp64;\n", r(MIPS_REG_V1)); - printf("goto L%x;\n", text_vaddr + (i + 2) * 4); - label_addresses.insert(text_vaddr + (i + 2) * 4); - break; - case MIPS_INS_JR: - if (insn.jtbl_addr != 0) { - uint32_t jtbl_pos = insn.jtbl_addr - rodata_vaddr; - assert(jtbl_pos < rodata_section_len && jtbl_pos + insn.num_cases * 4 <= rodata_section_len); -#if 1 - printf(";static void *const Lswitch%x[] = {\n", insn.jtbl_addr); - for (uint32_t i = 0; i < insn.num_cases; i++) { - uint32_t dest_addr = read_u32_be(rodata_section + jtbl_pos + i * 4) + gp_value; - printf("&&L%x,\n", dest_addr); - label_addresses.insert(dest_addr); - } - printf("};\n"); - printf("dest = Lswitch%x[%s];\n", insn.jtbl_addr, r(insn.index_reg)); - dump_instr(i + 1); - printf("goto *dest;\n"); -#else - assert(insns[i + 1].id == MIPS_INS_NOP); - printf("switch (%s) {\n", r(insn.index_reg)); - for (uint32_t i = 0; i < insn.num_cases; i++) { - uint32_t dest_addr = read_u32_be(rodata_section + jtbl_pos + i * 4) + gp_value; - printf("case %u: goto L%x;\n", i, dest_addr); - label_addresses.insert(dest_addr); - } - printf("}\n"); -#endif - } else { - if (insn.operands[0].reg != MIPS_REG_RA) { - printf("UNSUPPORTED JR %s %s\n", insn.op_str.c_str(), r(insn.operands[0].reg)); - } else { - dump_instr(i + 1); - switch (find_function(text_vaddr + i * 4)->second.nret) { - case 0: - printf("return;\n"); - break; - case 1: - printf("return v0;\n"); - break; - case 2: - printf("return ((uint64_t)v0 << 32) | v1;\n"); - break; - } - } - } - break; - case MIPS_INS_LB: - printf("%s = MEM_S8(%s + %d);\n", r(insn.operands[0].reg), r(insn.operands[1].mem.base), (int)insn.operands[1].mem.disp); - break; - case MIPS_INS_LBU: - printf("%s = MEM_U8(%s + %d);\n", r(insn.operands[0].reg), r(insn.operands[1].mem.base), (int)insn.operands[1].mem.disp); - break; - case MIPS_INS_LH: - printf("%s = MEM_S16(%s + %d);\n", r(insn.operands[0].reg), r(insn.operands[1].mem.base), (int)insn.operands[1].mem.disp); - break; - case MIPS_INS_LHU: - printf("%s = MEM_U16(%s + %d);\n", r(insn.operands[0].reg), r(insn.operands[1].mem.base), (int)insn.operands[1].mem.disp); - break; - case MIPS_INS_LUI: - printf("%s = 0x%x;\n", r(insn.operands[0].reg), ((uint32_t)insn.operands[1].imm) << 16); - break; - case MIPS_INS_LW: - printf("%s = MEM_U32(%s + %d);\n", r(insn.operands[0].reg), r(insn.operands[1].mem.base), (int)insn.operands[1].mem.disp); - break; - case MIPS_INS_LWC1: - printf("%s = MEM_U32(%s + %d);\n", wr(insn.operands[0].reg), r(insn.operands[1].mem.base), (int)insn.operands[1].mem.disp); - break; - case MIPS_INS_LDC1: - assert((insn.operands[0].reg - MIPS_REG_F0) % 2 == 0); - printf("%s = MEM_U32(%s + %d);\n", wr(insn.operands[0].reg + 1), r(insn.operands[1].mem.base), (int)insn.operands[1].mem.disp); - printf("%s = MEM_U32(%s + %d + 4);\n", wr(insn.operands[0].reg), r(insn.operands[1].mem.base), (int)insn.operands[1].mem.disp); - break; - case MIPS_INS_LWL: - { - const char *reg = r(insn.operands[0].reg); - printf("%s = %s + %d; ", reg, r(insn.operands[1].mem.base), (int)insn.operands[1].mem.disp); - printf("%s = (MEM_U8(%s) << 24) | (MEM_U8(%s + 1) << 16) | (MEM_U8(%s + 2) << 8) | MEM_U8(%s + 3);\n", reg, reg, reg, reg, reg); - break; - } - case MIPS_INS_LWR: - printf("//lwr %s\n", insn.op_str.c_str()); - break; - case MIPS_INS_LI: - if (insn.is_global_got_memop && text_vaddr <= insn.operands[1].imm && insn.operands[1].imm < text_vaddr + text_section_len) { - printf("%s = 0x%x; // function pointer\n", r(insn.operands[0].reg), (uint32_t)insn.operands[1].imm); - label_addresses.insert((uint32_t)insn.operands[1].imm); - } else { - printf("%s = 0x%x;\n", r(insn.operands[0].reg), (uint32_t)insn.operands[1].imm); - } - break; - case MIPS_INS_MFC1: - printf("%s = %s;\n", r(insn.operands[0].reg), wr(insn.operands[1].reg)); - break; - case MIPS_INS_MFHI: - printf("%s = hi;\n", r(insn.operands[0].reg)); - break; - case MIPS_INS_MFLO: - printf("%s = lo;\n", r(insn.operands[0].reg)); - break; - case MIPS_INS_MOVE: - printf("%s = %s;\n", r(insn.operands[0].reg), r(insn.operands[1].reg)); - break; - case MIPS_INS_MTC1: - printf("%s = %s;\n", wr(insn.operands[1].reg), r(insn.operands[0].reg)); - break; - case MIPS_INS_MULT: - printf("lo = %s * %s;\n", r(insn.operands[0].reg), r(insn.operands[1].reg)); - printf("hi = (uint32_t)((int64_t)(int)%s * (int64_t)(int)%s >> 32);\n", r(insn.operands[0].reg), r(insn.operands[1].reg)); - break; - case MIPS_INS_MULTU: - printf("lo = %s * %s;\n", r(insn.operands[0].reg), r(insn.operands[1].reg)); - printf("hi = (uint32_t)((uint64_t)%s * (uint64_t)%s >> 32);\n", r(insn.operands[0].reg), r(insn.operands[1].reg)); - break; - case MIPS_INS_NEGU: - printf("%s = -%s;\n", r(insn.operands[0].reg), r(insn.operands[1].reg)); - break; - case MIPS_INS_NOR: - printf("%s = ~(%s | %s);\n", r(insn.operands[0].reg), r(insn.operands[1].reg), r(insn.operands[2].reg)); - break; - case MIPS_INS_NOT: - printf("%s = ~%s;\n", r(insn.operands[0].reg), r(insn.operands[1].reg)); - break; - case MIPS_INS_OR: - printf("%s = %s | %s;\n", r(insn.operands[0].reg), r(insn.operands[1].reg), r(insn.operands[2].reg)); - break; - case MIPS_INS_ORI: - printf("%s = %s | 0x%x;\n", r(insn.operands[0].reg), r(insn.operands[1].reg), (uint32_t)insn.operands[2].imm); - break; - case MIPS_INS_SB: - printf("MEM_U8(%s + %d) = (uint8_t)%s;\n", r(insn.operands[1].mem.base), (int)insn.operands[1].mem.disp, r(insn.operands[0].reg)); - break; - case MIPS_INS_SH: - printf("MEM_U16(%s + %d) = (uint16_t)%s;\n", r(insn.operands[1].mem.base), (int)insn.operands[1].mem.disp, r(insn.operands[0].reg)); - break; - case MIPS_INS_SLL: - printf("%s = %s << %d;\n", r(insn.operands[0].reg), r(insn.operands[1].reg), (uint32_t)insn.operands[2].imm); - break; - case MIPS_INS_SLLV: - printf("%s = %s << (%s & 0x1f);\n", r(insn.operands[0].reg), r(insn.operands[1].reg), r(insn.operands[2].reg)); - break; - case MIPS_INS_SLT: - printf("%s = (int)%s < (int)%s;\n", r(insn.operands[0].reg), r(insn.operands[1].reg), r(insn.operands[2].reg)); - break; - case MIPS_INS_SLTI: - printf("%s = (int)%s < (int)0x%x;\n", r(insn.operands[0].reg), r(insn.operands[1].reg), (uint32_t)insn.operands[2].imm); - break; - case MIPS_INS_SLTIU: - printf("%s = %s < 0x%x;\n", r(insn.operands[0].reg), r(insn.operands[1].reg), (uint32_t)insn.operands[2].imm); - break; - case MIPS_INS_SLTU: - printf("%s = %s < %s;\n", r(insn.operands[0].reg), r(insn.operands[1].reg), r(insn.operands[2].reg)); - break; - case MIPS_INS_SRA: - printf("%s = (int)%s >> %d;\n", r(insn.operands[0].reg), r(insn.operands[1].reg), (uint32_t)insn.operands[2].imm); - break; - case MIPS_INS_SRAV: - printf("%s = (int)%s >> (%s & 0x1f);\n", r(insn.operands[0].reg), r(insn.operands[1].reg), r(insn.operands[2].reg)); - break; - case MIPS_INS_SRL: - printf("%s = %s >> %d;\n", r(insn.operands[0].reg), r(insn.operands[1].reg), (uint32_t)insn.operands[2].imm); - break; - case MIPS_INS_SRLV: - printf("%s = %s >> (%s & 0x1f);\n", r(insn.operands[0].reg), r(insn.operands[1].reg), r(insn.operands[2].reg)); - break; - case MIPS_INS_SUBU: - printf("%s = %s - %s;\n", r(insn.operands[0].reg), r(insn.operands[1].reg), r(insn.operands[2].reg)); - break; - case MIPS_INS_SW: - printf("MEM_U32(%s + %d) = %s;\n", r(insn.operands[1].mem.base), (int)insn.operands[1].mem.disp, r(insn.operands[0].reg)); - break; - case MIPS_INS_SWC1: - printf("MEM_U32(%s + %d) = %s;\n", r(insn.operands[1].mem.base), (int)insn.operands[1].mem.disp, wr(insn.operands[0].reg)); - break; - case MIPS_INS_SDC1: - assert((insn.operands[0].reg - MIPS_REG_F0) % 2 == 0); - printf("MEM_U32(%s + %d) = %s;\n", r(insn.operands[1].mem.base), (int)insn.operands[1].mem.disp, wr(insn.operands[0].reg + 1)); - printf("MEM_U32(%s + %d + 4) = %s;\n", r(insn.operands[1].mem.base), (int)insn.operands[1].mem.disp, wr(insn.operands[0].reg)); - break; - case MIPS_INS_SWL: - for (int i = 0; i < 4; i++) { - printf("MEM_U8(%s + %d + %d) = (uint8_t)(%s >> %d);\n", r(insn.operands[1].mem.base), (int)insn.operands[1].mem.disp, i, r(insn.operands[0].reg), (3 - i) * 8); - } - break; - case MIPS_INS_SWR: - printf("//swr %s\n", insn.op_str.c_str()); - break; - case MIPS_INS_TRUNC: - if (insn.mnemonic == "trunc.w.s") { - printf("%s = (int)%s;\n", wr(insn.operands[0].reg), fr(insn.operands[1].reg)); - } else if (insn.mnemonic == "trunc.w.d") { - printf("%s = (int)%s;\n", wr(insn.operands[0].reg), dr(insn.operands[1].reg)); - } else { - goto unimplemented; - } - break; - case MIPS_INS_XOR: - printf("%s = %s ^ %s;\n", r(insn.operands[0].reg), r(insn.operands[1].reg), r(insn.operands[2].reg)); - break; - case MIPS_INS_XORI: - printf("%s = %s ^ 0x%x;\n", r(insn.operands[0].reg), r(insn.operands[1].reg), (uint32_t)insn.operands[2].imm); - break; - case MIPS_INS_TNE: - printf("assert(%s == %s && \"tne %d\");\n", r(insn.operands[0].reg), r(insn.operands[1].reg), (int)insn.operands[2].imm); - break; - case MIPS_INS_TEQ: - printf("assert(%s != %s && \"teq %d\");\n", r(insn.operands[0].reg), r(insn.operands[1].reg), (int)insn.operands[2].imm); - break; - case MIPS_INS_TGE: - printf("assert((int)%s < (int)%s && \"tge %d\");\n", r(insn.operands[0].reg), r(insn.operands[1].reg), (int)insn.operands[2].imm); - break; - case MIPS_INS_TGEU: - printf("assert(%s < %s && \"tgeu %d\");\n", r(insn.operands[0].reg), r(insn.operands[1].reg), (int)insn.operands[2].imm); - break; - case MIPS_INS_TLT: - printf("assert((int)%s >= (int)%s && \"tlt %d\");\n", r(insn.operands[0].reg), r(insn.operands[1].reg), (int)insn.operands[2].imm); - break; - case MIPS_INS_NOP: - printf("//nop;\n"); - break; - default: - unimplemented: - printf("UNIMPLEMENTED %s %s\n", insn.mnemonic.c_str(), insn.op_str.c_str()); - break; - } -} - -static void inspect_data_function_pointers(vector>& ret, const uint8_t *section, uint32_t section_vaddr, uint32_t len) { - for (uint32_t i = 0; i < len; i += 4) { - uint32_t addr = read_u32_be(section + i); - if (addr == 0x430b00 || addr == 0x433b00) { - // in as1, not function pointers (normal integers) - continue; - } - if (addr == 0x4a0000) { - // in copt - continue; - } - if (section_vaddr + i >= procedure_table_start && section_vaddr + i < procedure_table_start + procedure_table_len) { - // some linking table with a "all" functions, in as1 5.3 - continue; - } - if (addr >= text_vaddr && addr < text_vaddr + text_section_len && addr % 4 == 0) { -#if INSPECT_FUNCTION_POINTERS - fprintf(stderr, "assuming function pointer 0x%x at 0x%x\n", addr, section_vaddr + i); -#endif - ret.push_back(make_pair(section_vaddr + i, addr)); - label_addresses.insert(addr); - functions[addr].referenced_by_function_pointer = true; - } - } -} - -static void dump_function_signature(Function& f, uint32_t vaddr) { - printf("static "); - switch (f.nret) { - case 0: - printf("void "); - break; - case 1: - printf("uint32_t "); - break; - case 2: - printf("uint64_t "); - break; - } - auto name_it = symbol_names.find(vaddr); - if (name_it != symbol_names.end()) { - printf("f_%s", name_it->second.c_str()); - } else { - printf("func_%x", vaddr); - } - printf("(uint8_t *mem, uint32_t sp"); - if (f.v0_in) { - printf(", uint32_t %s", r(MIPS_REG_V0)); - } - for (uint32_t i = 0; i < f.nargs; i++) { - printf(", uint32_t %s", r(MIPS_REG_A0 + i)); - } - printf(")"); -} - -static void dump_c(void) { - map symbol_names_inv; - for (auto& it : symbol_names) { - symbol_names_inv[it.second] = it.first; - } - - uint32_t min_addr = ~0; - uint32_t max_addr = 0; - - if (data_section_len > 0) { - min_addr = MIN(min_addr, data_vaddr); - max_addr = MAX(max_addr, data_vaddr + data_section_len); - } - if (rodata_section_len > 0) { - min_addr = MIN(min_addr, rodata_vaddr); - max_addr = MAX(max_addr, rodata_vaddr + rodata_section_len); - } - if (bss_section_len) { - min_addr = MIN(min_addr, bss_vaddr); - max_addr = MAX(max_addr, bss_vaddr + bss_section_len); - } - - min_addr = min_addr & ~0xfff; - max_addr = (max_addr + 0xfff) & ~0xfff; - - uint32_t stack_bottom = min_addr; - min_addr -= 1 * 1024 * 1024; // 1 MB stack - stack_bottom -= 16; // for main's stack frame - - printf("#include \"header.h\"\n"); - if (ugen53) { - printf("static uint32_t s0, s1, s2, s3, s4, s5, s6, s7, fp;\n"); - } - printf("static const uint32_t rodata[] = {\n"); - for (size_t i = 0; i < rodata_section_len; i += 4) { - printf("0x%x,%s", read_u32_be(rodata_section + i), i % 32 == 28 ? "\n" : ""); - } - printf("};\n"); - printf("static const uint32_t data[] = {\n"); - for (size_t i = 0; i < data_section_len; i += 4) { - printf("0x%x,%s", read_u32_be(data_section + i), i % 32 == 28 ? "\n" : ""); - } - printf("};\n"); - - /*if (!data_function_pointers.empty()) { - printf("static const struct { uint32_t orig_addr; void *recompiled_addr; } data_function_pointers[] = {\n"); - for (auto item : data_function_pointers) { - printf("{0x%x, &&L%x},\n", item.first, item.second); - } - printf("};\n"); - }*/ - - if (TRACE) { - printf("static unsigned long long int cnt = 0;\n"); - } - - for (auto& f_it : functions) { - if (insns[addr_to_i(f_it.first)].f_livein != 0) { - // Function is used - dump_function_signature(f_it.second, f_it.first); - printf(";\n"); - } - } - - if (!data_function_pointers.empty() || !li_function_pointers.empty()) { - printf("uint64_t trampoline(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3, uint32_t fp_dest) {\n"); - printf("switch (fp_dest) {\n"); - for (auto& it : functions) { - Function& f = it.second; - if (f.referenced_by_function_pointer) { - printf("case 0x%x: ", it.first); - if (f.nret == 1) { - printf("return (uint64_t)"); - } else if (f.nret == 2) { - printf("return "); - } - auto name_it = symbol_names.find(it.first); - if (name_it != symbol_names.end()) { - printf("f_%s", name_it->second.c_str()); - } else { - printf("func_%x", it.first); - } - printf("(mem, sp"); - for (int i = 0; i < f.nargs; i++) { - printf(", a%d", i); - } - printf(")"); - if (f.nret == 1) { - printf(" << 32"); - } - printf(";"); - if (f.nret == 0) { - printf(" return 0;"); - } - printf("\n"); - } - } - printf("default: abort();"); - printf("}\n"); - printf("}\n"); - } - - printf("int run(uint8_t *mem, int argc, char *argv[]) {\n"); - printf("mmap_initial_data_range(mem, 0x%x, 0x%x);\n", min_addr, max_addr); - - printf("memcpy(mem + 0x%x, rodata, 0x%x);\n", rodata_vaddr, rodata_section_len); - printf("memcpy(mem + 0x%x, data, 0x%x);\n", data_vaddr, data_section_len); - - /*if (!data_function_pointers.empty()) { - if (!LABELS_64_BIT) { - printf("for (int i = 0; i < %d; i++) MEM_U32(data_function_pointers[i].orig_addr) = (uint32_t)(uintptr_t)data_function_pointers[i].recompiled_addr;\n", (int)data_function_pointers.size()); - } else { - printf("for (int i = 0; i < %d; i++) MEM_U32(data_function_pointers[i].orig_addr) = (uint32_t)((uintptr_t)data_function_pointers[i].recompiled_addr - (uintptr_t)&&Loffset);\n", (int)data_function_pointers.size()); - } - }*/ - - printf("MEM_S32(0x%x) = argc;\n", symbol_names_inv.at("__Argc")); - printf("MEM_S32(0x%x) = argc;\n", stack_bottom); - printf("uint32_t al = argc * 4; for (int i = 0; i < argc; i++) al += strlen(argv[i]) + 1;\n"); - printf("uint32_t arg_addr = wrapper_malloc(mem, al);\n"); - printf("MEM_U32(0x%x) = arg_addr;\n", symbol_names_inv.at("__Argv")); - printf("MEM_U32(0x%x) = arg_addr;\n", stack_bottom + 4); - printf("uint32_t arg_strpos = arg_addr + argc * 4;\n"); - printf("for (int i = 0; i < argc; i++) {MEM_U32(arg_addr + i * 4) = arg_strpos; uint32_t p = 0; do { MEM_S8(arg_strpos) = argv[i][p]; ++arg_strpos; } while (argv[i][p++] != '\\0');}\n"); - - printf("setup_libc_data(mem);\n"); - - //printf("gp = 0x%x;\n", gp_value); // only to recreate the outcome when ugen reads uninitialized stack memory - - printf("int ret = f_main(mem, 0x%x", stack_bottom); - Function& main_func = functions[main_addr]; - if (main_func.nargs >= 1) { - printf(", argc"); - } - if (main_func.nargs >= 2) { - printf(", arg_addr"); - } - printf(");\n"); - if (TRACE) { - printf("end: fprintf(stderr, \"cnt: %%llu\\n\", cnt);\n"); - } - printf("return ret;\n"); - printf("}\n"); - - for (auto& f_it : functions) { - Function& f = f_it.second; - uint32_t start_addr = f_it.first; - uint32_t end_addr = f.end_addr; - - if (insns[addr_to_i(start_addr)].f_livein == 0) { - // Non-used function, skip - continue; - } - - printf("\n"); - dump_function_signature(f, start_addr); - printf(" {\n"); - printf("const uint32_t zero = 0;\n"); - if (!ugen53) { - printf("uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0,\n"); - printf("t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0,\n"); - printf("s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0;\n"); - } else { - printf("uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0,\n"); - printf("t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, gp = 0x10000, ra = 0x10000;\n"); - } - printf("uint32_t lo = 0, hi = 0;\n"); - printf("int cf = 0;\n"); - printf("uint64_t temp64;\n"); - printf("uint32_t fp_dest;\n"); - printf("void *dest;\n"); - if (!f.v0_in) { - printf("uint32_t v0 = 0;\n"); - } - for (uint32_t j = f.nargs; j < 4; j++) { - printf("uint32_t %s = 0;\n", r(MIPS_REG_A0 + j)); - } - - for (size_t i = addr_to_i(start_addr), end_i = addr_to_i(end_addr); i < end_i; i++) { - Insn& insn = insns[i]; - uint32_t vaddr = text_vaddr + i * 4; - if (label_addresses.count(vaddr)) { - printf("L%x:\n", vaddr); - } - dump_instr(i); - } - - printf("}\n"); - } - /*for (size_t i = 0; i < insns.size(); i++) { - Insn& insn = insns[i]; - uint32_t vaddr = text_vaddr + i * 4; - auto fn_it = functions.find(vaddr); - if (fn_it != functions.end()) { - Function& f = fn_it->second; - printf("}\n\n"); - switch (f.nret) { - case 0: - printf("void "); - break; - case 1: - printf("uint32_t "); - break; - case 2: - printf("uint64_t "); - break; - } - auto name_it = symbol_names.find(vaddr); - if (name_it != symbol_names.end()) { - printf("%s", name_it->second.c_str()); - } else { - printf("func_%x", vaddr); - } - printf("(uint8_t *mem, uint32_t sp"); - if (f.v0_in) { - printf(", uint32_t %s", r(MIPS_REG_V0)); - } - for (uint32_t i = 0; i < f.nargs; i++) { - printf(", uint32_t %s", r(MIPS_REG_A0 + i)); - } - printf(") {\n"); - printf("const uint32_t zero = 0;\n"); - printf("uint32_t at = 0, v1 = 0, t0 = 0, t1 = 0, t2 = 0,\n"); - printf("t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0,\n"); - printf("s6 = 0, s7 = 0, t8 = 0, t9 = 0, gp = 0, fp = 0, s8 = 0, ra = 0;\n"); - printf("uint32_t lo = 0, hi = 0;\n"); - printf("int cf = 0;\n"); - if (!f.v0_in) { - printf("uint32_t v0 = 0;\n"); - } - for (uint32_t j = f.nargs; j < 4; j++) { - printf("uint32_t %s = 0;\n", r(MIPS_REG_A0 + j)); - } - } - if (label_addresses.count(vaddr)) { - printf("L%x:\n", vaddr); - } - dump_instr(i); - }*/ -} - -static void parse_elf(const uint8_t *data, size_t file_len) { - Elf32_Ehdr *ehdr; - Elf32_Shdr *shdr, *str_shdr, *sym_shdr = NULL, *dynsym_shdr, *dynamic_shdr, *reginfo_shdr, *got_shdr, *sym_strtab, *sym_dynstr; - int text_section_index = -1; - int symtab_section_index = -1; - int dynsym_section_index = -1; - int reginfo_section_index = -1; - int dynamic_section_index = -1; - int got_section_index = -1; - int rodata_section_index = -1; - int data_section_index = -1; - int bss_section_index = -1; - uint32_t text_offset = 0; - uint32_t vaddr_adj = 0; - - if (file_len < 4 || data[0] != 0x7f || data[1] != 'E' || data[2] != 'L' || data[3] != 'F') { - fprintf(stderr, "Not an ELF file.\n"); - exit(EXIT_FAILURE); - } - - ehdr = (Elf32_Ehdr *) data; - if (ehdr->e_ident[EI_DATA] != 2 || u16be(ehdr->e_machine) != 8) { - fprintf(stderr, "Not big-endian MIPS.\n"); - exit(EXIT_FAILURE); - } - - if (u16be(ehdr->e_shstrndx) == 0) { - // (We could look at program headers instead in this case.) - fprintf(stderr, "Missing section headers; stripped binaries are not yet supported.\n"); - exit(EXIT_FAILURE); - } - -#define SECTION(index) (Elf32_Shdr *)(data + u32be(ehdr->e_shoff) + (index) * u16be(ehdr->e_shentsize)) -#define STR(strtab, offset) (const char *)(data + u32be(strtab->sh_offset) + offset) - - str_shdr = SECTION(u16be(ehdr->e_shstrndx)); - for (int i = 0; i < u16be(ehdr->e_shnum); i++) { - shdr = SECTION(i); - const char *name = STR(str_shdr, u32be(shdr->sh_name)); - if (strcmp(name, ".text") == 0) { - text_offset = u32be(shdr->sh_offset); - text_vaddr = u32be(shdr->sh_addr); - vaddr_adj = text_vaddr - u32be(shdr->sh_addr); - text_section_len = u32be(shdr->sh_size); - text_section = data + text_offset; - text_section_index = i; - } - if (u32be(shdr->sh_type) == SHT_SYMTAB) { - symtab_section_index = i; - } - if (u32be(shdr->sh_type) == SHT_DYNSYM) { - dynsym_section_index = i; - } - if (u32be(shdr->sh_type) == SHT_MIPS_REGINFO) { - reginfo_section_index = i; - } - if (u32be(shdr->sh_type) == SHT_DYNAMIC) { - dynamic_section_index = i; - } - if (strcmp(name, ".got") == 0) { - got_section_index = i; - } - if (strcmp(name, ".rodata") == 0) { - rodata_section_index = i; - } - if (strcmp(name, ".data") == 0) { - data_section_index = i; - } - if (strcmp(name, ".bss") == 0) { - bss_section_index = i; - } - } - - if (text_section_index == -1) { - fprintf(stderr, "Missing .text section.\n"); - exit(EXIT_FAILURE); - } - - if (symtab_section_index == -1 && dynsym_section_index == -1) { - fprintf(stderr, "Missing .symtab or .dynsym section.\n"); - exit(EXIT_FAILURE); - } - - if (dynsym_section_index != -1) { - if (reginfo_section_index == -1) { - fprintf(stderr, "Missing .reginfo section.\n"); - exit(EXIT_FAILURE); - } - if (dynamic_section_index == -1) { - fprintf(stderr, "Missing .dynamic section.\n"); - exit(EXIT_FAILURE); - } - if (got_section_index == -1) { - fprintf(stderr, "Missing .got section.\n"); - exit(EXIT_FAILURE); - } - } - - if (rodata_section_index != -1) { - shdr = SECTION(rodata_section_index); - uint32_t size = u32be(shdr->sh_size); - rodata_section = data + u32be(shdr->sh_offset); - rodata_section_len = size; - rodata_vaddr = u32be(shdr->sh_addr); - } - - if (data_section_index != -1) { - shdr = SECTION(data_section_index); - uint32_t size = u32be(shdr->sh_size); - data_section = data + u32be(shdr->sh_offset); - data_section_len = size; - data_vaddr = u32be(shdr->sh_addr); - } - - if (bss_section_index != -1) { - shdr = SECTION(bss_section_index); - uint32_t size = u32be(shdr->sh_size); - bss_section_len = size; - bss_vaddr = u32be(shdr->sh_addr); - } - - - // add symbols - if (symtab_section_index != -1) { - sym_shdr = SECTION(symtab_section_index); - sym_strtab = SECTION(u32be(sym_shdr->sh_link)); - assert(0 && ".symtab not supported - use a program with .dynsym instead"); - - assert(u32be(sym_shdr->sh_entsize) == sizeof(Elf32_Sym)); - for (uint32_t i = 0; i < u32be(sym_shdr->sh_size); i += sizeof(Elf32_Sym)) { - Elf32_Sym *sym = (Elf32_Sym *)(data + u32be(sym_shdr->sh_offset) + i); - const char *name = STR(sym_strtab, u32be(sym->st_name)); - uint32_t addr = u32be(sym->st_value); - if (u16be(sym->st_shndx) != text_section_index || name[0] == '.') { - continue; - } - addr += vaddr_adj; - //disasm_label_add(state, name, addr, u32be(sym->st_size), true); - } - } - - if (dynsym_section_index != -1) { - dynsym_shdr = SECTION(dynsym_section_index); - sym_dynstr = SECTION(u32be(dynsym_shdr->sh_link)); - reginfo_shdr = SECTION(reginfo_section_index); - dynamic_shdr = SECTION(dynamic_section_index); - got_shdr = SECTION(got_section_index); - - Elf32_RegInfo *reg_info = (Elf32_RegInfo *)(data + u32be(reginfo_shdr->sh_offset)); - uint32_t gp_base = u32be(reg_info->ri_gp_value); // gp should have this value through the program run - uint32_t got_start = 0; - uint32_t local_got_no = 0; - uint32_t first_got_sym = 0; - uint32_t dynsym_no = 0; // section size can't be used due to alignment 16 padding - - assert(u32be(dynamic_shdr->sh_entsize) == sizeof(Elf32_Dyn)); - for (uint32_t i = 0; i < u32be(dynamic_shdr->sh_size); i += sizeof(Elf32_Dyn)) { - Elf32_Dyn *dyn = (Elf32_Dyn *)(data + u32be(dynamic_shdr->sh_offset) + i); - if (u32be(dyn->d_tag) == DT_PLTGOT) { - got_start = u32be(dyn->d_un.d_ptr); - } - if (u32be(dyn->d_tag) == DT_MIPS_LOCAL_GOTNO) { - local_got_no = u32be(dyn->d_un.d_val); - } - if (u32be(dyn->d_tag) == DT_MIPS_GOTSYM) { - first_got_sym = u32be(dyn->d_un.d_val); - } - if (u32be(dyn->d_tag) == DT_MIPS_SYMTABNO) { - dynsym_no = u32be(dyn->d_un.d_val); - } - } - - assert(got_start != 0); - - // value to add to asm gp offset, for example 32752, if -32752(gp) refers to the first entry in got. - uint32_t gp_adj = gp_base - got_start; - assert(gp_adj < 0x10000); - - assert(u32be(dynsym_shdr->sh_entsize) == sizeof(Elf32_Sym)); - uint32_t global_got_no = dynsym_no - first_got_sym; - //global_got_entry *global_entries = (global_got_entry *)calloc(global_got_no, sizeof(global_got_entry)); - got_globals.resize(global_got_no); - - uint32_t common_start = ~0U; - vector common_order; - - for (uint32_t i = 0; i < dynsym_no; i++) { - Elf32_Sym *sym = (Elf32_Sym *)(data + u32be(dynsym_shdr->sh_offset) + i * sizeof(Elf32_Sym)); - const char *name = STR(sym_dynstr, u32be(sym->st_name)); - uint32_t addr = u32be(sym->st_value); - addr += vaddr_adj; - uint8_t type = ELF32_ST_TYPE(sym->st_info); - if (!strcmp(name, "_procedure_table")) { - procedure_table_start = addr; - } else if (!strcmp(name, "_procedure_table_size")) { - procedure_table_len = 40 * u32be(sym->st_value); - } - if ((u16be(sym->st_shndx) == SHN_MIPS_TEXT && type == STT_FUNC) || - (type == STT_OBJECT && (u16be(sym->st_shndx) == SHN_MIPS_ACOMMON || u16be(sym->st_shndx) == SHN_MIPS_DATA))) - { - //disasm_label_add(state, name, addr, u32be(sym->st_size), true); - if (type == STT_OBJECT) { - } - if (u16be(sym->st_shndx) == SHN_MIPS_ACOMMON) { - if (addr < common_start) { - common_start = addr; - } - common_order.push_back(name); - } - if (type == STT_FUNC) { - add_function(addr); - if (strcmp(name, "main") == 0) { - main_addr = addr; - } - if (strcmp(name, "_mcount") == 0) { - mcount_addr = addr; - } - symbol_names[addr] = name; - } - } - if (i >= first_got_sym) { - uint32_t got_value = u32be(*(uint32_t *)(data + u32be(got_shdr->sh_offset) + (local_got_no + (i - first_got_sym)) * sizeof(uint32_t))); - if (u16be(sym->st_shndx) == SHN_MIPS_TEXT && type == STT_FUNC) { - //got_globals[i - first_got_sym] = got_value; - //label_addresses.insert(got_value); - got_globals[i - first_got_sym] = addr; // to include the 3 instr gp header thing - label_addresses.insert(addr); - } else if (type == STT_OBJECT && (u16be(sym->st_shndx) == SHN_UNDEF || u16be(sym->st_shndx) == SHN_COMMON)) { - // symbol defined externally (for example in libc) - got_globals[i - first_got_sym] = got_value; - } else { - got_globals[i - first_got_sym] = addr; - } - symbol_names[got_globals[i - first_got_sym]] = name; - } - } - - uint32_t *local_entries = (uint32_t *)calloc(local_got_no, sizeof(uint32_t)); - got_locals.resize(local_got_no); - for (uint32_t i = 0; i < local_got_no; i++) { - uint32_t *entry = (uint32_t *)(data + u32be(got_shdr->sh_offset) + i * sizeof(uint32_t)); - got_locals[i] = u32be(*entry); - } - - gp_value = gp_base; - gp_value_adj = gp_adj; - //disasm_got_entries_set(state, gp_base, gp_adj, local_entries, local_got_no, global_entries, global_got_no); - - //out_range.common_start = common_start; - //out_range.common_order.swap(common_order); - } - - // add relocations - for (int i = 0; i < u16be(ehdr->e_shnum); i++) { - Elf32_Rel *prevHi = NULL; - shdr = SECTION(i); - if (u32be(shdr->sh_type) != SHT_REL || u32be(shdr->sh_info) != (uint32_t) text_section_index) - continue; - - if (sym_shdr == NULL) { - fprintf(stderr, "Relocations without .symtab section\n"); - exit(EXIT_FAILURE); - } - - assert(u32be(shdr->sh_link) == (uint32_t) symtab_section_index); - assert(u32be(shdr->sh_entsize) == sizeof(Elf32_Rel)); - for (uint32_t i = 0; i < u32be(shdr->sh_size); i += sizeof(Elf32_Rel)) { - Elf32_Rel *rel = (Elf32_Rel *)(data + u32be(shdr->sh_offset) + i); - uint32_t offset = text_offset + u32be(rel->r_offset); - uint32_t symIndex = ELF32_R_SYM(u32be(rel->r_info)); - uint32_t rtype = ELF32_R_TYPE(u32be(rel->r_info)); - const char *symName = "0"; - if (symIndex != STN_UNDEF) { - Elf32_Sym *sym = (Elf32_Sym *)(data + u32be(sym_shdr->sh_offset) + symIndex * sizeof(Elf32_Sym)); - symName = STR(sym_strtab, u32be(sym->st_name)); - } - - if (rtype == R_MIPS_HI16) { - if (prevHi != NULL) { - fprintf(stderr, "Consecutive R_MIPS_HI16.\n"); - exit(EXIT_FAILURE); - } - prevHi = rel; - continue; - } - if (rtype == R_MIPS_LO16) { - int32_t addend = (int16_t)((data[offset + 2] << 8) + data[offset + 3]); - if (prevHi != NULL) { - uint32_t offset2 = text_offset + u32be(prevHi->r_offset); - addend += (uint32_t)((data[offset2 + 2] << 8) + data[offset2 + 3]) << 16; - //add_reloc(state, offset2, symName, addend, out_range.vaddr); - } - prevHi = NULL; - //add_reloc(state, offset, symName, addend, out_range.vaddr); - } - else if (rtype == R_MIPS_26) { - int32_t addend = (u32be(*(uint32_t*)(data + offset)) & ((1 << 26) - 1)) << 2; - if (addend >= (1 << 27)) { - addend -= 1 << 28; - } - //add_reloc(state, offset, symName, addend, out_range.vaddr); - } - else { - fprintf(stderr, "Bad relocation type %d.\n", rtype); - exit(EXIT_FAILURE); - } - } - if (prevHi != NULL) { - fprintf(stderr, "R_MIPS_HI16 without matching R_MIPS_LO16.\n"); - exit(EXIT_FAILURE); - } - } -} -#undef SECTION -#undef STR - -size_t read_file(const char *file_name, uint8_t **data) { - FILE *in; - uint8_t *in_buf = NULL; - long file_size; - long bytes_read; - in = fopen(file_name, "rb"); - assert(in != nullptr); - - // allocate buffer to read from offset to end of file - fseek(in, 0, SEEK_END); - file_size = ftell(in); - assert(file_size != -1L); - - in_buf = (uint8_t *)malloc(file_size); - fseek(in, 0, SEEK_SET); - - // read bytes - bytes_read = fread(in_buf, 1, file_size, in); - assert(bytes_read == file_size); - - fclose(in); - *data = in_buf; - return bytes_read; -} - -int main(int argc, char *argv[]) { - uint8_t *data; - size_t len = read_file(argv[1], &data); - parse_elf(data, len); - assert(cs_open(CS_ARCH_MIPS, (cs_mode)(CS_MODE_MIPS64 | CS_MODE_BIG_ENDIAN), &handle) == CS_ERR_OK); - cs_option(handle, CS_OPT_DETAIL, CS_OPT_ON); - disassemble(); - inspect_data_function_pointers(data_function_pointers, rodata_section, rodata_vaddr, rodata_section_len); - inspect_data_function_pointers(data_function_pointers, data_section, data_vaddr, data_section_len); - pass1(); - pass2(); - pass3(); - pass4(); - pass5(); - pass6(); - //dump(); - dump_c(); - free(data); - cs_close(&handle); -} - diff --git a/tools/ido-static-recomp/skeleton.c b/tools/ido-static-recomp/skeleton.c deleted file mode 100755 index d2b07dbc..00000000 --- a/tools/ido-static-recomp/skeleton.c +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#include "../libc_impl.h" -#include "../helpers.h" - -#define RM_RN 0 -#define RM_RZ 1 -#define RM_RP 2 -#define RM_RM 3 - -union FloatReg { - float f[2]; - uint32_t w[2]; - double d; -}; - -#define cvt_w_d(f) \ - ((fcsr & RM_RZ) ? ((isnan(f) || f <= -2147483649.0 || f >= 2147483648.0) ? (fcsr |= 0x40, 2147483647) : (int)f) : (assert(0), 0)) - -#define cvt_w_s(f) cvt_w_d((double)f) - -int func(uint8_t *mem, int argc, char *argv[]) { - const uint32_t zero = 0; - uint32_t at = 0, v0 = 0, v1 = 0, a0 = 0, a1 = 0, a2 = 0, a3 = 0, t0 = 0, t1 = 0, t2 = 0, - t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, - s6 = 0, s7 = 0, t8 = 0, t9 = 0, k0 = 0, k1 = 0, gp = 0, sp = 0, fp = 0, s8 = 0, ra = 0; - uint32_t lo = 0, hi = 0; - union FloatReg f0 = {{0, 0}}, f2 = {{0, 0}}, f4 = {{0, 0}}, f6 = {{0, 0}}, f8 = {{0, 0}}, - f10 = {{0, 0}}, f12 = {{0, 0}}, f14 = {{0, 0}}, f16 = {{0, 0}}, f18 = {{0, 0}}, f20 = {{0, 0}}, - f22 = {{0, 0}}, f24 = {{0, 0}}, f26 = {{0, 0}}, f28 = {{0, 0}}, f30 = {{0, 0}}; - int cf = 0; - uint32_t fcsr = 1; - void *dest = NULL; - uint64_t temp64; -#include "dummy.c" -} diff --git a/tools/ido5.3_compiler/LICENSE.md b/tools/ido5.3_compiler/LICENSE.md deleted file mode 100755 index 015107d4..00000000 --- a/tools/ido5.3_compiler/LICENSE.md +++ /dev/null @@ -1,18 +0,0 @@ -# Silicon Graphics Freeware Legal Notice -## Copyright 1995, Silicon Graphics, Inc. -- ALL RIGHTS RESERVED - -You may copy, modify, use and distribute this software, (i) provided that you include the entirety of this reservation of rights notice in all such copies, and (ii) you comply with any additional or different obligations and/or use restrictions specified by any third party owner or supplier of the software in other notices that may be included with the software. - -**SGI DISCLAIMS ALL WARRANTIES WITH RESPECT TO THIS SOFTWARE, EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ALL WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. SGI SHALL NOT BE LIABLE FOR ANY SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING, WITHOUT LIMITATION, LOST REVENUES, LOST PROFITS, OR LOSS OF PROSPECTIVE ECONOMIC ADVANTAGE, RESULTING FROM THE USE OR MISUSE OF THIS SOFTWARE.** - -**U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND:** - -Use, duplication or disclosure by the Government is subject to restrictions as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or in similar or successor clauses in the FAR, or the DOD or NASA FAR Supplement. Unpublished - rights reserved under the Copyright Laws of United States. Contractor/manufacturer is Silicon Graphics, Inc., 2011 N. Shoreline Blvd. Mountain View, CA 94039-7311. - -## Product Support - -Freeware products are not supported by Silicon Graphics or any of its support providers. The software contained in this package is made available through the generous efforts of their authors. Although they are interested in your feedback, they are under no obligation to address bugs, enhancements, or answer questions. - ----- - -**NOTE:** This license was copied verbatim from https://web.archive.org/web/19991008090202/http://toolbox.sgi.com/TasteOfDT/public/freeware1.0/legal_notice.html . diff --git a/tools/ido5.3_compiler/lib/libmalloc.so b/tools/ido5.3_compiler/lib/libmalloc.so deleted file mode 100755 index 2a59e0a4..00000000 Binary files a/tools/ido5.3_compiler/lib/libmalloc.so and /dev/null differ diff --git a/tools/ido5.3_compiler/lib/libmalloc_old.so b/tools/ido5.3_compiler/lib/libmalloc_old.so deleted file mode 100755 index 2a14987d..00000000 Binary files a/tools/ido5.3_compiler/lib/libmalloc_old.so and /dev/null differ diff --git a/tools/ido5.3_compiler/lib/rld b/tools/ido5.3_compiler/lib/rld deleted file mode 100755 index 727b4269..00000000 Binary files a/tools/ido5.3_compiler/lib/rld and /dev/null differ diff --git a/tools/ido5.3_compiler/usr/bin/cc b/tools/ido5.3_compiler/usr/bin/cc deleted file mode 100755 index 2936fc3f..00000000 Binary files a/tools/ido5.3_compiler/usr/bin/cc and /dev/null differ diff --git a/tools/ido5.3_compiler/usr/lib/acpp b/tools/ido5.3_compiler/usr/lib/acpp deleted file mode 100755 index d5392cf6..00000000 Binary files a/tools/ido5.3_compiler/usr/lib/acpp and /dev/null differ diff --git a/tools/ido5.3_compiler/usr/lib/as0 b/tools/ido5.3_compiler/usr/lib/as0 deleted file mode 100755 index badf8c83..00000000 Binary files a/tools/ido5.3_compiler/usr/lib/as0 and /dev/null differ diff --git a/tools/ido5.3_compiler/usr/lib/as1 b/tools/ido5.3_compiler/usr/lib/as1 deleted file mode 100755 index c246db53..00000000 Binary files a/tools/ido5.3_compiler/usr/lib/as1 and /dev/null differ diff --git a/tools/ido5.3_compiler/usr/lib/cfe b/tools/ido5.3_compiler/usr/lib/cfe deleted file mode 100755 index 305a50be..00000000 Binary files a/tools/ido5.3_compiler/usr/lib/cfe and /dev/null differ diff --git a/tools/ido5.3_compiler/usr/lib/copt b/tools/ido5.3_compiler/usr/lib/copt deleted file mode 100755 index 2e689fdc..00000000 Binary files a/tools/ido5.3_compiler/usr/lib/copt and /dev/null differ diff --git a/tools/ido5.3_compiler/usr/lib/crt1.o b/tools/ido5.3_compiler/usr/lib/crt1.o deleted file mode 100755 index 3052ae27..00000000 Binary files a/tools/ido5.3_compiler/usr/lib/crt1.o and /dev/null differ diff --git a/tools/ido5.3_compiler/usr/lib/err.english.cc b/tools/ido5.3_compiler/usr/lib/err.english.cc deleted file mode 100755 index 6976e38a..00000000 --- a/tools/ido5.3_compiler/usr/lib/err.english.cc +++ /dev/null @@ -1,1260 +0,0 @@ -@ - 358 358 358 - 6464 6482 6553 - 6553 6593 6728 - 6728 6746 6803 - 6803 6808 6808 - 6808 6818 6818 - 6818 6826 6826 - 6826 6847 6847 - 6847 6875 6922 - 6922 6930 6930 - 6930 6939 6939 - 6939 6948 6948 - 6948 6974 7120 - 7120 7149 7204 - 7210 7248 7311 - 7317 7350 7442 - 7450 7497 7627 - 7635 7709 7930 - 7938 7975 8063 - 8071 8113 8253 - 8261 8289 8289 - 8298 8338 8445 - 8460 8502 8635 - 8650 8690 8819 - 8834 8857 8965 - 8965 9008 9113 - 9119 9142 9227 - 9235 9282 9451 - 9451 9462 9462 - 9462 9477 9477 - 9477 9497 9497 - 9497 9545 9545 - 9545 9584 9584 - 9584 9604 9662 - 9662 9682 9720 - 9720 9749 9749 - 9749 9788 9788 - 9788 9802 9802 - 9802 9829 9829 - 9829 9861 9861 - 9861 9904 9904 - 9904 9920 9920 - 9920 9962 9962 - 9962 9988 9988 - 9988 10014 10014 -10014 10035 10035 -10035 10054 10097 -10097 10115 10115 -10115 10147 10147 -10147 10183 10183 -10183 10208 10208 -10208 10236 10236 -10236 10269 10269 -10269 10304 10304 -10304 10328 10328 -10328 10351 10351 -10351 10371 10371 -10371 10402 10402 -10402 10447 10447 -10447 10497 10497 -10497 10533 10533 -10533 10598 10598 -10606 10630 10630 -10640 10671 10671 -10690 10719 10719 -10728 10752 10795 -10795 10837 10837 -10837 10876 10876 -10876 10900 10900 -10900 10948 10948 -10960 11021 11103 -11103 11128 11128 -11128 11153 11153 -11153 11216 11216 -11216 11239 11239 -11239 11303 11303 -11303 11347 11347 -11357 11393 11393 -11393 11432 11432 -11442 11494 11494 -11494 11536 11536 -11536 11595 11595 -11595 11622 11622 -11622 11684 11684 -11684 11726 11726 -11738 11778 11778 -11782 11813 11813 -11813 11850 11850 -11850 11900 12087 -12111 12120 12120 -12120 12129 12129 -12129 12158 12158 -12158 12192 12192 -12192 12237 12237 -12237 12273 12273 -12273 12326 12326 -12330 12366 12366 -12366 12423 12423 -12427 12482 12482 -12486 12560 12560 -12568 12631 12631 -12637 12691 12691 -12691 12743 12743 -12743 12785 12785 -12785 12826 12826 -12826 12865 12865 -12865 12883 12883 -12883 12946 12946 -12956 12995 12995 -13005 13066 13066 -13077 13163 13163 -13163 13211 13211 -13211 13270 13270 -13270 13318 13318 -13318 13350 13350 -13350 13387 13387 -13387 13428 13428 -13428 13464 13533 -13533 13580 13737 -13737 13776 13854 -13854 13913 13913 -13913 13950 13950 -13950 14118 14118 -14118 14150 14150 -14150 14163 14194 -14194 14224 14255 -14255 14275 14319 -14319 14353 14458 -14466 14484 14530 -14534 14567 14567 -14567 14635 14682 -14690 14742 14742 -14742 14789 14789 -14801 14875 14875 -14886 14947 14947 -14947 14992 14992 -14992 15035 15085 -15085 15134 15205 -15214 15267 15448 -15454 15496 16810 -16822 16875 16960 -16972 17053 17179 -17191 17236 17332 -17344 17491 17841 -17853 17939 18304 -18316 18471 18774 -18786 18952 19323 -19335 19364 19496 -19500 19527 19598 -19598 19613 19776 -19797 19808 19837 -19837 19862 19862 -19868 19927 20026 -20034 20075 20179 -20187 20223 20223 -20223 20290 20382 -20392 20441 20589 -20601 20656 20656 -20656 20699 20818 -20826 20860 21038 -21046 21094 21191 -21203 21236 21314 -21326 21395 21457 -21469 21502 21502 -21502 21587 21731 -21756 21789 21864 -21875 21901 21976 -22013 22059 22220 -22257 22397 22561 -22561 22595 22595 -22603 22623 22623 -22631 22667 22828 -22865 22919 22994 -23031 23059 23120 -23132 23201 23201 -23212 23274 23274 -23285 23345 23345 -23356 23393 23393 -23399 23431 23532 -23542 23587 23646 -23656 23697 23745 -23755 23796 23844 -23854 23876 23928 -23942 23971 24153 -24160 24243 24243 -24247 24273 24743 -24755 24784 24984 -24996 25034 25034 -25034 25075 25273 -25281 25332 25410 -25420 25467 25544 -25554 25583 25744 -25754 25783 26061 -26071 26111 26185 -26194 26239 26525 -26535 26568 26914 -26924 26951 26998 -27008 27035 27082 -27093 27120 27167 -27178 27206 27251 -27261 27289 27334 -27345 27391 27931 -27938 27959 28007 -28019 28037 28037 -28043 28069 28069 -28077 28147 28199 -28207 28266 28266 -28274 28306 28306 -28314 28339 28339 -28347 28404 28510 -28518 28567 28682 -28690 28728 28728 -28736 28782 29023 -29033 29085 29234 -29246 29303 29383 -29395 29432 29570 -29592 29631 29644 -29644 29693 29758 -29767 29810 29875 -29875 29911 29976 -29984 30014 30014 -30027 30086 30151 -30157 30223 30293 -30301 30369 30445 -30457 30511 30568 -30580 30630 30743 -30755 30812 30874 -30886 30959 31035 -31043 31076 31175 -31183 31243 31243 -31251 31323 31323 -31331 31433 31433 -31445 31544 31686 -31698 31740 31740 -31740 31783 31783 -31783 31824 31824 -31824 31873 31996 -32008 32056 32164 -32176 32210 32210 -32229 32271 32271 -32279 32323 32569 -32581 32642 32718 -32739 32779 32916 -32926 32953 33047 -33057 33116 33315 -33325 33373 33373 -33373 33407 33469 -33494 33527 33527 -33536 33573 33573 -33584 33650 33697 -33705 33763 33763 -33763 33797 33797 -33797 33829 33906 -33915 33976 33976 -33985 34016 34098 -34098 34133 34198 -34198 34261 34261 -34269 34312 34312 -34324 34363 34438 -34444 34530 34530 -34538 34596 34626 -34636 34675 34754 -34764 34821 34821 -34821 34867 34950 -34959 35016 35135 -35145 35198 35198 -35208 35266 35344 -35355 35382 35537 -35547 35576 35629 -35637 35705 35705 -35713 35764 35764 -35764 35784 35876 -35888 35932 35950 -35950 36013 36138 -36150 36191 36280 -36286 36314 36419 -36431 36516 36516 -36516 36554 36642 -36642 36689 36808 -36818 36881 37105 -37113 37183 37204 -37204 37225 37225 -37225 37255 37348 -37348 37388 37388 -37388 37454 37454 -37454 37518 37518 -37518 37584 37584 -37584 37717 37717 -37717 37752 37752 -37752 37783 37889 -37901 37928 38034 -38046 38115 38115 -38115 38140 38187 -38195 38219 38339 -38351 38422 38422 -38422 38486 38486 -38486 38555 38555 -38555 38619 38619 -38619 38641 38641 -38641 38758 38758 -38758 38929 38929 -38929 38975 39043 -39055 39084 39133 -39133 39175 39265 -39275 39310 39494 -39504 39547 39576 -39587 39614 39668 -39674 39697 39797 -39797 39845 40094 -40094 40158 40264 -40264 40369 40523 -40523 40593 40593 -40593 40629 40876 -40876 40911 40971 -40977 41026 41026 -41038 41077 41077 -41077 41116 41116 -41116 41156 41156 -41156 41195 41195 -41195 41237 41237 -41237 41285 41285 -41285 41304 41304 -41304 41371 41371 -41371 41429 41429 -41429 41491 41491 -41491 41519 41519 -41519 41572 41572 -41572 41642 41642 -41642 41676 41676 -41676 41713 41713 -41713 41751 41751 -41751 41792 41792 -41792 41856 41856 -41856 41881 41881 -41881 41936 41936 -41936 41977 41977 -41977 42018 42018 -42018 42090 42090 -42090 42162 42162 -42162 42205 42205 -42205 42267 42267 -42267 42294 42294 -42294 42309 42309 -42309 42338 42386 -42393 42425 42522 -42530 42577 42577 -42577 42623 42623 -42623 42643 42725 -42725 42748 42748 -42748 42829 42897 -42901 42952 42952 -42952 42978 43025 -43025 43116 43116 -43116 43171 43171 -43171 43204 43376 -43386 43453 43471 -43471 43547 43780 -43798 43921 44116 -44120 44120 44120 -Out of memory: %s -There is no more memory left in the system for compiling this program. -Internal Error Unknown Error Message %s -1) An internal error, while attempting to print an unavailable message -2) The error message file is inaccessible or has other problems -Unknown Signal %s -1) An unknown signal has been caught -2) 2 Nested signals -line -Warning: -Fatal: -Source not available -Too many errors... goodbye. -There is a limit of 30 errors before aborting. -Error: -reserved -reserved -Unknown Control Statement -1) The line begins with a '#' and is not of the form: - # "" -2) Please compile this program with the preprocessor enabled. -Unknown character %s ignored -The character is not part of the source character set. -2.2.1 -Unknown control character \%s ignored -The control character is not part of the source character set. -2.2.1 -Illegal character %s in exponent -1) Digits or sign expected after 'e' or 'E'. -2) Digits are expected after sign in exponent. -3.1.3.1 -Constant is out of range and may be truncated. -The constant is too large to be accurately represented and may be -truncated. The limits are in the system include file limits.h. -2.2.4.2 -Constant is out of range for a 32-bit data type, but accepted as written. -The constant is too large to fit in a 32-bit data type, but will be -accurately represented in a wider data type. The value may be truncated, -depending on its context. The limits are in the system include file -limits.h. -2.2.4.2 -Character constant size out of range -1) No characters in a character constant. -2) More than 4 bytes in a character constant. -3.1.3.4 -Wide character constant size out of range -1) No characters in the multibyte sequence (0 assumed). -2) More than 1 byte in the multi-byte sequence (only the first byte was converted). -3.1.3.4 -Invalid multibyte character -4.10.7.2 -Newline in string or character constant -1) Terminate your string or character constant with closing quotes. -2) Put a backslash before the newline. -3.1.3.4, 3.1.4 -Octal character escape too large: %s > %s -1) Terminate end of octal sequence with a non-octal character. -2) Select a character value within the limits. -Value may be truncated -3.1.3.4, 3.1.4 -Hex character escape too large: %s > %s -1) Terminate end of hex sequence with a non-hex character. -2) Select a character value within the limits. -Value may be truncated -3.1.3.4, 3.1.4 -Unexpected End-of-file -1) Unterminated string or character constant -2) Missing closing comment marker (*/) -3) File system problems -Unrecognized escape sequence in string \%s -Recognized escape sequences are \a, \b, \f, \n, \r, \t, and \v. -Character will be treated as un-escaped. -3.9.2 -Illegal octal digit %s -Octal constants, beginning with 0, must only have digits between 0 and 7, -inclusive. -3.1.3.2 -Unable to open temporary file for compiling %s -1) TMPDIR environment variable is set to a directory that you have no - permissions for. -2) The file system is full. -3) System errors beyond the scope of the compiler. -%s: Hangup -%s: Interrupt -%s: Quit (ASCII FS) -%s: Illegal instruction (not reset when caught) -%s: Trace trap (not reset when caught) -%s: IOT instruction -Also SIGABRT, used by abort, replace SIGIOT in the future -%s: EMT instruction -Also SIGXCPU, Exceeded CPU time limit -%s: Floating point exception -%s: Kill (cannot be caught or ignored) -%s: Bus error -%s: Segmentation violation -%s: Bad argument to system call -%s: Write on a pipe with no one to read it -%s: Alarm clock -%s: Software termination signal from kill -%s: User defined signal 1 -%s: User defined signal 2 -%s: Death of a child -Power-fail restart -%s: Also SIGXFSZ, exceeded file size limit -%s: Window change -%s: Handset, line status change -%s: Sendablestop signalnot from tty -%s: Stop signal from tty -%s: Pollable event occurred -%s: Input/Output possible signal -%s: Urgent condition on IO channel -%s: Window size changes -%s: Virtual time alarm -%s: Profiling alarm -%s: Continue a stopped process -%s: To readers pgrp upon background tty read -%s: Like TTIN for output if (tp->t_local<OSTOP) -%s: Resource lost (eg, record-lock) -'auto' and 'register' are not allowed in an external declaration -3.7(10) -must have function type -3.7.1(30) -Functions cannot return arrays -3.7.1(33), 3.3.2.2 -Declaration list not allowed -3.7.1(5) -Too many input files %s -The command line may contain only one file -cpp internal error: input stack underflow -cpp internal error: if stack underflow -Cannot open the file %s -No new-line character at the end of the file %s -2.1.1.2(30) -Fatal: Exceeded the limit of nesting level for #include file -Fatal: Exceeded the limit of nesting level for #include file. This limit -is 200. -Fail to read the file %s -Cannot write the file %s -%s: %s: An if directive is not terminated properly in the file -%s: %s: nested comment -%s:%s: Illegal macro name %s; macro name shall be an identifier -%s:%s: Illegal preprocessing token sequence -3.8.3(35) -%s:%s: Illegal macro parameter name -%s:%s: Non-unique macro parameter name -3.8.3(18) -%s:%s: Missing ')' in parameter list for #define %s -%s:%s: Missing ')' in macro instantiation -%s:%s: Bad punctuator in the parameter list for #define %s -%s:%s: Macro %s redefined. -%s:%s: # operator should be followed by a macro argument name -%s:%s: Badly formed constant expression%s -3.4(9), 3.8 -%s:%s: Division by zero in #if or #elif -3.8 -unknown command line option %s -extraneous input/output file name %s -%s: %s: Unterminated string or character constant -A preprocessing string or character constant token was not -terminated. Note that preprocessing directives are processed -after the source file has been divided into preprocessing tokens. -2.1.1.2(30) 3.1(18) 3.8 -%s: %s: -%s: %s: -%s: %s: Unterminated comment -%s: %s: Unknown directive type %s -%s: %s: #elif or #else after #else directive -%s: %s: Bad identifier after the %s -%s: %s: #%s accepts only one identifier as parameter -3.8 -%s: %s: Bad identifier after the %s -%s: %s: text following #%s violates the ANSI C standard. -3.8 -%s: %s: Bad character %s occurs after the # directive. -3.8 -%s: %s: the ## operator shall not be the %s token in the replacement list -3.8.3.3 -%s: %s: the defined operator takes identifier as operand only. -3.8.1 -%s: %s: Not in a conditional directive while using %s -%s: %s: Illegal filename specification for #include -%s: %s: Invalid file name %s for #include -%s: %s: Cannot open file %s for #include -%s: %s: Bad argument for #line command -%s: %s: #error %s -%s: %s: Tried to redefine predefined macro %s, attempt ignored -3.8.7(22) -%s: %s: Undefining predefined macro %s -3.8.7(22) -%s: %s: Undefined the ANSI standard library defined macro %s -4.1.2.1(9) -%s: %s: The number of arguments in the macro invocation does not match the definition -%s: %s: Illegal character %s in preprocessor if -%s: %s: Illegal character %s for number in preprocessor if -%s: %s: No string is allowed in preprocessor if -%s: %s: Not supported pragma %s -%s: %s: Not supported #pragma format -%s: %s: ANSI C does not allow #ident; %s -%s: %s: Not supported #ident format -This cpp extension accepts the following format: -#ident "any string" -%s: %s: Not supported #assert/#unassert format -This cpp extension accepts the following format: -#assert identifier -#assert identifier ( pp-tokens ) -#unassert identifier -#unassert identifier ( pp-tokens ) -%s: %s: Bad assertion predicate format -The correct syntax for this cpp extension is: -#assert identifier ( pp-token ) -%s: %s: directive is an upward-compatible ANSI C extension -%s: This option requires an argument -%s: %s: A macro has expanded recursively more than %s times. Further expansion will be disabled! Use command-line option: -Wp,-max_rec_depth=depth to recurse deeper. -A status return from cpp to cfe -Syntax Error -The token read was unexpected. -Syntax Error -- cannot backup -The token read was unexpected. -Yacc stack overflow -The expression is too complicated to parse. -Trailing comma in enumerator list -The use of a trailing comma in an enumerator list is not standard C. There -may be portability problems. -3.5.2.2 -Empty declaration -Empty declarations are invalid in standard C. -3.5 -%s declared, but not referenced. -redeclaration of '%s'; previous declaration at line %s in file '%s' -Identifier redeclared in the same scope/block. -3.1.2.3 -'%s' undefined; reoccurrences will not be reported. -Non-function name referenced in function call. -3.3.2.2(18) -The number of arguments doesn't agree with the number in the declaration. -3.3.2.2(5) -'%s' section name longer than 8 characters. Name truncated. -'%s' is already placed by pragma alloc_text. -Cannot write ucode file while compiling %s -1) The file system is full -2) Permissions problem -Must have corresponding formal argument for '%s' -Parameter found in the declaration part, but not in the argument list. -3.7.1(7) -Non-prototype declaration is an obsolescent feature. -The use of function definitions with separate parameter identifier -and declaration lists (not prototype-format parameter type and -identifier declarators) is an obsolescent feature. -3.9.5 -Incompatible function declarations for %s -For two function types to be compatible, both shall specify compatible -return types. Moreover, the parameter type lists, if both are present, -shall agree in the number of parameters and in use of the ellipsis -terminator; corresponding parameters shall have compatible types. If -one type has a parameter type list and the other type is specified by -a function declarator that is not part of a function definition and -contains an empty identifier list, the parameter list shall not have -an ellipsis terminator and the type of each parameter shall be -compatible with they type that results from application of the default -argument promotions. If one type has a parameter type list and the -other is specified by a function definition that contains a (possibly -empty) identifier list, both shall agree in the number of parameters, -and the type of each prototype parameter shall be compatible with the -type that results from application of the default argument promotions -to the type of the corresponding identifier. (For each parameter -declared with function or array type, its type for these comparisons -is the one that results from conversion to a pointer type. For each -parameter declared with qualified type, its type for these comparisons -is the unqualified version of its declared type.) There you have it! -3.5.4.3(15) -Incompatible function return type for this function. -For two function types to be compatible, both shall specify compatible -return types. -3.5.4.3(15) -The number of parameters for function is different from the previous declaration -The parameter type lists, if both are present, shall agree in the -number of parameters and in use of the ellipsis terminator. -3.5.4.3(15) -Incompatible type for the function parameter -If both parameter type lists are present, corresponding -parameters shall have compatible types. -3.5.4.3(15) -Function %s is redeclared with an incompatible argument type (after default argument promotion), which could lead to undefined run-time behaviour. -The redeclaration could cause arguments at a call site to be passed -inconsistently with what the function implementation expects, and -parameters would therefore be accessed erroneously when executing the -function body. Note that a float argument is promoted to a double -when passed (potentially through fp registers) to an unprototyped -function. -3.5.4.3(15) -prototype and non-prototype declaration found for %s, ellipsis terminator not allowed -If one type has a parameter type list and the other type is specified -by a function declarator that is not part of a function definition and -contains an empty identifier list, the parameter list shall not have -an ellipsis terminator and the type of each parameter shall be -compatible with they type that results from application of the default -argument promotions. -3.5.4.3(15) -prototype and non-prototype declaration found for %s, the type of this parameter is not compatible with the type after applying default argument promotion -If one type has a parameter type list and the other type is specified -by a function declarator that is not part of a function definition and -contains an empty identifier list, the type of each parameter shall be -compatible with the type that results from application of the default -argument promotions. -3.5.4.3(15) -prototype declaration and non-prototype definition found for %s, the type of this parameter is not compatible with the type after applying default argument promotion -If one type has a parameter type list and the other is specified by a -function definition that contains a (possibly empty) identifier list, -both shall agree in the number of parameters, and the type of each -prototype parameter shall be compatible with the type that results -from application of the default argument promotions to the type of the -corresponding identifier. -3.5.4.3(15) -Empty declaration specifiers -Standard C requires at least a storage class specifier, type specifier, -or a type qualifier in declarations. 'extern int' assumed. -3.5 -Can't write to the file %s -1) The output file cannot be opened for writing. -2) Out of file space. -Duplicate '%s' -typedef, extern, static, auto, register, const, volatile may not -appear more than once in the same specifier list or qualifier list. -Duplicate occurrence ignored. -3.5.1(10) , 3.5.3(5) -Null input -There is nothing to compile. -Illegal type combination -3.5.2 -Missing ';' at end of structure / union member declaration -In standard C, each member declaration must be terminated by a ';'. A -terminating ';' is assumed. -3.5.2.1 -Missing member name in structure / union -In standard C, each member declaration have a member name. The missing -member is assumed to not exist. -3.5.2.1 -This variable is initialized twice. -Neither 'const' or 'volatile' have any effect on function results. -Qualifiers only apply to expressions designating an object that -can be altered or examined. -3.5.3(10) -An integer constant expression is required here. -The expression that defines the value of an enumeration constant -shall be an integral constant expression that has a value -representable as an int. -3.5.2.2(28) -(previous declaration of '%s' at line %s in file '%s') -Must be an integer type greater than zero. -The array size must be either a char, signed or unsigned integer or -an enumerated type with a value greater than zero. -3.5.4.2 -Array size cannot be a long long. -Arrays with more than 2^32 elements are not yet supported. -The array size must be either a char, signed or unsigned integer or -an enumerated type with a value greater than zero. -3.5.4.2 -bit-field '%s' width is not an integer constant -The expression that specifies the width of a bit-field shall be an -integral constant expression. -3.5.2.1(15) -bit-field '%s' width is negative -The expression that specifies the width of a bit-field shall be -non-negative. -3.5.2.1(15) -bit-field '%s' type required to be int, unsigned int, or signed int. -A bit-field shall have type int, unsigned int, or signed int. -3.5.2.1(30) -bit-field %s's type not integer. -Non-scalar type or pointer type to a non-object for increment or decrement operator. -The operand of the prefix/postfix increment or decrement operator shall have scalar type; if it is of pointer type, it must point to an object. -3.3.2.4(37), 3.3.3.1(25) -Assign value to a function type. -An assignment operator shall have a modifiable lvalue as its left operand. -3.2.2.1(5) -Assign value to an array. -An assignment operator shall have a modifiable lvalue as its left operand. -3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) -Change value for variable of incomplete type. -The operand of increment and decrement operator shall be a modifiable -scalar lvalue. An assignment operator shall have a modifiable lvalue -as its left operand. -3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) -The left-hand side of the '.' operator must be an addressable lvalue, when a bit-field is not contained within a unit of 32 bits alignment. -This is a restriction in our implementation, which can be worked -around by always accessing long long bit-fields indirectly (i.e. -by means of the '->' operator). -This expression is not an lvalue. -3.2.2.1 -Modified an rvalue. -3.2.2.1 -Change value for constant variable. -The operand of increment and decrement operators shall be modifiable -scalar lvalues. An assignment operator shall have a modifiable lvalue -as its left operand. -3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) -Change value for constant field of a struct or union. -An assignment operator shall have a modifiable lvalue as its left operand. -3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) -Dereferenced a non-pointer. -The operand of the unary * operator shall have pointer type. -3.3.3.2(39) -The operand of the unary + or - operator shall have arithmetic type. -3.3.3.3(6) -The operand of the unary ~ operator shall have integral type. -3.3.3.3(6) -The operand of the unary ! operator shall have scalar type. -3.3.3.3(6) -Constants must have arithmetic type. -3.1.3 -Bad type name for cast operator -The type name for the cast operator should either be void or a -qualified or unqualified scalar type. -3.3.4(22) -Improper cast of non-scalar type expression. -The operand for the cast operator shall be of scalar type. -3.3.4(23) -Cast a pointer into a non-integral type. -A pointer may be converted to an integral type. -3.3.4(31) -Cast a non-integral type into a pointer. -An integral type may be converted to a pointer. -3.3.4(31) -Duplicate member '%s' -Two members of a struct may not have the same name. -3.1.2.2(7,25) -Invalid constant expression. -Constant expressions shall not contain assignment, increment, decrement, -function-call, or comma operators, except when they are contained within -the operand of the sizeof operator. -3.4(9) -Constant expressions must be derived from a constant value or a constant -variable. -3.4 -Dangerous operand of '&'. -The operand of the unary & operator shall be either a function -designator or an lvalue that designates an object that is not a -bit-field and is not declared with the register storage-class -specifier. This operand is NOT an lvalue, but we let it pass. -Note that a segmentation error with possible core dump will result -when the resulting address does not denote a valid (declared) -storage location. This feature will be discontinued in future -releases of the compiler! -3.3.3.2(36) -Unacceptable operand of '&'. -The operand of the unary & operator shall be either a function -designator or an lvalue that designates an object that is not a -bit-field and is not declared with the register storage-class -specifier. -3.3.3.2(36) -'&' before array or function; ignored -Unacceptable operand of sizeof operator. -The sizeof operator shall not be applied to an expression that has -function type or an incomplete type, to the parenthesized name of such -a type, or to an lvalue that designates a bit-field object. -3.3.3.4 -Unacceptable operand of a multiplicative operator. -Each of the operands of a multiplicative operator shall have arithmetic type. -3.3.5(18) -Unacceptable operand of the remainder operator -Each of the operands of the remainder (%) operator shall have integral type. -3.3.5(18) -Unacceptable operand of '+'. -For the + operator, either both operands shall have arithmetic type, or -one operand shall be a pointer to an object type and the other shall -have integral type. -3.3.6(39) -Unacceptable operand of '-'. -For the subtraction operator, one of the following shall hold: both operands -have arithmetic type; operands are pointers to qualified or unqualified -versions of compatible object types; or the left operand is a pointer -to an object type and the right operand has integral type. -3.3.6(39) -Unacceptable operand of shift operator. -Each of the operands of bitwise shift operators shall have integral type. -3.3.7(9) -Unacceptable operand of relational operator. -For relational operators, one of the following shall hold: both -operands have arithmetic type; both operands are pointers to qualified -or unqualified versions of compatible object types; or both operands -are pointers to qualified or unqualified versions of compatible -incomplete types. -3.3.8(32) -Unacceptable operand of == or != -For the == or != operator, one of the following shall hold: both operands -are pointers to qualified or unqualified versions of compatible types; one -operand is a pointer to an object or incomplete type and the other is a -pointer to a qualified or unqualified version of void; or one operand is -a pointer and the other is a null pointer constant. -3.3.9(21) -Unacceptable operand of &. -Each of the operands shall have integral type. -3.3.10(7) -Unacceptable operand of ^. -Each of the operands shall have integral type. -3.3.11(18) -Unacceptable operand of |. -Each of the operands shall have integral type. -3.3.12(30) -Unacceptable operand of &&. -Each of the operands shall have scalar type. -3.3.13(7) -Unacceptable operand of ||. -Each of the operands shall have scalar type. -3.3.14(20) -Unacceptable operand of conditional operator. -The first operand of conditional operator shall have scalar type. One -of the following shall hold for the second and third operands: -both operands have arithmetic type; both operands have compatible -structure or union types; both operands have void type; both operands -are pointers to qualified or unqualified versions of compatible types; -one operand is a pointer and the other is a null pointer constant; or -one operand is pointer to an object or incomplete type and the other -is a pointer to a qualified or unqualified version of void. -3.3.15 -Duplicate label '%s' -A label name can only occur once in a function. -3.1.2.1(25) -Division by zero. -3.3.5 -Subscripting a non-array. -3.3.2.1 -Subscripting an array of incomplete type which is not an object type. -The element of the array shall have an object type. -3.3.2.1 -Should only subscript an array with an integral expression -3.3.2.1 -Subscripting an unbounded array -3.3.2.1 -Array index out of range -3.3.2.1 -Selector requires struct/union pointer as left hand side -In K&R mode the expression is implicitly converted to the '.' selector -for a struct/union left-hand side. -3.3.2.3 -Selector requires struct/union as left hand side -In K&R mode the expression is implicitly converted to the '->' selector -for a struct/union pointer left-hand side. -3.3.2.3 -member of structure or union required -3.3.2.3 -types have different qualifier specifications -For two qualified types to be compatible, both shall have the -identically qualified version of a compatible type; qualified -and unqualified versions of a type are distinct types. For two -types to be compatible their types must be the same. -3.5.3(26) -Incompatible array type due to different array size -For two array types to be compatible, both shall have compatible element -types; if both size specifiers are present, they shall have the -same value. -3.5.4.2(11) -Incompatible array type due to incompatible element type -For two array types to be compatible, both shall have compatible element -types. -3.5.4.2(11) -Incompatible pointer type assignment -The type pointed to by the left-hand side of simple assignment -statement is incompatible with the type pointed to by the right-hand side. -3.3.16.1, 3.5.4.1(21) -Incompatible base type of pointer type -K&R feature. -Type %s of %s is incompatible with type %s of %s -Incompatible types can be resolved by casting or by other means. -3.3.16.1 -illegal combination of pointer and integer -Assigning an integral expression to a pointer is a bad practice. -Type for %s is incompatible with %s -Incompatible types can be resolved by casting or by other means. -3.1.2.6 -Bad operand type for += or -= -3.3.16.2(26) -A case or default label appears outside a switch statement -A case or default label shall appear only in a switch statement. -3.6.1 -The controlling expression of the if statement is not scalar type -The controlling expression of an if statement shall have scalar type. -3.6.4.1 -The controlling expression of switch statement is not integral type -The controlling expression of an switch statement shall have integral type. -3.6.4.2(20) -The case label is not an integral constant expression -The case label shall be an integral constant expression. -3.6.4.2(22) -Duplicate case label in the same switch statement -No two of the case constant expressions in the same switch statement -shall have the same value after conversion. -3.6.4.2(22) -More than one default label in the same switch statement -There may be at most one default label in a switch statement. -3.6.4.2(23) -The controlling expression of the iteration statement is not scalar -type -The controlling expression of a iteration statement shall have scalar -type. -3.6.5.1 -label '%s' used, but not defined -The identifier in a goto statement shall name a label located -somewhere in the enclosing function. -3.6.6.1 -A continue statement shall appear only in or as a loop body -3.6.6.2 -A break statement shall appear only in or as a switch body or loop body -3.6.6.3 -A return statement with an expression should not appear -in a function '%s', whose return type is void -3.6.6.4(24) -A return statement without an expression appears in a -function '%s', whose return type is not void -If a return statement without an expression is executed, and the value -of the function call is used by the caller, the behavior is undefined. -3.6.6.4(33) -Internal Error: statement stack underflow -Long double not supported; double assumed. -Long float not standard; double assumed. -Only 'register' allowed in parameter declaration -The only storage-class specifier that shall occur in a parameter -declaration is 'register'; illegal storage class ignored. -3.5.4.3(25) -Name(s) without types in a function declaration -An old-style function declaration is not allowed to have names -in the parameter list; useless names ignored -3.5.4.3(26) -Functions cannot return functions -3.7.1(33), 3.3.2.2 -Functions cannot return a non-object type -3.3.2.2 -enum declaration must contain enum literals -Although structs or unions may delay the declaration of their members, -a similar construction with enum does not exist and is not necessary, -as there can be no mutual dependencies between the declaration of an -enumerated type and any other type. -3.5.2.3(27) -Register qualification has no effect for this type of object -Register declarations for array, struct, and function types have -no effect. -3.5.1(16), 3.5.1(19) -Functions cannot be declared 'register' -The declaration of an identifier for a function that has block -scope shall have no explicit storage-class specifier other than -'extern'. -3.5.1(19) -'%s' cannot be initialized -The type of the entity to be initialized shall be an object type -or an array of unknown size. -3.5.7(32) -Cannot initialize 'extern' variable '%s' within a function -If the declaration of an identifier has block scope, and the -identifier has 'extern' or 'static' linkage, the declaration -shall have no initializer for the identifier; initialization -allowed anyway. -3.5.7(35) -initializing an 'extern' is an ANSI C extension -conflicting declarations for '%s' -'static' and 'extern' declarations conflict. Which is meant? -3.1.2.2(15), 3.1.2.2(27) -Too many initial values for '%s' -3.5.7(1) -incompatible types in initialization -3.3.16(35) -redefinition of '%s'; previous definition at line %s in file '%s' -Identifier redeclared in the same scope/block. -3.1.2.3 -bit-fields as members of a union are an ANSI C invention. -storage size for '%s' isn't known -type mismatch in initialization -Missing braces in a union initialization or illegally formed -initialization. -3.5.7(5) -union '%s' only allowed one initializer for the first member -3.5.7(5) -width of '%s' exceeds its type -the specified bitfield width is too large to be contained within a -bitfield type. -structure has no member named '%s' -This is allowed for compatibility with AT&T pcc-based compilers. -Reference of an expression of void type or an incomplete type. -3.2.2.1 -element size of an array shall not be zero -3.2.2.5(25) -invalid combination of type specifiers -Although order is unimportant, not all type specifiers can occur together. -3.5.2 -declaration must at least declare an identifier, tag, or the member of an enumeration -3.5(16) -at most one storage class may be given in the declaration -Duplicate occurrence ignored. -3.5.1(10) -size of function's return type is zero -The return type of a function must be void or an object type other than array. -3.7.1(33) -Expecting an integral return type from the main function -identifier missing from parameter declaration -Prototypes for function definitions require identifiers in parameter -declarations. -3.7.1(4) -only 'register' allowed for storage class for parameters -The declarations in the declaration list shall contain no storage class -other than 'register', and no initializations. -3.7.1(10) -parameters declarations can not have initializations -3.7.1(10) -only one instance of 'void' allowed in the parameter list -'void' must occur by itself (specifying that the function has no parameters). -3.5.4.3(1) -%s must have function type -1) An argument list must be explicitly present in the declarator; it cannot - be inherited from a typedef (3.5.4.3). -2) The declarator is not a function. -3.7.1(30) -Illegal hexadecimal constant -You have no digits after the 0x or 0X. 0x0 assumed. -3.1.3.2 -value overflows its type in this context. Value is set to be '%s'! -3.2.1.4 -value is outside range representable for type '%s' -missing member name -K&R mode permits a missing member name; otherwise, only bitfields can omit -the member name. -3.5.2.1(10) -useless keyword or type name in declaration -Type was ignored. -'%s' declared within and is limited to this function prototype -Possible program error, since parameter type checking will always fail -unless the type declaration is visible to the caller. -3.1.2.1(35) -Extra spaces within operator, %s assumed -In ANSI C, the compound assignment operator cannot have embedded -white space characters. -3.1.5 -missing size for array '%s' -Incomplete types permitted for identifiers with internal or -external linkage, but not automatic linkage. -3.1.2.5(10) -can't jump into (from outside of) the body of a 'try' or into either type of handler -'%s' missing, please #include excpt.h -excpt.h required to declare exception statements, intrinsics or compiler -runtime names. -local function declarations cannot be 'static' -A function declaration can only contain the storage-class 'static' -if it is at file scope. Declaration made 'extern'. -3.5.1(19) -static function '%s' declared and referenced, but not defined. -If an identifier declared with internal linkage is used in an -expression (other than as a part of the operand of a sizeof -operator), there shall be exactly one external definition for -the identifier in the translation unit. -3.7(12) -pragma argument '%s' must be declared prior to being used in a pragma -Pragma name ignored. -Pragma not supported -'%s' not enabled as intrinsic -It may have already appeared in a function pragma, or never occurred in -an intrinsic pragma. -'%s' is already enabled as an intrinsic -weak definition for '%s' is later redefined; pragma weak ignored. -definition of primary name '%s' not found; pragma weak ignored. -definition of secondary name '%s' not found; pragma weak ignored. -primary name '%s' is declared as a common or external, and is not defined -with initial value within this file; pragma weak ignored. -useless '%s' storage class ignored -array of functions not allowed -The element type must be an object type representing a region -of data storage which can represent values. -3.1.2.5(23) -array of voids not allowed -The element type must be an object type representing a region -of data storage which can represent values. -3.1.2.5(23) -argument for pragma pack must be an integer constant; pragma ignored -'%s' has wrong tag type. -Identifier redeclared in the same scope/block. -3.1.2.3 -missing dimension bound -For multidimensional arrays, the constant bounds of the array may be -omitted only for the first member of the sequence. -3.1.2.5(23) -Internal error in parameters to function substr; loc: '%s'; len: '%s'. -Internal error in parameters to function insertstr; indx: '%s'. -Internal error in function get_tag_name; input is a non-tagged type. -Internal error in function gen_type_str -- not a type tree '%s' -Cannot open file '%s' -Prototype should be moved after tag or a typedef declaration. -Please look for comments in the extracted header file. -The extracted header file includes prototypes for static functions, -which should be removed, if you wish to include the header in a source file -other than the originator. -ANSI C requires formal parameter before "..." -This extension is meant to be used for compatibility with varargs.h -3.5.4.3(35) -syntax error: "&..." invalid -extension used to access "..." formal arguments. -function '%s' initialized like a variable -The type of entity to be initialized shall be an object type or an -array of unknown size. -3.5.7(31) -initializer not an array aggregate -The initializer for an object that has aggregate type shall be a -brace-enclosed list of initializers for the members of the aggregate, -written in increasing subscript or member order. -3.5.7(20) -'%s' type is incomplete; cannot initialize -Was the struct ever defined? -3.5.7.(31) -'%s' is not standard ANSI. -This keyword/type is not defined in strict ANSI mode. -3.1.1 -not a legal asm string -The first operand of an asm string should be, after argument substitution, -a legal assembly string. -The -float option will be ignored in ANSI mode. -The -float option is ignored, since otherwise program semantics would -violate the ANSI standard. In particular, fp constants are always -'double' with ANSI-C, while with -float the type of fp constants will -depend on the context and may be 'float'. -ANSI C support unavailable with C compiler bundled with RISC/os -The C compiler bundled with RISC/os does not support ANSI C. ANSI -C support requires a separate license. -Ignored invalid warning number(s) in -woff option, %s%s ! -Warning numbers must be in the range %s to %s. -The set of warning numbers in cfe is disjoint from the set of warning numbers -in accom, since accom warnings cannot be mapped one-to-one to cfe warnings. -'%s' not handled as an intrinsic due to incompatible argument types . -'__unalign' only qualifies pointers -'__unalign' indicates the object pointed at by pointer is unaligned (e.g., -int * __unalign p). This is an extension to ANSI C and like 'volatile' -and 'const' can follow the '*' in pointer declarations, but unlike both -cannot qualify a base type. -index expression is an anachronism -ANSI C++ doesn't support array index expressions in delete. -5.3.4 -member cannot be of function or incomplete type. -3.5.2.1(12) -Illegal lint option, '%s', is ignored. -cannot open header message buffer file -cannot write header message buffer file -cannot read header message buffer file -cannot seek in header message buffer file -struct/union/enum '%s' is used, but not defined -static '%s' unused -nonportable character comparison (chars may be signed or unsigned) -redundant comparison of unsigned with constant expression -redundant statement, control flow cannot reach this statement -'%s' may be used before set -function parameter '%s' is not used in function '%s' -'%s' can be const qualified, since it is not set within its lifetime. -'%s' is not used in function '%s' -'%s' set but unused in function '%s' -control may fall through %s statement -function '%s' has return(e); and return; -function '%s' may return random value to place of invocation %s -label without goto: '%s' -width of %s constant is smaller than size of type (%s) -explicit conversion from '%s' to '%s' %s -implicit conversion from '%s' to '%s' %s -'%s' may be indistinguishable from '%s' due to internal name truncation -Promoted formal parameter and promoted argument have incompatible types -No prototype for the definition of '%s' %s -References to '%s' are substituted by its literal initializer - (as included in %s) -============== -unsupported language linkage -string-literal specifies an unsupported linkage -7.4(1) -No prototype for the call to %s -To achieve better type-checking, there should be a full prototype for -the function being called. -3.5.4.3 -'inline' only applies to function declarations -leave statment can occur only within try body -Microsoft extension -Use of a Microsoft extension detected without usage of the -compiler option -msft. -No parameter mentioned -A file with no declarations or definitions is accepted as an extension to ANSI C -The translation unit must contain at least one external definition. -3.7 -Incompatible signed and unsigned version of a type -Yacc initialization error -Internal error: yacc cannot initialize itself. -The cfe option %s may not be in future releases. We suggest that you not use this option! -Incompatible char and unsigned char versions of a type -Lshift with undefined behaviour. -Lshift with a negative right operand, or a right operand that is greater -than or equal to the width in bits of the promoted left operand, results -in undefined behaviour. -3.3.7(11) -useless type name in declaration, possibly a semicolon is missing. -Type was ignored. -constant initializer expression is invalid (refers to automatic variables). -All the expressions in an initializer for an object that has static storage -duration or in the initializer list for an object that has aggregate or -union type shall be constant expressions. Otherwise, unexpected results -may occur. -3.5.7(32) and 3.4 -invalid explicit or implicit conversion of an address constant to an integral value in a constant initializing expression. -An address constant in a constant initializing expression can neither -initialize a bit-field nor be directly or indirectly converted to an -integral type of size different from an address type. -6.4 diff --git a/tools/ido5.3_compiler/usr/lib/libc.so.1 b/tools/ido5.3_compiler/usr/lib/libc.so.1 deleted file mode 100755 index 17495ef6..00000000 Binary files a/tools/ido5.3_compiler/usr/lib/libc.so.1 and /dev/null differ diff --git a/tools/ido5.3_compiler/usr/lib/libexc.so b/tools/ido5.3_compiler/usr/lib/libexc.so deleted file mode 100755 index 209c5366..00000000 Binary files a/tools/ido5.3_compiler/usr/lib/libexc.so and /dev/null differ diff --git a/tools/ido5.3_compiler/usr/lib/libgen.so b/tools/ido5.3_compiler/usr/lib/libgen.so deleted file mode 100755 index 7b8ec7fd..00000000 Binary files a/tools/ido5.3_compiler/usr/lib/libgen.so and /dev/null differ diff --git a/tools/ido5.3_compiler/usr/lib/libm.so b/tools/ido5.3_compiler/usr/lib/libm.so deleted file mode 100755 index 05bf4781..00000000 Binary files a/tools/ido5.3_compiler/usr/lib/libm.so and /dev/null differ diff --git a/tools/ido5.3_compiler/usr/lib/ugen b/tools/ido5.3_compiler/usr/lib/ugen deleted file mode 100755 index beb81f4b..00000000 Binary files a/tools/ido5.3_compiler/usr/lib/ugen and /dev/null differ diff --git a/tools/ido5.3_compiler/usr/lib/ujoin b/tools/ido5.3_compiler/usr/lib/ujoin deleted file mode 100755 index 23a4cbbd..00000000 Binary files a/tools/ido5.3_compiler/usr/lib/ujoin and /dev/null differ diff --git a/tools/ido5.3_compiler/usr/lib/uld b/tools/ido5.3_compiler/usr/lib/uld deleted file mode 100755 index bd182fdc..00000000 Binary files a/tools/ido5.3_compiler/usr/lib/uld and /dev/null differ diff --git a/tools/ido5.3_compiler/usr/lib/umerge b/tools/ido5.3_compiler/usr/lib/umerge deleted file mode 100755 index e8e09e66..00000000 Binary files a/tools/ido5.3_compiler/usr/lib/umerge and /dev/null differ diff --git a/tools/ido5.3_compiler/usr/lib/uopt b/tools/ido5.3_compiler/usr/lib/uopt deleted file mode 100755 index 5451428b..00000000 Binary files a/tools/ido5.3_compiler/usr/lib/uopt and /dev/null differ diff --git a/tools/ido5.3_compiler/usr/lib/usplit b/tools/ido5.3_compiler/usr/lib/usplit deleted file mode 100755 index 112abfcd..00000000 Binary files a/tools/ido5.3_compiler/usr/lib/usplit and /dev/null differ diff --git a/tools/permuter_settings.toml b/tools/permuter_settings.toml new file mode 100644 index 00000000..860e1502 --- /dev/null +++ b/tools/permuter_settings.toml @@ -0,0 +1,7 @@ +[preserve_macros] +"g[DS]P.*" = "void" +"gDma.*" = "void" +"_SHIFTL" = "unsigned int" + +[decompme.compilers] +"tools/ido5.3_recomp/cc" = "ido5.3" diff --git a/tools/python/diff.py b/tools/python/diff.py index d9d39a1c..2f601806 100644 --- a/tools/python/diff.py +++ b/tools/python/diff.py @@ -1,319 +1,1284 @@ #!/usr/bin/env python3 -import sys -import re -import os -import ast +# PYTHON_ARGCOMPLETE_OK import argparse -import subprocess -import difflib -import string -import itertools -import threading -import queue -import time +import sys +from typing import ( + Any, + Callable, + Dict, + Iterator, + List, + Match, + NoReturn, + Optional, + Pattern, + Set, + Tuple, + Type, + Union, +) -def fail(msg): +def fail(msg: str) -> NoReturn: print(msg, file=sys.stderr) sys.exit(1) +def static_assert_unreachable(x: NoReturn) -> NoReturn: + raise Exception("Unreachable! " + repr(x)) + + +# ==== COMMAND-LINE ==== + +if __name__ == "__main__": + # Prefer to use diff_settings.py from the current working directory + sys.path.insert(0, ".") + try: + import diff_settings + except ModuleNotFoundError: + fail("Unable to find diff_settings.py in the same directory.") + sys.path.pop(0) + + try: + import argcomplete + except ModuleNotFoundError: + argcomplete = None + + parser = argparse.ArgumentParser( + description="Diff MIPS, PPC, AArch64, or ARM32 assembly." + ) + + start_argument = parser.add_argument( + "start", + help="Function name or address to start diffing from.", + ) + + if argcomplete: + + def complete_symbol( + prefix: str, parsed_args: argparse.Namespace, **kwargs: object + ) -> List[str]: + if not prefix or prefix.startswith("-"): + # skip reading the map file, which would + # result in a lot of useless completions + return [] + config: Dict[str, Any] = {} + diff_settings.apply(config, parsed_args) # type: ignore + mapfile = config.get("mapfile") + if not mapfile: + return [] + completes = [] + with open(mapfile) as f: + data = f.read() + # assume symbols are prefixed by a space character + search = f" {prefix}" + pos = data.find(search) + while pos != -1: + # skip the space character in the search string + pos += 1 + # assume symbols are suffixed by either a space + # character or a (unix-style) line return + spacePos = data.find(" ", pos) + lineReturnPos = data.find("\n", pos) + if lineReturnPos == -1: + endPos = spacePos + elif spacePos == -1: + endPos = lineReturnPos + else: + endPos = min(spacePos, lineReturnPos) + if endPos == -1: + match = data[pos:] + pos = -1 + else: + match = data[pos:endPos] + pos = data.find(search, endPos) + completes.append(match) + return completes + + setattr(start_argument, "completer", complete_symbol) + + parser.add_argument( + "end", + nargs="?", + help="Address to end diff at.", + ) + parser.add_argument( + "-o", + dest="diff_obj", + action="store_true", + help="""Diff .o files rather than a whole binary. This makes it possible to + see symbol names. (Recommended)""", + ) + parser.add_argument( + "-e", + "--elf", + dest="diff_elf_symbol", + metavar="SYMBOL", + help="""Diff a given function in two ELFs, one being stripped and the other + one non-stripped. Requires objdump from binutils 2.33+.""", + ) + parser.add_argument( + "-c", + "--source", + dest="show_source", + action="store_true", + help="Show source code (if possible). Only works with -o or -e.", + ) + parser.add_argument( + "-C", + "--source-old-binutils", + dest="source_old_binutils", + action="store_true", + help="""Tweak --source handling to make it work with binutils < 2.33. + Implies --source.""", + ) + parser.add_argument( + "-L", + "--line-numbers", + dest="show_line_numbers", + action="store_const", + const=True, + help="""Show source line numbers in output, when available. May be enabled by + default depending on diff_settings.py.""", + ) + parser.add_argument( + "--no-line-numbers", + dest="show_line_numbers", + action="store_const", + const=False, + help="Hide source line numbers in output.", + ) + parser.add_argument( + "--inlines", + dest="inlines", + action="store_true", + help="Show inline function calls (if possible). Only works with -o or -e.", + ) + parser.add_argument( + "--base-asm", + dest="base_asm", + metavar="FILE", + help="Read assembly from given file instead of configured base img.", + ) + parser.add_argument( + "--write-asm", + dest="write_asm", + metavar="FILE", + help="Write the current assembly output to file, e.g. for use with --base-asm.", + ) + parser.add_argument( + "-m", + "--make", + dest="make", + action="store_true", + help="Automatically run 'make' on the .o file or binary before diffing.", + ) + parser.add_argument( + "-l", + "--skip-lines", + dest="skip_lines", + metavar="LINES", + type=int, + default=0, + help="Skip the first LINES lines of output.", + ) + parser.add_argument( + "-s", + "--stop-jr-ra", + dest="stop_jrra", + action="store_true", + help="""Stop disassembling at the first 'jr ra'. Some functions have + multiple return points, so use with care!""", + ) + parser.add_argument( + "-i", + "--ignore-large-imms", + dest="ignore_large_imms", + action="store_true", + help="Pretend all large enough immediates are the same.", + ) + parser.add_argument( + "-I", + "--ignore-addr-diffs", + dest="ignore_addr_diffs", + action="store_true", + help="Ignore address differences. Currently only affects AArch64 and ARM32.", + ) + parser.add_argument( + "-B", + "--no-show-branches", + dest="show_branches", + action="store_false", + help="Don't visualize branches/branch targets.", + ) + parser.add_argument( + "-S", + "--base-shift", + dest="base_shift", + metavar="N", + type=str, + default="0", + help="""Diff position N in our img against position N + shift in the base img. + Arithmetic is allowed, so e.g. |-S "0x1234 - 0x4321"| is a reasonable + flag to pass if it is known that position 0x1234 in the base img syncs + up with position 0x4321 in our img. Not supported together with -o.""", + ) + parser.add_argument( + "-w", + "--watch", + dest="watch", + action="store_true", + help="""Automatically update when source/object files change. + Recommended in combination with -m.""", + ) + parser.add_argument( + "-3", + "--threeway=prev", + dest="threeway", + action="store_const", + const="prev", + help="""Show a three-way diff between target asm, current asm, and asm + prior to -w rebuild. Requires -w.""", + ) + parser.add_argument( + "-b", + "--threeway=base", + dest="threeway", + action="store_const", + const="base", + help="""Show a three-way diff between target asm, current asm, and asm + when diff.py was started. Requires -w.""", + ) + parser.add_argument( + "--width", + dest="column_width", + metavar="COLS", + type=int, + default=50, + help="Sets the width of the left and right view column.", + ) + parser.add_argument( + "--algorithm", + dest="algorithm", + default="levenshtein", + choices=["levenshtein", "difflib"], + help="""Diff algorithm to use. Levenshtein gives the minimum diff, while difflib + aims for long sections of equal opcodes. Defaults to %(default)s.""", + ) + parser.add_argument( + "--max-size", + "--max-lines", + metavar="LINES", + dest="max_lines", + type=int, + default=1024, + help="The maximum length of the diff, in lines.", + ) + parser.add_argument( + "--no-pager", + dest="no_pager", + action="store_true", + help="""Disable the pager; write output directly to stdout, then exit. + Incompatible with --watch.""", + ) + parser.add_argument( + "--format", + choices=("color", "plain", "html", "json"), + default="color", + help="Output format, default is color. --format=html or json implies --no-pager.", + ) + parser.add_argument( + "-U", + "--compress-matching", + metavar="N", + dest="compress_matching", + type=int, + help="""Compress streaks of matching lines, leaving N lines of context + around non-matching parts.""", + ) + parser.add_argument( + "-V", + "--compress-sameinstr", + metavar="N", + dest="compress_sameinstr", + type=int, + help="""Compress streaks of lines with same instructions (but possibly + different regalloc), leaving N lines of context around other parts.""", + ) + + # Project-specific flags, e.g. different versions/make arguments. + add_custom_arguments_fn = getattr(diff_settings, "add_custom_arguments", None) + if add_custom_arguments_fn: + add_custom_arguments_fn(parser) + + if argcomplete: + argcomplete.autocomplete(parser) + +# ==== IMPORTS ==== + +# (We do imports late to optimize auto-complete performance.) + +import abc +import ast +from collections import Counter, defaultdict +from dataclasses import asdict, dataclass, field, replace +import difflib +import enum +import html +import itertools +import json +import os +import queue +import re +import string +import struct +import subprocess +import threading +import time +import traceback + + MISSING_PREREQUISITES = ( "Missing prerequisite python module {}. " - "Run `python3 -m pip install --user colorama ansiwrap attrs watchdog python-Levenshtein` to install prerequisites (python-Levenshtein only needed for --algorithm=levenshtein)." + "Run `python3 -m pip install --user colorama watchdog python-Levenshtein cxxfilt` to install prerequisites (cxxfilt only needed with --source)." ) try: - import attr - from colorama import Fore, Style, Back - import ansiwrap + from colorama import Back, Fore, Style import watchdog except ModuleNotFoundError as e: fail(MISSING_PREREQUISITES.format(e.name)) -# Prefer to use diff_settings.py from the current working directory -sys.path.insert(0, ".") -try: - import diff_settings -except ModuleNotFoundError: - fail("Unable to find diff_settings.py in the same directory.") - # ==== CONFIG ==== -parser = argparse.ArgumentParser(description="Diff MIPS assembly.") -parser.add_argument("start", help="Function name or address to start diffing from.") -parser.add_argument("end", nargs="?", help="Address to end diff at.") -parser.add_argument( - "-o", - dest="diff_obj", - action="store_true", - help="Diff .o files rather than a whole binary. This makes it possible to see symbol names. (Recommended)", -) -parser.add_argument( - "--base-asm", - dest="base_asm", - metavar="FILE", - help="Read assembly from given file instead of configured base img.", -) -parser.add_argument( - "--write-asm", - dest="write_asm", - metavar="FILE", - help="Write the current assembly output to file, e.g. for use with --base-asm.", -) -parser.add_argument( - "-m", - "--make", - dest="make", - action="store_true", - help="Automatically run 'make' on the .o file or binary before diffing.", -) -parser.add_argument( - "-l", - "--skip-lines", - dest="skip_lines", - type=int, - default=0, - help="Skip the first N lines of output.", -) -parser.add_argument( - "-f", - "--stop-jr-ra", - dest="stop_jrra", - action="store_true", - help="Stop disassembling at the first 'jr ra'. Some functions have multiple return points, so use with care!", -) -parser.add_argument( - "-i", - "--ignore-large-imms", - dest="ignore_large_imms", - action="store_true", - help="Pretend all large enough immediates are the same.", -) -parser.add_argument( - "-B", - "--no-show-branches", - dest="show_branches", - action="store_false", - help="Don't visualize branches/branch targets.", -) -parser.add_argument( - "-S", - "--base-shift", - dest="base_shift", - type=str, - default="0", - help="Diff position X in our img against position X + shift in the base img. " - 'Arithmetic is allowed, so e.g. |-S "0x1234 - 0x4321"| is a reasonable ' - "flag to pass if it is known that position 0x1234 in the base img syncs " - "up with position 0x4321 in our img. Not supported together with -o.", -) -parser.add_argument( - "-w", - "--watch", - dest="watch", - action="store_true", - help="Automatically update when source/object files change. " - "Recommended in combination with -m.", -) -parser.add_argument( - "--width", - dest="column_width", - type=int, - default=50, - help="Sets the width of the left and right view column.", -) -parser.add_argument( - "--algorithm", - dest="algorithm", - default="difflib", - choices=["levenshtein", "difflib"], - help="Diff algorithm to use.", -) -parser.add_argument( - "--max-size", - "--max-lines", - dest="max_lines", - type=int, - default=1024, - help="The maximum length of the diff, in lines. Not recommended when -f is used.", -) +@dataclass +class ProjectSettings: + arch_str: str + objdump_executable: str + build_command: List[str] + map_format: str + mw_build_dir: str + baseimg: Optional[str] + myimg: Optional[str] + mapfile: Optional[str] + source_directories: Optional[List[str]] + source_extensions: List[str] + show_line_numbers_default: bool -# Project-specific flags, e.g. different versions/make arguments. -if hasattr(diff_settings, "add_custom_arguments"): - diff_settings.add_custom_arguments(parser) -args = parser.parse_args() +@dataclass +class Compress: + context: int + same_instr: bool -# Set imgs, map file and make flags in a project-specific manner. -config = {} -diff_settings.apply(config, args) -baseimg = config.get("baseimg", None) -myimg = config.get("myimg", None) -mapfile = config.get("mapfile", None) -makeflags = config.get("makeflags", []) -source_directories = config.get("source_directories", None) +@dataclass +class Config: + arch: "ArchSettings" -MAX_FUNCTION_SIZE_LINES = args.max_lines -MAX_FUNCTION_SIZE_BYTES = MAX_FUNCTION_SIZE_LINES * 4 + # Build/objdump options + diff_obj: bool + make: bool + source_old_binutils: bool + inlines: bool + max_function_size_lines: int + max_function_size_bytes: int -COLOR_ROTATION = [ - Fore.MAGENTA, - Fore.CYAN, - Fore.GREEN, - Fore.RED, - Fore.LIGHTYELLOW_EX, - Fore.LIGHTMAGENTA_EX, - Fore.LIGHTCYAN_EX, - Fore.LIGHTGREEN_EX, - Fore.LIGHTBLACK_EX, -] + # Display options + formatter: "Formatter" + threeway: Optional[str] + base_shift: int + skip_lines: int + compress: Optional[Compress] + show_branches: bool + show_line_numbers: bool + show_source: bool + stop_jrra: bool + ignore_large_imms: bool + ignore_addr_diffs: bool + algorithm: str -BUFFER_CMD = ["tail", "-c", str(10 ** 9)] -LESS_CMD = ["less", "-Ric"] + # Score options + score_stack_differences = True + penalty_stackdiff = 1 + penalty_regalloc = 5 + penalty_reordering = 60 + penalty_insertion = 100 + penalty_deletion = 100 -DEBOUNCE_DELAY = 0.1 -FS_WATCH_EXTENSIONS = [".c", ".h"] -# ==== LOGIC ==== - -if args.algorithm == "levenshtein": - try: - import Levenshtein - except ModuleNotFoundError as e: - fail(MISSING_PREREQUISITES.format(e.name)) - -binutils_prefix = None - -for binutils_cand in ["mips-linux-gnu-", "mips64-elf-"]: - try: - subprocess.check_call( - [binutils_cand + "objdump", "--version"], - stdout=subprocess.DEVNULL, - stderr=subprocess.DEVNULL, - ) - binutils_prefix = binutils_cand - break - except subprocess.CalledProcessError: - pass - except FileNotFoundError: - pass - -if not binutils_prefix: - fail( - "Missing binutils; please ensure mips-linux-gnu-objdump or mips64-elf-objdump exist." +def create_project_settings(settings: Dict[str, Any]) -> ProjectSettings: + return ProjectSettings( + arch_str=settings.get("arch", "mips"), + baseimg=settings.get("baseimg"), + myimg=settings.get("myimg"), + mapfile=settings.get("mapfile"), + build_command=settings.get( + "make_command", ["make", *settings.get("makeflags", [])] + ), + source_directories=settings.get("source_directories"), + source_extensions=settings.get( + "source_extensions", [".c", ".h", ".cpp", ".hpp", ".s"] + ), + objdump_executable=get_objdump_executable(settings.get("objdump_executable")), + map_format=settings.get("map_format", "gnu"), + mw_build_dir=settings.get("mw_build_dir", "build/"), + show_line_numbers_default=settings.get("show_line_numbers_default", True), ) -def eval_int(expr, emsg=None): +def create_config(args: argparse.Namespace, project: ProjectSettings) -> Config: + arch = get_arch(project.arch_str) + + formatter: Formatter + if args.format == "plain": + formatter = PlainFormatter(column_width=args.column_width) + elif args.format == "color": + formatter = AnsiFormatter(column_width=args.column_width) + elif args.format == "html": + formatter = HtmlFormatter() + elif args.format == "json": + formatter = JsonFormatter(arch_str=arch.name) + else: + raise ValueError(f"Unsupported --format: {args.format}") + + compress = None + if args.compress_matching is not None: + compress = Compress(args.compress_matching, False) + if args.compress_sameinstr is not None: + if compress is not None: + raise ValueError( + "Cannot pass both --compress-matching and --compress-sameinstr" + ) + compress = Compress(args.compress_sameinstr, True) + + show_line_numbers = args.show_line_numbers + if show_line_numbers is None: + show_line_numbers = project.show_line_numbers_default + + return Config( + arch=arch, + # Build/objdump options + diff_obj=args.diff_obj, + make=args.make, + source_old_binutils=args.source_old_binutils, + inlines=args.inlines, + max_function_size_lines=args.max_lines, + max_function_size_bytes=args.max_lines * 4, + # Display options + formatter=formatter, + threeway=args.threeway, + base_shift=eval_int( + args.base_shift, "Failed to parse --base-shift (-S) argument as an integer." + ), + skip_lines=args.skip_lines, + compress=compress, + show_branches=args.show_branches, + show_line_numbers=show_line_numbers, + show_source=args.show_source or args.source_old_binutils, + stop_jrra=args.stop_jrra, + ignore_large_imms=args.ignore_large_imms, + ignore_addr_diffs=args.ignore_addr_diffs, + algorithm=args.algorithm, + ) + + +def get_objdump_executable(objdump_executable: Optional[str]) -> str: + if objdump_executable is not None: + return objdump_executable + + objdump_candidates = ["mips-linux-gnu-objdump", "mips64-elf-objdump", "mips-elf-objdump"] + for objdump_cand in objdump_candidates: + try: + subprocess.check_call( + [objdump_cand, "--version"], + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + ) + return objdump_cand + except subprocess.CalledProcessError: + pass + except FileNotFoundError: + pass + + return fail( + f"Missing binutils; please ensure {' or '.join(objdump_candidates)} exists, or configure objdump_executable." + ) + + +def get_arch(arch_str: str) -> "ArchSettings": + for settings in ARCH_SETTINGS: + if arch_str == settings.name: + return settings + raise ValueError(f"Unknown architecture: {arch_str}") + + +BUFFER_CMD: List[str] = ["tail", "-c", str(10 ** 9)] + +# -S truncates long lines instead of wrapping them +# -R interprets color escape sequences +# -i ignores case when searching +# -c something about how the screen gets redrawn; I don't remember the purpose +# -#6 makes left/right arrow keys scroll by 6 characters +LESS_CMD: List[str] = ["less", "-SRic", "-#6"] + +DEBOUNCE_DELAY: float = 0.1 + +# ==== FORMATTING ==== + + +@enum.unique +class BasicFormat(enum.Enum): + NONE = enum.auto() + IMMEDIATE = enum.auto() + STACK = enum.auto() + REGISTER = enum.auto() + DELAY_SLOT = enum.auto() + DIFF_CHANGE = enum.auto() + DIFF_ADD = enum.auto() + DIFF_REMOVE = enum.auto() + SOURCE_FILENAME = enum.auto() + SOURCE_FUNCTION = enum.auto() + SOURCE_LINE_NUM = enum.auto() + SOURCE_OTHER = enum.auto() + + +@dataclass(frozen=True) +class RotationFormat: + group: str + index: int + key: str + + +Format = Union[BasicFormat, RotationFormat] +FormatFunction = Callable[[str], Format] + + +class Text: + segments: List[Tuple[str, Format]] + + def __init__(self, line: str = "", f: Format = BasicFormat.NONE) -> None: + self.segments = [(line, f)] if line else [] + + def reformat(self, f: Format) -> "Text": + return Text(self.plain(), f) + + def plain(self) -> str: + return "".join(s for s, f in self.segments) + + def __repr__(self) -> str: + return f"" + + def __bool__(self) -> bool: + return any(s for s, f in self.segments) + + def __str__(self) -> str: + # Use Formatter.apply(...) instead + return NotImplemented + + def __eq__(self, other: object) -> bool: + return NotImplemented + + def __add__(self, other: Union["Text", str]) -> "Text": + if isinstance(other, str): + other = Text(other) + result = Text() + # If two adjacent segments have the same format, merge their lines + if ( + self.segments + and other.segments + and self.segments[-1][1] == other.segments[0][1] + ): + result.segments = ( + self.segments[:-1] + + [(self.segments[-1][0] + other.segments[0][0], self.segments[-1][1])] + + other.segments[1:] + ) + else: + result.segments = self.segments + other.segments + return result + + def __radd__(self, other: Union["Text", str]) -> "Text": + if isinstance(other, str): + other = Text(other) + return other + self + + def finditer(self, pat: Pattern[str]) -> Iterator[Match[str]]: + """Replacement for `pat.finditer(text)` that operates on the inner text, + and returns the exact same matches as `Text.sub(pat, ...)`.""" + for chunk, f in self.segments: + for match in pat.finditer(chunk): + yield match + + def sub(self, pat: Pattern[str], sub_fn: Callable[[Match[str]], "Text"]) -> "Text": + result = Text() + for chunk, f in self.segments: + i = 0 + for match in pat.finditer(chunk): + start, end = match.start(), match.end() + assert i <= start <= end <= len(chunk) + sub = sub_fn(match) + if i != start: + result.segments.append((chunk[i:start], f)) + result.segments.extend(sub.segments) + i = end + if chunk[i:]: + result.segments.append((chunk[i:], f)) + return result + + def ljust(self, column_width: int) -> "Text": + length = sum(len(x) for x, _ in self.segments) + return self + " " * max(column_width - length, 0) + + +@dataclass +class TableMetadata: + headers: Tuple[Text, ...] + current_score: int + previous_score: Optional[int] + + +class Formatter(abc.ABC): + @abc.abstractmethod + def apply_format(self, chunk: str, f: Format) -> str: + """Apply the formatting `f` to `chunk` and escape the contents.""" + ... + + @abc.abstractmethod + def table(self, meta: TableMetadata, lines: List[Tuple["OutputLine", ...]]) -> str: + """Format a multi-column table with metadata""" + ... + + def apply(self, text: Text) -> str: + return "".join(self.apply_format(chunk, f) for chunk, f in text.segments) + + @staticmethod + def outputline_texts(lines: Tuple["OutputLine", ...]) -> Tuple[Text, ...]: + return tuple([lines[0].base or Text()] + [line.fmt2 for line in lines[1:]]) + + +@dataclass +class PlainFormatter(Formatter): + column_width: int + + def apply_format(self, chunk: str, f: Format) -> str: + return chunk + + def table(self, meta: TableMetadata, lines: List[Tuple["OutputLine", ...]]) -> str: + rows = [meta.headers] + [self.outputline_texts(ls) for ls in lines] + return "\n".join( + "".join(self.apply(x.ljust(self.column_width)) for x in row) for row in rows + ) + + +@dataclass +class AnsiFormatter(Formatter): + # Additional ansi escape codes not in colorama. See: + # https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters + STYLE_UNDERLINE = "\x1b[4m" + STYLE_NO_UNDERLINE = "\x1b[24m" + STYLE_INVERT = "\x1b[7m" + + BASIC_ANSI_CODES = { + BasicFormat.NONE: "", + BasicFormat.IMMEDIATE: Fore.LIGHTBLUE_EX, + BasicFormat.STACK: Fore.YELLOW, + BasicFormat.REGISTER: Fore.YELLOW, + BasicFormat.DELAY_SLOT: Fore.LIGHTBLACK_EX, + BasicFormat.DIFF_CHANGE: Fore.LIGHTBLUE_EX, + BasicFormat.DIFF_ADD: Fore.GREEN, + BasicFormat.DIFF_REMOVE: Fore.RED, + BasicFormat.SOURCE_FILENAME: Style.DIM + Style.BRIGHT, + BasicFormat.SOURCE_FUNCTION: Style.DIM + Style.BRIGHT + STYLE_UNDERLINE, + BasicFormat.SOURCE_LINE_NUM: Fore.LIGHTBLACK_EX, + BasicFormat.SOURCE_OTHER: Style.DIM, + } + + BASIC_ANSI_CODES_UNDO = { + BasicFormat.NONE: "", + BasicFormat.SOURCE_FILENAME: Style.NORMAL, + BasicFormat.SOURCE_FUNCTION: Style.NORMAL + STYLE_NO_UNDERLINE, + BasicFormat.SOURCE_OTHER: Style.NORMAL, + } + + ROTATION_ANSI_COLORS = [ + Fore.MAGENTA, + Fore.CYAN, + Fore.GREEN, + Fore.RED, + Fore.LIGHTYELLOW_EX, + Fore.LIGHTMAGENTA_EX, + Fore.LIGHTCYAN_EX, + Fore.LIGHTGREEN_EX, + Fore.LIGHTBLACK_EX, + ] + + column_width: int + + def apply_format(self, chunk: str, f: Format) -> str: + if f == BasicFormat.NONE: + return chunk + undo_ansi_code = Fore.RESET + if isinstance(f, BasicFormat): + ansi_code = self.BASIC_ANSI_CODES[f] + undo_ansi_code = self.BASIC_ANSI_CODES_UNDO.get(f, undo_ansi_code) + elif isinstance(f, RotationFormat): + ansi_code = self.ROTATION_ANSI_COLORS[ + f.index % len(self.ROTATION_ANSI_COLORS) + ] + else: + static_assert_unreachable(f) + return f"{ansi_code}{chunk}{undo_ansi_code}" + + def table(self, meta: TableMetadata, lines: List[Tuple["OutputLine", ...]]) -> str: + rows = [(meta.headers, False)] + [ + (self.outputline_texts(line), line[1].is_data_ref) for line in lines + ] + return "\n".join( + "".join( + (self.STYLE_INVERT if is_data_ref else "") + + self.apply(x.ljust(self.column_width)) + for x in row + ) + for (row, is_data_ref) in rows + ) + + +@dataclass +class HtmlFormatter(Formatter): + rotation_formats: int = 9 + + def apply_format(self, chunk: str, f: Format) -> str: + chunk = html.escape(chunk) + if f == BasicFormat.NONE: + return chunk + if isinstance(f, BasicFormat): + class_name = f.name.lower().replace("_", "-") + data_attr = "" + elif isinstance(f, RotationFormat): + class_name = f"rotation-{f.index % self.rotation_formats}" + rotation_key = html.escape(f"{f.group};{f.key}", quote=True) + data_attr = f'data-rotation="{rotation_key}"' + else: + static_assert_unreachable(f) + return f"{chunk}" + + def table(self, meta: TableMetadata, lines: List[Tuple["OutputLine", ...]]) -> str: + def table_row(line: Tuple[Text, ...], is_data_ref: bool, cell_el: str) -> str: + tr_attrs = " class='data-ref'" if is_data_ref else "" + output_row = f" " + for cell in line: + cell_html = self.apply(cell) + output_row += f"<{cell_el}>{cell_html}" + output_row += "\n" + return output_row + + output = "\n" + output += " \n" + output += table_row(meta.headers, False, "th") + output += " \n" + output += " \n" + output += "".join( + table_row(self.outputline_texts(line), line[1].is_data_ref, "td") + for line in lines + ) + output += " \n" + output += "
\n" + return output + + +@dataclass +class JsonFormatter(Formatter): + arch_str: str + + def apply_format(self, chunk: str, f: Format) -> str: + # This method is unused by this formatter + return NotImplemented + + def table(self, meta: TableMetadata, rows: List[Tuple["OutputLine", ...]]) -> str: + def serialize_format(s: str, f: Format) -> Dict[str, Any]: + if f == BasicFormat.NONE: + return {"text": s} + elif isinstance(f, BasicFormat): + return {"text": s, "format": f.name.lower()} + elif isinstance(f, RotationFormat): + attrs = asdict(f) + attrs.update( + { + "text": s, + "format": "rotation", + } + ) + return attrs + else: + static_assert_unreachable(f) + + def serialize(text: Optional[Text]) -> List[Dict[str, Any]]: + if text is None: + return [] + return [serialize_format(s, f) for s, f in text.segments] + + is_threeway = len(meta.headers) == 3 + + output: Dict[str, Any] = {} + output["arch_str"] = self.arch_str + output["header"] = { + name: serialize(h) + for h, name in zip(meta.headers, ("base", "current", "previous")) + } + output["current_score"] = meta.current_score + if meta.previous_score is not None: + output["previous_score"] = meta.previous_score + output_rows: List[Dict[str, Any]] = [] + for row in rows: + output_row: Dict[str, Any] = {} + output_row["key"] = row[0].key2 + output_row["is_data_ref"] = row[1].is_data_ref + iters = [ + ("base", row[0].base, row[0].line1), + ("current", row[1].fmt2, row[1].line2), + ] + if is_threeway: + iters.append(("previous", row[2].fmt2, row[2].line2)) + if all(line is None for _, _, line in iters): + # Skip rows that were only for displaying source code + continue + for column_name, text, line in iters: + column: Dict[str, Any] = {} + column["text"] = serialize(text) + if line: + if line.line_num is not None: + column["line"] = line.line_num + if line.branch_target is not None: + column["branch"] = line.branch_target + if line.source_lines: + column["src"] = line.source_lines + if line.comment is not None: + column["src_comment"] = line.comment + if line.source_line_num is not None: + column["src_line"] = line.source_line_num + if line or column["text"]: + output_row[column_name] = column + output_rows.append(output_row) + output["rows"] = output_rows + return json.dumps(output) + + +def format_fields( + pat: Pattern[str], + out1: Text, + out2: Text, + color1: FormatFunction, + color2: Optional[FormatFunction] = None, +) -> Tuple[Text, Text]: + diffs = [ + of.group() != nf.group() + for (of, nf) in zip(out1.finditer(pat), out2.finditer(pat)) + ] + + it = iter(diffs) + + def maybe_color(color: FormatFunction, s: str) -> Text: + return Text(s, color(s)) if next(it, False) else Text(s) + + out1 = out1.sub(pat, lambda m: maybe_color(color1, m.group())) + it = iter(diffs) + out2 = out2.sub(pat, lambda m: maybe_color(color2 or color1, m.group())) + + return out1, out2 + + +def symbol_formatter(group: str, base_index: int) -> FormatFunction: + symbol_formats: Dict[str, Format] = {} + + def symbol_format(s: str) -> Format: + # TODO: it would be nice to use a unique Format for each symbol, so we could + # add extra UI elements in the HTML version + f = symbol_formats.get(s) + if f is None: + index = len(symbol_formats) + base_index + f = RotationFormat(key=s, index=index, group=group) + symbol_formats[s] = f + return f + + return symbol_format + + +# ==== LOGIC ==== + +ObjdumpCommand = Tuple[List[str], str, Optional[str]] + + +def maybe_eval_int(expr: str) -> Optional[int]: try: ret = ast.literal_eval(expr) if not isinstance(ret, int): raise Exception("not an integer") return ret except Exception: - if emsg is not None: - fail(emsg) return None -def run_make(target, capture_output=False): - if capture_output: - return subprocess.run( - ["make"] + makeflags + [target], - stderr=subprocess.PIPE, - stdout=subprocess.PIPE, - ) - else: - subprocess.check_call(["make"] + makeflags + [target]) +def eval_int(expr: str, emsg: str) -> int: + ret = maybe_eval_int(expr) + if ret is None: + fail(emsg) + return ret -def restrict_to_function(dump, fn_name): - out = [] - search = f"<{fn_name}>:" - found = False - for line in dump.split("\n"): - if found: - if len(out) >= MAX_FUNCTION_SIZE_LINES: - break - out.append(line) - elif search in line: - found = True - return "\n".join(out) +def eval_line_num(expr: str) -> Optional[int]: + expr = expr.strip().replace(":", "") + if expr == "": + return None + return int(expr, 16) -def run_objdump(cmd): - flags, target, restrict = cmd - out = subprocess.check_output( - [binutils_prefix + "objdump"] + flags + [target], universal_newlines=True +def run_make(target: str, project: ProjectSettings) -> None: + subprocess.check_call(project.build_command + [target]) + + +def run_make_capture_output( + target: str, project: ProjectSettings +) -> "subprocess.CompletedProcess[bytes]": + return subprocess.run( + project.build_command + [target], + stderr=subprocess.PIPE, + stdout=subprocess.PIPE, ) + + +def restrict_to_function(dump: str, fn_name: str) -> str: + try: + ind = dump.index("\n", dump.index(f"<{fn_name}>:")) + return dump[ind + 1 :] + except ValueError: + return "" + + +def serialize_data_references(references: List[Tuple[int, int, str]]) -> str: + return "".join( + f"DATAREF {text_offset} {from_offset} {from_section}\n" + for (text_offset, from_offset, from_section) in references + ) + + +def maybe_get_objdump_source_flags(config: Config) -> List[str]: + flags = [] + + if config.show_line_numbers or config.show_source: + flags.append("--line-numbers") + + if config.show_source: + flags.append("--source") + + if not config.source_old_binutils: + flags.append("--source-comment=│ ") + + if config.inlines: + flags.append("--inlines") + + return flags + + +def run_objdump(cmd: ObjdumpCommand, config: Config, project: ProjectSettings) -> str: + flags, target, restrict = cmd + try: + out = subprocess.run( + [project.objdump_executable] + config.arch.arch_flags + flags + [target], + check=True, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + universal_newlines=True, + ).stdout + except subprocess.CalledProcessError as e: + print(e.stdout) + print(e.stderr) + if "unrecognized option '--source-comment" in e.stderr: + fail("** Try using --source-old-binutils instead of --source **") + raise e + + obj_data: Optional[bytes] = None + if config.diff_obj: + with open(target, "rb") as f: + obj_data = f.read() + + return preprocess_objdump_out(restrict, obj_data, out) + + +def preprocess_objdump_out( + restrict: Optional[str], obj_data: Optional[bytes], objdump_out: str +) -> str: + """ + Preprocess the output of objdump into a format that `process()` expects. + This format is suitable for saving to disk with `--write-asm`. + + - Optionally filter the output to a single function (`restrict`) + - Otherwise, strip objdump header (7 lines) + - Prepend .data references ("DATAREF" lines) when working with object files + """ + out = objdump_out + if restrict is not None: - return restrict_to_function(out, restrict) + out = restrict_to_function(out, restrict) + else: + for i in range(7): + out = out[out.find("\n") + 1 :] + out = out.rstrip("\n") + + if obj_data: + out = serialize_data_references(parse_elf_data_references(obj_data)) + out + return out -base_shift = eval_int( - args.base_shift, "Failed to parse --base-shift (-S) argument as an integer." -) - - -def search_map_file(fn_name): - if not mapfile: +def search_map_file( + fn_name: str, project: ProjectSettings +) -> Tuple[Optional[str], Optional[int]]: + if not project.mapfile: fail(f"No map file configured; cannot find function {fn_name}.") try: - with open(mapfile) as f: - lines = f.read().split("\n") + with open(project.mapfile) as f: + contents = f.read() except Exception: - fail(f"Failed to open map file {mapfile} for reading.") + fail(f"Failed to open map file {project.mapfile} for reading.") - try: - cur_objfile = None - ram_to_rom = None - cands = [] - last_line = "" - for line in lines: - if line.startswith(" .text"): - cur_objfile = line.split()[3] - if "load address" in line: - tokens = last_line.split() + line.split() - ram = int(tokens[1], 0) - rom = int(tokens[5], 0) - ram_to_rom = rom - ram - if line.endswith(" " + fn_name): - ram = int(line.split()[0], 0) - if cur_objfile is not None and ram_to_rom is not None: - cands.append((cur_objfile, ram + ram_to_rom)) - last_line = line - except Exception as e: - import traceback + if project.map_format == "gnu": + lines = contents.split("\n") - traceback.print_exc() - fail(f"Internal error while parsing map file") + try: + cur_objfile = None + ram_to_rom = None + cands = [] + last_line = "" + for line in lines: + if line.startswith(" .text"): + cur_objfile = line.split()[3] + if "load address" in line: + tokens = last_line.split() + line.split() + ram = int(tokens[1], 0) + rom = int(tokens[5], 0) + ram_to_rom = rom - ram + if line.endswith(" " + fn_name): + ram = int(line.split()[0], 0) + if cur_objfile is not None and ram_to_rom is not None: + cands.append((cur_objfile, ram + ram_to_rom)) + last_line = line + except Exception as e: + traceback.print_exc() + fail(f"Internal error while parsing map file") - if len(cands) > 1: - fail(f"Found multiple occurrences of function {fn_name} in map file.") - if len(cands) == 1: - return cands[0] + if len(cands) > 1: + fail(f"Found multiple occurrences of function {fn_name} in map file.") + if len(cands) == 1: + return cands[0] + elif project.map_format == "mw": + find = re.findall( + re.compile( + # ram elf rom + r" \S+ \S+ (\S+) (\S+) . " + + fn_name + # object name + + r"(?: \(entry of \.(?:init|text)\))? \t(\S+)" + ), + contents, + ) + if len(find) > 1: + fail(f"Found multiple occurrences of function {fn_name} in map file.") + if len(find) == 1: + rom = int(find[0][1], 16) + objname = find[0][2] + # The metrowerks linker map format does not contain the full object path, + # so we must complete it manually. + objfiles = [ + os.path.join(dirpath, f) + for dirpath, _, filenames in os.walk(project.mw_build_dir) + for f in filenames + if f == objname + ] + if len(objfiles) > 1: + all_objects = "\n".join(objfiles) + fail( + f"Found multiple objects of the same name {objname} in {project.mw_build_dir}, " + f"cannot determine which to diff against: \n{all_objects}" + ) + if len(objfiles) == 1: + objfile = objfiles[0] + # TODO Currently the ram-rom conversion only works for diffing ELF + # executables, but it would likely be more convenient to diff DOLs. + # At this time it is recommended to always use -o when running the diff + # script as this mode does not make use of the ram-rom conversion. + return objfile, rom + else: + fail(f"Linker map format {project.map_format} unrecognised.") return None, None -def dump_objfile(): - if base_shift: +def parse_elf_data_references(data: bytes) -> List[Tuple[int, int, str]]: + e_ident = data[:16] + if e_ident[:4] != b"\x7FELF": + return [] + + SHT_SYMTAB = 2 + SHT_REL = 9 + SHT_RELA = 4 + + is_32bit = e_ident[4] == 1 + is_little_endian = e_ident[5] == 1 + str_end = "<" if is_little_endian else ">" + str_off = "I" if is_32bit else "Q" + sym_size = {"B": 1, "H": 2, "I": 4, "Q": 8} + + def read(spec: str, offset: int) -> Tuple[int, ...]: + spec = spec.replace("P", str_off) + size = struct.calcsize(spec) + return struct.unpack(str_end + spec, data[offset : offset + size]) + + ( + e_type, + e_machine, + e_version, + e_entry, + e_phoff, + e_shoff, + e_flags, + e_ehsize, + e_phentsize, + e_phnum, + e_shentsize, + e_shnum, + e_shstrndx, + ) = read("HHIPPPIHHHHHH", 16) + if e_type != 1: # relocatable + return [] + assert e_shoff != 0 + assert e_shnum != 0 # don't support > 0xFF00 sections + assert e_shstrndx != 0 + + @dataclass + class Section: + sh_name: int + sh_type: int + sh_flags: int + sh_addr: int + sh_offset: int + sh_size: int + sh_link: int + sh_info: int + sh_addralign: int + sh_entsize: int + + sections = [ + Section(*read("IIPPPPIIPP", e_shoff + i * e_shentsize)) for i in range(e_shnum) + ] + shstr = sections[e_shstrndx] + sec_name_offs = [shstr.sh_offset + s.sh_name for s in sections] + sec_names = [data[offset : data.index(b"\0", offset)] for offset in sec_name_offs] + + symtab_sections = [i for i in range(e_shnum) if sections[i].sh_type == SHT_SYMTAB] + assert len(symtab_sections) == 1 + symtab = sections[symtab_sections[0]] + + text_sections = [i for i in range(e_shnum) if sec_names[i] == b".text"] + assert len(text_sections) == 1 + text_section = text_sections[0] + + ret: List[Tuple[int, int, str]] = [] + for s in sections: + if s.sh_type == SHT_REL or s.sh_type == SHT_RELA: + if s.sh_info == text_section: + # Skip .text -> .text references + continue + sec_name = sec_names[s.sh_info].decode("latin1") + sec_base = sections[s.sh_info].sh_offset + for i in range(0, s.sh_size, s.sh_entsize): + if s.sh_type == SHT_REL: + r_offset, r_info = read("PP", s.sh_offset + i) + else: + r_offset, r_info, r_addend = read("PPP", s.sh_offset + i) + + if is_32bit: + r_sym = r_info >> 8 + r_type = r_info & 0xFF + sym_offset = symtab.sh_offset + symtab.sh_entsize * r_sym + st_name, st_value, st_size, st_info, st_other, st_shndx = read( + "IIIBBH", sym_offset + ) + else: + r_sym = r_info >> 32 + r_type = r_info & 0xFFFFFFFF + sym_offset = symtab.sh_offset + symtab.sh_entsize * r_sym + st_name, st_info, st_other, st_shndx, st_value, st_size = read( + "IBBHQQ", sym_offset + ) + if st_shndx == text_section: + if s.sh_type == SHT_REL: + if e_machine == 8 and r_type == 2: # R_MIPS_32 + (r_addend,) = read("I", sec_base + r_offset) + else: + continue + text_offset = (st_value + r_addend) & 0xFFFFFFFF + ret.append((text_offset, r_offset, sec_name)) + return ret + + +def dump_elf( + start: str, + end: Optional[str], + diff_elf_symbol: str, + config: Config, + project: ProjectSettings, +) -> Tuple[str, ObjdumpCommand, ObjdumpCommand]: + if not project.baseimg or not project.myimg: + fail("Missing myimg/baseimg in config.") + if config.base_shift: + fail("--base-shift not compatible with -e") + + start_addr = eval_int(start, "Start address must be an integer expression.") + + if end is not None: + end_addr = eval_int(end, "End address must be an integer expression.") + else: + end_addr = start_addr + config.max_function_size_bytes + + flags1 = [ + f"--start-address={start_addr}", + f"--stop-address={end_addr}", + ] + + flags2 = [ + f"--disassemble={diff_elf_symbol}", + ] + + objdump_flags = ["-drz", "-j", ".text"] + return ( + project.myimg, + (objdump_flags + flags1, project.baseimg, None), + ( + objdump_flags + flags2 + maybe_get_objdump_source_flags(config), + project.myimg, + None, + ), + ) + + +def dump_objfile( + start: str, end: Optional[str], config: Config, project: ProjectSettings +) -> Tuple[str, ObjdumpCommand, ObjdumpCommand]: + if config.base_shift: fail("--base-shift not compatible with -o") - if args.end is not None: + if end is not None: fail("end address not supported together with -o") - if args.start.startswith("0"): + if start.startswith("0"): fail("numerical start address not supported with -o; pass a function name") - objfile, _ = search_map_file(args.start) + objfile, _ = search_map_file(start, project) if not objfile: fail("Not able to find .o file for function.") - if args.make: - run_make(objfile) + if config.make: + run_make(objfile, project) if not os.path.isfile(objfile): fail(f"Not able to find .o file for function: {objfile} is not a file.") @@ -322,58 +1287,145 @@ def dump_objfile(): if not os.path.isfile(refobjfile): fail(f'Please ensure an OK .o file exists at "{refobjfile}".') - objdump_flags = ["-drz"] + objdump_flags = ["-drz", "-j", ".text"] return ( objfile, - (objdump_flags, refobjfile, args.start), - (objdump_flags, objfile, args.start), + (objdump_flags, refobjfile, start), + (objdump_flags + maybe_get_objdump_source_flags(config), objfile, start), ) -def dump_binary(): - if not baseimg or not myimg: +def dump_binary( + start: str, end: Optional[str], config: Config, project: ProjectSettings +) -> Tuple[str, ObjdumpCommand, ObjdumpCommand]: + if not project.baseimg or not project.myimg: fail("Missing myimg/baseimg in config.") - if args.make: - run_make(myimg) - start_addr = eval_int(args.start) + if config.make: + run_make(project.myimg, project) + start_addr = maybe_eval_int(start) if start_addr is None: - _, start_addr = search_map_file(args.start) + _, start_addr = search_map_file(start, project) if start_addr is None: fail("Not able to find function in map file.") - if args.end is not None: - end_addr = eval_int(args.end, "End address must be an integer expression.") + if end is not None: + end_addr = eval_int(end, "End address must be an integer expression.") else: - end_addr = start_addr + MAX_FUNCTION_SIZE_BYTES - objdump_flags = ["-Dz", "-bbinary", "-mmips", "-EB"] + end_addr = start_addr + config.max_function_size_bytes + objdump_flags = ["-Dz", "-bbinary"] + ["-EB" if config.arch.big_endian else "-EL"] flags1 = [ - f"--start-address={start_addr + base_shift}", - f"--stop-address={end_addr + base_shift}", + f"--start-address={start_addr + config.base_shift}", + f"--stop-address={end_addr + config.base_shift}", ] flags2 = [f"--start-address={start_addr}", f"--stop-address={end_addr}"] return ( - myimg, - (objdump_flags + flags1, baseimg, None), - (objdump_flags + flags2, myimg, None), + project.myimg, + (objdump_flags + flags1, project.baseimg, None), + (objdump_flags + flags2, project.myimg, None), ) -# Alignment with ANSI colors is broken, let's fix it. -def ansi_ljust(s, width): - needed = width - ansiwrap.ansilen(s) - if needed > 0: - return s + " " * needed - else: - return s +class DifferenceNormalizer: + def __init__(self, config: Config) -> None: + self.config = config + + def normalize(self, mnemonic: str, row: str) -> str: + """This should be called exactly once for each line.""" + arch = self.config.arch + row = self._normalize_arch_specific(mnemonic, row) + if self.config.ignore_large_imms and mnemonic not in arch.branch_instructions: + row = re.sub(self.config.arch.re_large_imm, "", row) + return row + + def _normalize_arch_specific(self, mnemonic: str, row: str) -> str: + return row -re_int = re.compile(r"[0-9]+") -re_comments = re.compile(r"<.*?>") -re_regs = re.compile(r"\$?\b(a[0-3]|t[0-9]|s[0-8]|at|v[01]|f[12]?[0-9]|f3[01]|fp)\b") -re_sprel = re.compile(r",([0-9]+|0x[0-9a-f]+)\(sp\)") -re_large_imm = re.compile(r"-?[1-9][0-9]{2,}|-?0x[0-9a-f]{3,}") -re_imm = re.compile(r"(\b|-)([0-9]+|0x[0-9a-fA-F]+)\b(?!\(sp)|%(lo|hi)\([^)]*\)") -forbidden = set(string.ascii_letters + "_") -branch_likely_instructions = { +class DifferenceNormalizerAArch64(DifferenceNormalizer): + def __init__(self, config: Config) -> None: + super().__init__(config) + self._adrp_pair_registers: Set[str] = set() + + def _normalize_arch_specific(self, mnemonic: str, row: str) -> str: + if self.config.ignore_addr_diffs: + row = self._normalize_adrp_differences(mnemonic, row) + row = self._normalize_bl(mnemonic, row) + return row + + def _normalize_bl(self, mnemonic: str, row: str) -> str: + if mnemonic != "bl": + return row + + row, _ = split_off_address(row) + return row + "" + + def _normalize_adrp_differences(self, mnemonic: str, row: str) -> str: + """Identifies ADRP + LDR/ADD pairs that are used to access the GOT and + suppresses any immediate differences. + + Whenever an ADRP is seen, the destination register is added to the set of registers + that are part of an ADRP + LDR/ADD pair. Registers are removed from the set as soon + as they are used for an LDR or ADD instruction which completes the pair. + + This method is somewhat crude but should manage to detect most such pairs. + """ + row_parts = row.split("\t", 1) + if mnemonic == "adrp": + self._adrp_pair_registers.add(row_parts[1].strip().split(",")[0]) + row, _ = split_off_address(row) + return row + "" + elif mnemonic == "ldr": + for reg in self._adrp_pair_registers: + # ldr xxx, [reg] + # ldr xxx, [reg, ] + if f", [{reg}" in row_parts[1]: + self._adrp_pair_registers.remove(reg) + return normalize_imms(row, AARCH64_SETTINGS) + elif mnemonic == "add": + for reg in self._adrp_pair_registers: + # add reg, reg, + if row_parts[1].startswith(f"{reg}, {reg}, "): + self._adrp_pair_registers.remove(reg) + return normalize_imms(row, AARCH64_SETTINGS) + + return row + + +class DifferenceNormalizerARM32(DifferenceNormalizer): + def __init__(self, config: Config) -> None: + super().__init__(config) + + def _normalize_arch_specific(self, mnemonic: str, row: str) -> str: + if self.config.ignore_addr_diffs: + row = self._normalize_bl(mnemonic, row) + return row + + def _normalize_bl(self, mnemonic: str, row: str) -> str: + if mnemonic != "bl": + return row + + row, _ = split_off_address(row) + return row + "" + + +@dataclass +class ArchSettings: + name: str + re_int: Pattern[str] + re_comment: Pattern[str] + re_reg: Pattern[str] + re_sprel: Pattern[str] + re_large_imm: Pattern[str] + re_imm: Pattern[str] + branch_instructions: Set[str] + instructions_with_address_immediates: Set[str] + forbidden: Set[str] = field(default_factory=lambda: set(string.ascii_letters + "_")) + arch_flags: List[str] = field(default_factory=list) + branch_likely_instructions: Set[str] = field(default_factory=set) + difference_normalizer: Type[DifferenceNormalizer] = DifferenceNormalizer + big_endian: Optional[bool] = True + + +MIPS_BRANCH_LIKELY_INSTRUCTIONS = { "beql", "bnel", "beqzl", @@ -385,30 +1437,193 @@ branch_likely_instructions = { "bc1tl", "bc1fl", } -branch_instructions = branch_likely_instructions.union( - {"b", "beq", "bne", "beqz", "bnez", "bgez", "bgtz", "blez", "bltz", "bc1t", "bc1f"} +MIPS_BRANCH_INSTRUCTIONS = MIPS_BRANCH_LIKELY_INSTRUCTIONS.union( + { + "b", + "beq", + "bne", + "beqz", + "bnez", + "bgez", + "bgtz", + "blez", + "bltz", + "bc1t", + "bc1f", + } ) -jump_instructions = branch_instructions.union({"jal", "j"}) + +ARM32_PREFIXES = {"b", "bl"} +ARM32_CONDS = { + "", + "eq", + "ne", + "cs", + "cc", + "mi", + "pl", + "vs", + "vc", + "hi", + "ls", + "ge", + "lt", + "gt", + "le", + "al", +} +ARM32_SUFFIXES = {"", ".n", ".w"} +ARM32_BRANCH_INSTRUCTIONS = { + f"{prefix}{cond}{suffix}" + for prefix in ARM32_PREFIXES + for cond in ARM32_CONDS + for suffix in ARM32_SUFFIXES +} + +AARCH64_BRANCH_INSTRUCTIONS = { + "bl", + "b", + "b.eq", + "b.ne", + "b.cs", + "b.hs", + "b.cc", + "b.lo", + "b.mi", + "b.pl", + "b.vs", + "b.vc", + "b.hi", + "b.ls", + "b.ge", + "b.lt", + "b.gt", + "b.le", + "cbz", + "cbnz", + "tbz", + "tbnz", +} + +PPC_BRANCH_INSTRUCTIONS = { + "b", + "beq", + "beq+", + "beq-", + "bne", + "bne+", + "bne-", + "blt", + "blt+", + "blt-", + "ble", + "ble+", + "ble-", + "bdnz", + "bdnz+", + "bdnz-", + "bge", + "bge+", + "bge-", + "bgt", + "bgt+", + "bgt-", +} + +MIPS_SETTINGS = ArchSettings( + name="mips", + re_int=re.compile(r"[0-9]+"), + re_comment=re.compile(r"<.*?>"), + re_reg=re.compile( + r"\$?\b(a[0-3]|t[0-9]|s[0-8]|at|v[01]|f[12]?[0-9]|f3[01]|k[01]|fp|ra|zero)\b" + ), + re_sprel=re.compile(r"(?<=,)([0-9]+|0x[0-9a-f]+)\(sp\)"), + re_large_imm=re.compile(r"-?[1-9][0-9]{2,}|-?0x[0-9a-f]{3,}"), + re_imm=re.compile(r"(\b|-)([0-9]+|0x[0-9a-fA-F]+)\b(?!\(sp)|%(lo|hi)\([^)]*\)"), + arch_flags=["-m", "mips:4300"], + branch_likely_instructions=MIPS_BRANCH_LIKELY_INSTRUCTIONS, + branch_instructions=MIPS_BRANCH_INSTRUCTIONS, + instructions_with_address_immediates=MIPS_BRANCH_INSTRUCTIONS.union({"jal", "j"}), +) + +MIPSEL_SETTINGS = replace(MIPS_SETTINGS, name="mipsel", big_endian=False) + +ARM32_SETTINGS = ArchSettings( + name="arm32", + re_int=re.compile(r"[0-9]+"), + re_comment=re.compile(r"(<.*?>|//.*$)"), + # Includes: + # - General purpose registers: r0..13 + # - Frame pointer registers: lr (r14), pc (r15) + # - VFP/NEON registers: s0..31, d0..31, q0..15, fpscr, fpexc, fpsid + # SP should not be in this list. + re_reg=re.compile( + r"\$?\b([rq][0-9]|[rq]1[0-5]|pc|lr|[ds][12]?[0-9]|[ds]3[01]|fp(scr|exc|sid))\b" + ), + re_sprel=re.compile(r"sp, #-?(0x[0-9a-fA-F]+|[0-9]+)\b"), + re_large_imm=re.compile(r"-?[1-9][0-9]{2,}|-?0x[0-9a-f]{3,}"), + re_imm=re.compile(r"(?|//.*$)"), + # GPRs and FP registers: X0-X30, W0-W30, [DSHQ]0..31 + # The zero registers and SP should not be in this list. + re_reg=re.compile(r"\$?\b([dshq][12]?[0-9]|[dshq]3[01]|[xw][12]?[0-9]|[xw]30)\b"), + re_sprel=re.compile(r"sp, #-?(0x[0-9a-fA-F]+|[0-9]+)\b"), + re_large_imm=re.compile(r"-?[1-9][0-9]{2,}|-?0x[0-9a-f]{3,}"), + re_imm=re.compile(r"(?|//.*$)"), + re_reg=re.compile(r"\$?\b([rf][0-9]+)\b"), + re_sprel=re.compile(r"(?<=,)(-?[0-9]+|-?0x[0-9a-f]+)\(r1\)"), + re_large_imm=re.compile(r"-?[1-9][0-9]{2,}|-?0x[0-9a-f]{3,}"), + re_imm=re.compile(r"(\b|-)([0-9]+|0x[0-9a-fA-F]+)\b(?!\(r1)|[^@]*@(ha|h|lo)"), + branch_instructions=PPC_BRANCH_INSTRUCTIONS, + instructions_with_address_immediates=PPC_BRANCH_INSTRUCTIONS.union({"bl"}), +) + +ARCH_SETTINGS = [ + MIPS_SETTINGS, + MIPSEL_SETTINGS, + ARM32_SETTINGS, + AARCH64_SETTINGS, + PPC_SETTINGS, +] -def hexify_int(row, pat): +def hexify_int(row: str, pat: Match[str], arch: ArchSettings) -> str: full = pat.group(0) if len(full) <= 1: # leave one-digit ints alone return full start, end = pat.span() - if start and row[start - 1] in forbidden: + if start and row[start - 1] in arch.forbidden: return full - if end < len(row) and row[end] in forbidden: + if end < len(row) and row[end] in arch.forbidden: return full return hex(int(full)) -def parse_relocated_line(line): - try: - ind2 = line.rindex(",") - except ValueError: - ind2 = line.rindex("\t") +def parse_relocated_line(line: str) -> Tuple[str, str, str]: + for c in ",\t ": + if c in line: + ind2 = line.rindex(c) + break + else: + raise Exception(f"failed to parse relocated line: {line}") before = line[: ind2 + 1] after = line[ind2 + 1 :] ind2 = after.find("(") @@ -421,11 +1636,21 @@ def parse_relocated_line(line): return before, imm, after -def process_reloc(row, prev): +def process_mips_reloc(row: str, prev: str, arch: ArchSettings) -> str: before, imm, after = parse_relocated_line(prev) repl = row.split()[-1] if imm != "0": - if before.strip() == "jal" and not imm.startswith("0x"): + # MIPS uses relocations with addends embedded in the code as immediates. + # If there is an immediate, show it as part of the relocation. Ideally + # we'd show this addend in both %lo/%hi, but annoyingly objdump's output + # doesn't include enough information to pair up %lo's and %hi's... + # TODO: handle unambiguous cases where all addends for a symbol are the + # same, or show "+???". + mnemonic = prev.split()[0] + if ( + mnemonic in arch.instructions_with_address_immediates + and not imm.startswith("0x") + ): imm = "0x" + imm repl += "+" + imm if int(imm, 0) > 0 else imm if "R_MIPS_LO16" in row: @@ -435,120 +1660,260 @@ def process_reloc(row, prev): # correct addend for each, but objdump doesn't give us the order of # the relocations, so we can't find the right LO16. :( repl = f"%hi({repl})" + elif "R_MIPS_26" in row: + # Function calls + pass + elif "R_MIPS_PC16" in row: + # Branch to glabel. This gives confusing output, but there's not much + # we can do here. + pass else: - assert "R_MIPS_26" in row, f"unknown relocation type '{row}'" + assert False, f"unknown relocation type '{row}' for line '{prev}'" return before + repl + after -def process(lines): - mnemonics = [] - diff_rows = [] - rows_with_imms = [] +def process_ppc_reloc(row: str, prev: str) -> str: + assert any( + r in row for r in ["R_PPC_REL24", "R_PPC_ADDR16", "R_PPC_EMB_SDA21"] + ), f"unknown relocation type '{row}' for line '{prev}'" + before, imm, after = parse_relocated_line(prev) + repl = row.split()[-1] + if "R_PPC_REL24" in row: + # function calls + pass + elif "R_PPC_ADDR16_HI" in row: + # absolute hi of addr + repl = f"{repl}@h" + elif "R_PPC_ADDR16_HA" in row: + # adjusted hi of addr + repl = f"{repl}@ha" + elif "R_PPC_ADDR16_LO" in row: + # lo of addr + repl = f"{repl}@l" + elif "R_PPC_ADDR16" in row: + # 16-bit absolute addr + if "+0x7" in repl: + # remove the very large addends as they are an artifact of (label-_SDA(2)_BASE_) + # computations and are unimportant in a diff setting. + if int(repl.split("+")[1], 16) > 0x70000000: + repl = repl.split("+")[0] + elif "R_PPC_EMB_SDA21" in row: + # small data area + pass + return before + repl + after + + +def process_arm_reloc(row: str, prev: str, arch: ArchSettings) -> str: + before, imm, after = parse_relocated_line(prev) + repl = row.split()[-1] + return before + repl + after + + +def pad_mnemonic(line: str) -> str: + if "\t" not in line: + return line + mn, args = line.split("\t", 1) + return f"{mn:<7s} {args}" + + +@dataclass +class Line: + mnemonic: str + diff_row: str + original: str + normalized_original: str + scorable_line: str + line_num: Optional[int] = None + branch_target: Optional[int] = None + source_filename: Optional[str] = None + source_line_num: Optional[int] = None + source_lines: List[str] = field(default_factory=list) + comment: Optional[str] = None + + +def process(dump: str, config: Config) -> List[Line]: + arch = config.arch + normalizer = arch.difference_normalizer(config) skip_next = False - originals = [] - line_nums = [] - branch_targets = [] - if not args.diff_obj: - lines = lines[7:] - if lines and not lines[-1]: - lines.pop() + source_lines = [] + source_filename = None + source_line_num = None - for row in lines: - if args.diff_obj and (">:" in row or not row): + i = 0 + num_instr = 0 + data_refs: Dict[int, Dict[str, List[int]]] = defaultdict(lambda: defaultdict(list)) + output: List[Line] = [] + stop_after_delay_slot = False + lines = dump.split("\n") + while i < len(lines): + row = lines[i] + i += 1 + + if not row: continue - if "R_MIPS_" in row: - # N.B. Don't transform the diff rows, they already ignore immediates - # if diff_rows[-1] != '': - # diff_rows[-1] = process_reloc(row, rows_with_imms[-1]) - originals[-1] = process_reloc(row, originals[-1]) + if re.match(r"^[0-9a-f]+ <.*>:$", row): continue - row = re.sub(re_comments, "", row) + if row.startswith("DATAREF"): + parts = row.split(" ", 3) + text_offset = int(parts[1]) + from_offset = int(parts[2]) + from_section = parts[3] + data_refs[text_offset][from_section].append(from_offset) + continue + + if config.diff_obj and num_instr >= config.max_function_size_lines: + output.append( + Line( + mnemonic="...", + diff_row="...", + original="...", + normalized_original="...", + scorable_line="...", + ) + ) + break + + if not re.match(r"^ +[0-9a-f]+:\t", row): + # This regex is conservative, and assumes the file path does not contain "weird" + # characters like colons, tabs, or angle brackets. + if re.match( + r"^[^ \t<>:][^\t<>:]*:[0-9]+( \(discriminator [0-9]+\))?$", row + ): + source_filename, _, tail = row.rpartition(":") + source_line_num = int(tail.partition(" ")[0]) + source_lines.append(row) + continue + + m_comment = re.search(arch.re_comment, row) + comment = m_comment[0] if m_comment else None + row = re.sub(arch.re_comment, "", row) row = row.rstrip() tabs = row.split("\t") row = "\t".join(tabs[2:]) - line_num = tabs[0].strip() - row_parts = row.split("\t", 1) + line_num = eval_line_num(tabs[0].strip()) + + if line_num in data_refs: + refs = data_refs[line_num] + ref_str = "; ".join( + section_name + "+" + ",".join(hex(off) for off in offs) + for section_name, offs in refs.items() + ) + output.append( + Line( + mnemonic="", + diff_row="", + original=ref_str, + normalized_original=ref_str, + scorable_line="", + ) + ) + + if "\t" in row: + row_parts = row.split("\t", 1) + else: + # powerpc-eabi-objdump doesn't use tabs + row_parts = [part.lstrip() for part in row.split(" ", 1)] mnemonic = row_parts[0].strip() - if mnemonic not in jump_instructions: - row = re.sub(re_int, lambda s: hexify_int(row, s), row) + + if mnemonic not in arch.instructions_with_address_immediates: + row = re.sub(arch.re_int, lambda m: hexify_int(row, m, arch), row) + + # Let 'original' be 'row' with relocations applied, while we continue + # transforming 'row' into a coarser version that ignores registers and + # immediates. original = row + + while i < len(lines): + reloc_row = lines[i] + if "R_AARCH64_" in reloc_row: + # TODO: handle relocation + pass + elif "R_MIPS_" in reloc_row: + original = process_mips_reloc(reloc_row, original, arch) + elif "R_PPC_" in reloc_row: + original = process_ppc_reloc(reloc_row, original) + elif "R_ARM_" in reloc_row: + original = process_arm_reloc(reloc_row, original, arch) + else: + break + i += 1 + + normalized_original = normalizer.normalize(mnemonic, original) + + scorable_line = normalized_original + if not config.score_stack_differences: + scorable_line = re.sub(arch.re_sprel, "addr(sp)", scorable_line) + if mnemonic in arch.branch_instructions: + # Replace the final argument with "" + scorable_line = re.sub(r"[^, \t]+$", "", scorable_line) + if skip_next: skip_next = False row = "" mnemonic = "" - if mnemonic in branch_likely_instructions: + scorable_line = "" + if mnemonic in arch.branch_likely_instructions: skip_next = True - row = re.sub(re_regs, "", row) - row = re.sub(re_sprel, ",addr(sp)", row) + + row = re.sub(arch.re_reg, "", row) + row = re.sub(arch.re_sprel, "addr(sp)", row) row_with_imm = row - if mnemonic in jump_instructions: + if mnemonic in arch.instructions_with_address_immediates: row = row.strip() - row, _ = split_off_branch(row) + row, _ = split_off_address(row) row += "" else: - row = re.sub(re_imm, "", row) + row = normalize_imms(row, arch) - mnemonics.append(mnemonic) - rows_with_imms.append(row_with_imm) - diff_rows.append(row) - originals.append(original) - line_nums.append(line_num) - if mnemonic in branch_instructions: - target = row_parts[1].strip().split(",")[-1] - if mnemonic in branch_likely_instructions: - target = hex(int(target, 16) - 4)[2:] - branch_targets.append(target) - else: - branch_targets.append(None) - if args.stop_jrra and mnemonic == "jr" and row_parts[1].strip() == "ra": + branch_target = None + if mnemonic in arch.branch_instructions: + branch_target = int(row_parts[1].strip().split(",")[-1], 16) + if mnemonic in arch.branch_likely_instructions: + branch_target -= 4 + + output.append( + Line( + mnemonic=mnemonic, + diff_row=row, + original=original, + normalized_original=normalized_original, + scorable_line=scorable_line, + line_num=line_num, + branch_target=branch_target, + source_filename=source_filename, + source_line_num=source_line_num, + source_lines=source_lines, + comment=comment, + ) + ) + num_instr += 1 + source_lines = [] + + if config.stop_jrra and mnemonic == "jr" and row_parts[1].strip() == "ra": + stop_after_delay_slot = True + elif stop_after_delay_slot: break - # Cleanup whitespace - originals = [original.strip() for original in originals] - originals = [ - "".join(f"{o:<8s}" for o in original.split("\t")) for original in originals - ] - # return diff_rows, diff_rows, line_nums - return mnemonics, diff_rows, originals, line_nums, branch_targets + return output -def format_single_line_diff(line1, line2, column_width): - return f"{ansi_ljust(line1,column_width)}{ansi_ljust(line2,column_width)}" +def normalize_imms(row: str, arch: ArchSettings) -> str: + return re.sub(arch.re_imm, "", row) -class SymbolColorer: - def __init__(self, base_index): - self.color_index = base_index - self.symbol_colors = {} - - def color_symbol(self, s, t=None): - try: - color = self.symbol_colors[s] - except: - color = COLOR_ROTATION[self.color_index % len(COLOR_ROTATION)] - self.color_index += 1 - self.symbol_colors[s] = color - t = t or s - return f"{color}{t}{Fore.RESET}" +def normalize_stack(row: str, arch: ArchSettings) -> str: + return re.sub(arch.re_sprel, "addr(sp)", row) -def maybe_normalize_large_imms(row): - if args.ignore_large_imms: - row = re.sub(re_large_imm, "", row) - return row +def imm_matches_everything(row: str, arch: ArchSettings) -> bool: + # (this should probably be arch-specific) + return "(." in row -def normalize_imms(row): - return re.sub(re_imm, "", row) - - -def normalize_stack(row): - return re.sub(re_sprel, ",addr(sp)", row) - - -def split_off_branch(line): +def split_off_address(line: str) -> Tuple[str, str]: + """Split e.g. 'beqz $r0,1f0' into 'beqz $r0,' and '1f0'.""" parts = line.split(",") if len(parts) < 2: parts = line.split(None, 1) @@ -556,39 +1921,18 @@ def split_off_branch(line): return line[:off], line[off:] -def color_imms(out1, out2): - g1 = [] - g2 = [] - re.sub(re_imm, lambda s: g1.append(s.group()), out1) - re.sub(re_imm, lambda s: g2.append(s.group()), out2) - if len(g1) == len(g2): - diffs = [x != y for (x, y) in zip(g1, g2)] - it = iter(diffs) - - def maybe_color(s): - return f"{Fore.LIGHTBLUE_EX}{s}{Style.RESET_ALL}" if next(it) else s - - out1 = re.sub(re_imm, lambda s: maybe_color(s.group()), out1) - it = iter(diffs) - out2 = re.sub(re_imm, lambda s: maybe_color(s.group()), out2) - return out1, out2 - - -def color_branch_imms(br1, br2): - if br1 != br2: - br1 = f"{Fore.LIGHTBLUE_EX}{br1}{Style.RESET_ALL}" - br2 = f"{Fore.LIGHTBLUE_EX}{br2}{Style.RESET_ALL}" - return br1, br2 - - -def diff_sequences_difflib(seq1, seq2): +def diff_sequences_difflib( + seq1: List[str], seq2: List[str] +) -> List[Tuple[str, int, int, int, int]]: differ = difflib.SequenceMatcher(a=seq1, b=seq2, autojunk=False) return differ.get_opcodes() -def diff_sequences(seq1, seq2): +def diff_sequences( + seq1: List[str], seq2: List[str], algorithm: str +) -> List[Tuple[str, int, int, int, int]]: if ( - args.algorithm != "levenshtein" + algorithm != "levenshtein" or len(seq1) * len(seq2) > 4 * 10 ** 8 or len(seq1) + len(seq2) >= 0x110000 ): @@ -596,9 +1940,9 @@ def diff_sequences(seq1, seq2): # The Levenshtein library assumes that we compare strings, not lists. Convert. # (Per the check above we know we have fewer than 0x110000 unique elements, so chr() works.) - remapping = {} + remapping: Dict[str, str] = {} - def remap(seq): + def remap(seq: List[str]) -> str: seq = seq[:] for i in range(len(seq)): val = remapping.get(seq[i]) @@ -608,215 +1952,598 @@ def diff_sequences(seq1, seq2): seq[i] = val return "".join(seq) - seq1 = remap(seq1) - seq2 = remap(seq2) - return Levenshtein.opcodes(seq1, seq2) + rem1 = remap(seq1) + rem2 = remap(seq2) + import Levenshtein + + ret: List[Tuple[str, int, int, int, int]] = Levenshtein.opcodes(rem1, rem2) + return ret -def do_diff(basedump, mydump): - asm_lines1 = basedump.split("\n") - asm_lines2 = mydump.split("\n") - - output = [] - - # TODO: status line? - # output.append(sha1sum(mydump)) - - mnemonics1, asm_lines1, originals1, line_nums1, branch_targets1 = process( - asm_lines1 - ) - mnemonics2, asm_lines2, originals2, line_nums2, branch_targets2 = process( - asm_lines2 - ) - - sc1 = SymbolColorer(0) - sc2 = SymbolColorer(0) - sc3 = SymbolColorer(4) - sc4 = SymbolColorer(4) - sc5 = SymbolColorer(0) - sc6 = SymbolColorer(0) - bts1 = set() - bts2 = set() - - if args.show_branches: - for (bts, btset, sc) in [ - (branch_targets1, bts1, sc5), - (branch_targets2, bts2, sc6), - ]: - for bt in bts: - if bt is not None: - btset.add(bt + ":") - sc.color_symbol(bt + ":") - - for (tag, i1, i2, j1, j2) in diff_sequences(mnemonics1, mnemonics2): - lines1 = asm_lines1[i1:i2] - lines2 = asm_lines2[j1:j2] - - for k, (line1, line2) in enumerate(itertools.zip_longest(lines1, lines2)): +def diff_lines( + lines1: List[Line], + lines2: List[Line], + algorithm: str, +) -> List[Tuple[Optional[Line], Optional[Line]]]: + ret = [] + for (tag, i1, i2, j1, j2) in diff_sequences( + [line.mnemonic for line in lines1], + [line.mnemonic for line in lines2], + algorithm, + ): + for line1, line2 in itertools.zip_longest(lines1[i1:i2], lines2[j1:j2]): if tag == "replace": if line1 is None: tag = "insert" elif line2 is None: tag = "delete" - - try: - original1 = originals1[i1 + k] - line_num1 = line_nums1[i1 + k] - except: - original1 = "" - line_num1 = "" - try: - original2 = originals2[j1 + k] - line_num2 = line_nums2[j1 + k] - except: - original2 = "" - line_num2 = "" - - has1 = has2 = True - line_color1 = line_color2 = sym_color = Fore.RESET - line_prefix = " " - if line1 == line2: - if not line1: - has1 = has2 = False - if maybe_normalize_large_imms(original1) == maybe_normalize_large_imms( - original2 - ): - out1 = original1 - out2 = original2 - elif line1 == "": - out1 = f"{Style.DIM}{original1}" - out2 = f"{Style.DIM}{original2}" - else: - mnemonic = original1.split()[0] - out1, out2 = original1, original2 - branch1 = branch2 = "" - if mnemonic in jump_instructions: - out1, branch1 = split_off_branch(original1) - out2, branch2 = split_off_branch(original2) - branchless1 = out1 - branchless2 = out2 - out1, out2 = color_imms(out1, out2) - branch1, branch2 = color_branch_imms(branch1, branch2) - out1 += branch1 - out2 += branch2 - if normalize_imms(branchless1) == normalize_imms(branchless2): - # only imms differences - sym_color = Fore.LIGHTBLUE_EX - line_prefix = "i" - else: - out1 = re.sub( - re_sprel, - lambda s: "," + sc3.color_symbol(s.group()[1:]), - out1, - ) - out2 = re.sub( - re_sprel, - lambda s: "," + sc4.color_symbol(s.group()[1:]), - out2, - ) - if normalize_stack(branchless1) == normalize_stack(branchless2): - # only stack differences (luckily stack and imm - # differences can't be combined in MIPS, so we - # don't have to think about that case) - sym_color = Fore.YELLOW - line_prefix = "s" - else: - # regs differences and maybe imms as well - out1 = re.sub( - re_regs, lambda s: sc1.color_symbol(s.group()), out1 - ) - out2 = re.sub( - re_regs, lambda s: sc2.color_symbol(s.group()), out2 - ) - line_color1 = line_color2 = sym_color = Fore.YELLOW - line_prefix = "r" - elif tag in ["replace", "equal"]: - line_prefix = "|" - line_color1 = Fore.LIGHTBLUE_EX - line_color2 = Fore.LIGHTBLUE_EX - sym_color = Fore.LIGHTBLUE_EX - out1 = original1 - out2 = original2 - elif tag == "delete": - line_prefix = "<" - line_color1 = line_color2 = sym_color = Fore.RED - has2 = False - out1 = original1 - out2 = "" elif tag == "insert": - line_prefix = ">" - line_color1 = line_color2 = sym_color = Fore.GREEN - has1 = False - out1 = "" - out2 = original2 + assert line1 is None + elif tag == "delete": + assert line2 is None + ret.append((line1, line2)) - in_arrow1 = " " - in_arrow2 = " " - out_arrow1 = "" - out_arrow2 = "" - line_num1 = line_num1 if has1 else "" - line_num2 = line_num2 if has2 else "" + return ret - if sym_color == line_color2: - line_color2 = "" - if args.show_branches and has1: - if line_num1 in bts1: - in_arrow1 = sc5.color_symbol(line_num1, "~>") + line_color1 - if branch_targets1[i1 + k] is not None: - out_arrow1 = " " + sc5.color_symbol( - branch_targets1[i1 + k] + ":", "~>" - ) - if args.show_branches and has2: - if line_num2 in bts2: - in_arrow2 = sc6.color_symbol(line_num2, "~>") + line_color2 - if branch_targets2[j1 + k] is not None: - out_arrow2 = " " + sc6.color_symbol( - branch_targets2[j1 + k] + ":", "~>" +def score_diff_lines( + lines: List[Tuple[Optional[Line], Optional[Line]]], config: Config +) -> int: + # This logic is copied from `scorer.py` from the decomp permuter project + # https://github.com/simonlindholm/decomp-permuter/blob/main/src/scorer.py + score = 0 + deletions = [] + insertions = [] + + def lo_hi_match(old: str, new: str) -> bool: + # TODO: Make this arch-independent, like `imm_matches_everything()` + old_lo = old.find("%lo") + old_hi = old.find("%hi") + new_lo = new.find("%lo") + new_hi = new.find("%hi") + + if old_lo != -1 and new_lo != -1: + old_idx = old_lo + new_idx = new_lo + elif old_hi != -1 and new_hi != -1: + old_idx = old_hi + new_idx = new_hi + else: + return False + + if old[:old_idx] != new[:new_idx]: + return False + + old_inner = old[old_idx + 4 : -1] + new_inner = new[new_idx + 4 : -1] + return old_inner.startswith(".") or new_inner.startswith(".") + + def diff_sameline(old: str, new: str) -> None: + nonlocal score + if old == new: + return + + if lo_hi_match(old, new): + return + + ignore_last_field = False + if config.score_stack_differences: + oldsp = re.search(config.arch.re_sprel, old) + newsp = re.search(config.arch.re_sprel, new) + if oldsp and newsp: + oldrel = int(oldsp.group(1) or "0", 0) + newrel = int(newsp.group(1) or "0", 0) + score += abs(oldrel - newrel) * config.penalty_stackdiff + ignore_last_field = True + + # Probably regalloc difference, or signed vs unsigned + + # Compare each field in order + newfields, oldfields = new.split(","), old.split(",") + if ignore_last_field: + newfields = newfields[:-1] + oldfields = oldfields[:-1] + for nf, of in zip(newfields, oldfields): + if nf != of: + score += config.penalty_regalloc + # Penalize any extra fields + score += abs(len(newfields) - len(oldfields)) * config.penalty_regalloc + + def diff_insert(line: str) -> None: + # Reordering or totally different codegen. + # Defer this until later when we can tell. + insertions.append(line) + + def diff_delete(line: str) -> None: + deletions.append(line) + + # Find the end of the last long streak of matching mnemonics, if it looks + # like the objdump output was truncated. This is used to skip scoring + # misaligned lines at the end of the diff. + last_mismatch = -1 + max_index = None + lines_were_truncated = False + for index, (line1, line2) in enumerate(lines): + if (line1 and line1.original == "...") or (line2 and line2.original == "..."): + lines_were_truncated = True + if line1 and line2 and line1.mnemonic == line2.mnemonic: + if index - last_mismatch >= 50: + max_index = index + else: + last_mismatch = index + if not lines_were_truncated: + max_index = None + + for index, (line1, line2) in enumerate(lines): + if max_index is not None and index > max_index: + break + if line1 and line2 and line1.mnemonic == line2.mnemonic: + diff_sameline(line1.scorable_line, line2.scorable_line) + else: + if line1: + diff_delete(line1.scorable_line) + if line2: + diff_insert(line2.scorable_line) + + insertions_co = Counter(insertions) + deletions_co = Counter(deletions) + for item in insertions_co + deletions_co: + ins = insertions_co[item] + dels = deletions_co[item] + common = min(ins, dels) + score += ( + (ins - common) * config.penalty_insertion + + (dels - common) * config.penalty_deletion + + config.penalty_reordering * common + ) + + return score + + +@dataclass(frozen=True) +class OutputLine: + base: Optional[Text] = field(compare=False) + fmt2: Text = field(compare=False) + key2: Optional[str] + boring: bool = field(compare=False) + is_data_ref: bool = field(compare=False) + line1: Optional[Line] = field(compare=False) + line2: Optional[Line] = field(compare=False) + + +@dataclass(frozen=True) +class Diff: + lines: List[OutputLine] + score: int + + +def do_diff(lines1: List[Line], lines2: List[Line], config: Config) -> Diff: + if config.show_source: + import cxxfilt + arch = config.arch + fmt = config.formatter + output: List[OutputLine] = [] + + sc1 = symbol_formatter("base-reg", 0) + sc2 = symbol_formatter("my-reg", 0) + sc3 = symbol_formatter("base-stack", 4) + sc4 = symbol_formatter("my-stack", 4) + sc5 = symbol_formatter("base-branch", 0) + sc6 = symbol_formatter("my-branch", 0) + bts1: Set[int] = set() + bts2: Set[int] = set() + + if config.show_branches: + for (lines, btset, sc) in [ + (lines1, bts1, sc5), + (lines2, bts2, sc6), + ]: + for line in lines: + bt = line.branch_target + if bt is not None: + btset.add(bt) + sc(str(bt)) + + diffed_lines = diff_lines(lines1, lines2, config.algorithm) + score = score_diff_lines(diffed_lines, config) + + line_num_base = -1 + line_num_offset = 0 + line_num_2to1 = {} + for (line1, line2) in diffed_lines: + if line1 is not None and line1.line_num is not None: + line_num_base = line1.line_num + line_num_offset = 0 + else: + line_num_offset += 1 + if line2 is not None and line2.line_num is not None: + line_num_2to1[line2.line_num] = (line_num_base, line_num_offset) + + for (line1, line2) in diffed_lines: + line_color1 = line_color2 = sym_color = BasicFormat.NONE + line_prefix = " " + is_data_ref = False + out1 = Text() if not line1 else Text(pad_mnemonic(line1.original)) + out2 = Text() if not line2 else Text(pad_mnemonic(line2.original)) + if line1 and line2 and line1.diff_row == line2.diff_row: + if line1.diff_row == "": + if line1.normalized_original != line2.normalized_original: + line_prefix = "i" + sym_color = BasicFormat.DIFF_CHANGE + out1 = out1.reformat(sym_color) + out2 = out2.reformat(sym_color) + is_data_ref = True + elif ( + line1.normalized_original == line2.normalized_original + and line2.branch_target is None + ): + # Fast path: no coloring needed. We don't include branch instructions + # in this case because we need to check that their targets line up in + # the diff, and don't just happen to have the are the same address + # by accident. + pass + elif line1.diff_row == "": + # Don't draw attention to differing branch-likely delay slots: they + # typically mirror the branch destination - 1 so the real difference + # is elsewhere. Still, do mark them as different to avoid confusion. + # No need to consider branches because delay slots can't branch. + out1 = out1.reformat(BasicFormat.DELAY_SLOT) + out2 = out2.reformat(BasicFormat.DELAY_SLOT) + else: + mnemonic = line1.original.split()[0] + branchless1, address1 = out1.plain(), "" + branchless2, address2 = out2.plain(), "" + if mnemonic in arch.instructions_with_address_immediates: + branchless1, address1 = split_off_address(branchless1) + branchless2, address2 = split_off_address(branchless2) + + out1 = Text(branchless1) + out2 = Text(branchless2) + out1, out2 = format_fields( + arch.re_imm, out1, out2, lambda _: BasicFormat.IMMEDIATE + ) + + if line2.branch_target is not None: + target = line2.branch_target + line2_target = line_num_2to1.get(line2.branch_target) + if line2_target is None: + # If the target is outside the disassembly, extrapolate. + # This only matters near the bottom. + assert line2.line_num is not None + line2_line = line_num_2to1[line2.line_num] + line2_target = (line2_line[0] + (target - line2.line_num), 0) + + # Set the key for three-way diffing to a normalized version. + norm2, norm_branch2 = split_off_address(line2.normalized_original) + if norm_branch2 != "": + line2.normalized_original = norm2 + str(line2_target) + same_target = line2_target == (line1.branch_target, 0) + else: + # Do a naive comparison for non-branches (e.g. function calls). + same_target = address1 == address2 + + if normalize_imms(branchless1, arch) == normalize_imms( + branchless2, arch + ): + if imm_matches_everything(branchless2, arch): + # ignore differences due to %lo(.rodata + ...) vs symbol + out1 = out1.reformat(BasicFormat.NONE) + out2 = out2.reformat(BasicFormat.NONE) + elif line2.branch_target is not None and same_target: + # same-target branch, don't color + pass + else: + # must have an imm difference (or else we would have hit the + # fast path) + sym_color = BasicFormat.IMMEDIATE + line_prefix = "i" + else: + out1, out2 = format_fields(arch.re_sprel, out1, out2, sc3, sc4) + if normalize_stack(branchless1, arch) == normalize_stack( + branchless2, arch + ): + # only stack differences (luckily stack and imm + # differences can't be combined in MIPS, so we + # don't have to think about that case) + sym_color = BasicFormat.STACK + line_prefix = "s" + else: + # reg differences and maybe imm as well + out1, out2 = format_fields(arch.re_reg, out1, out2, sc1, sc2) + line_color1 = line_color2 = sym_color = BasicFormat.REGISTER + line_prefix = "r" + + if same_target: + address_imm_fmt = BasicFormat.NONE + else: + address_imm_fmt = BasicFormat.IMMEDIATE + out1 += Text(address1, address_imm_fmt) + out2 += Text(address2, address_imm_fmt) + elif line1 and line2: + line_prefix = "|" + line_color1 = line_color2 = sym_color = BasicFormat.DIFF_CHANGE + out1 = out1.reformat(line_color1) + out2 = out2.reformat(line_color2) + elif line1: + line_prefix = "<" + line_color1 = sym_color = BasicFormat.DIFF_REMOVE + out1 = out1.reformat(line_color1) + out2 = Text() + elif line2: + line_prefix = ">" + line_color2 = sym_color = BasicFormat.DIFF_ADD + out1 = Text() + out2 = out2.reformat(line_color2) + + if config.show_source and line2 and line2.comment: + out2 += f" {line2.comment}" + + def format_part( + out: Text, + line: Optional[Line], + line_color: Format, + btset: Set[int], + sc: FormatFunction, + ) -> Optional[Text]: + if line is None: + return None + if line.line_num is None: + return out + in_arrow = Text(" ") + out_arrow = Text() + if config.show_branches: + if line.line_num in btset: + in_arrow = Text("~>", sc(str(line.line_num))) + if line.branch_target is not None: + out_arrow = " " + Text("~>", sc(str(line.branch_target))) + formatted_line_num = Text(hex(line.line_num)[2:] + ":", line_color) + return formatted_line_num + " " + in_arrow + " " + out + out_arrow + + part1 = format_part(out1, line1, line_color1, bts1, sc5) + part2 = format_part(out2, line2, line_color2, bts2, sc6) + + if config.show_source and line2: + for source_line in line2.source_lines: + line_format = BasicFormat.SOURCE_OTHER + if config.source_old_binutils: + if source_line and re.fullmatch(".*\.c(?:pp)?:\d+", source_line): + line_format = BasicFormat.SOURCE_FILENAME + elif source_line and source_line.endswith("():"): + line_format = BasicFormat.SOURCE_FUNCTION + try: + source_line = cxxfilt.demangle( + source_line[:-3], external_only=False + ) + except: + pass + else: + # File names and function names + if source_line and source_line[0] != "│": + line_format = BasicFormat.SOURCE_FILENAME + # Function names + if source_line.endswith("():"): + line_format = BasicFormat.SOURCE_FUNCTION + try: + source_line = cxxfilt.demangle( + source_line[:-3], external_only=False + ) + except: + pass + padding = " " * 7 if config.show_line_numbers else " " * 2 + output.append( + OutputLine( + base=None, + fmt2=padding + Text(source_line, line_format), + key2=source_line, + boring=True, + is_data_ref=False, + line1=None, + line2=None, ) + ) - out1 = f"{line_color1}{line_num1} {in_arrow1} {out1}{Style.RESET_ALL}{out_arrow1}" - out2 = f"{line_color2}{line_num2} {in_arrow2} {out2}{Style.RESET_ALL}{out_arrow2}" - mid = f"{sym_color}{line_prefix} " - output.append(format_single_line_diff(out1, mid + out2, args.column_width)) + key2 = line2.normalized_original if line2 else None + boring = False + if line_prefix == " ": + boring = True + elif config.compress and config.compress.same_instr and line_prefix in "irs": + boring = True - return output[args.skip_lines :] + if config.show_line_numbers: + if line2 and line2.source_line_num is not None: + num_color = ( + BasicFormat.SOURCE_LINE_NUM + if sym_color == BasicFormat.NONE + else sym_color + ) + num2 = Text(f"{line2.source_line_num:5}", num_color) + else: + num2 = Text(" " * 5) + else: + num2 = Text() + + fmt2 = Text(line_prefix, sym_color) + num2 + " " + (part2 or Text()) + + output.append( + OutputLine( + base=part1, + fmt2=fmt2, + key2=key2, + boring=boring, + is_data_ref=is_data_ref, + line1=line1, + line2=line2, + ) + ) + + return Diff(lines=output, score=score) -def debounced_fs_watch(targets, outq, debounce_delay): +def chunk_diff_lines( + diff: List[OutputLine], +) -> List[Union[List[OutputLine], OutputLine]]: + """Chunk a diff into an alternating list like A B A B ... A, where: + * A is a List[OutputLine] of insertions, + * B is a single non-insertion OutputLine, with .base != None.""" + cur_right: List[OutputLine] = [] + chunks: List[Union[List[OutputLine], OutputLine]] = [] + for output_line in diff: + if output_line.base is not None: + chunks.append(cur_right) + chunks.append(output_line) + cur_right = [] + else: + cur_right.append(output_line) + chunks.append(cur_right) + return chunks + + +def compress_matching( + li: List[Tuple[OutputLine, ...]], context: int +) -> List[Tuple[OutputLine, ...]]: + ret: List[Tuple[OutputLine, ...]] = [] + matching_streak: List[Tuple[OutputLine, ...]] = [] + context = max(context, 0) + + def flush_matching() -> None: + if len(matching_streak) <= 2 * context + 1: + ret.extend(matching_streak) + else: + ret.extend(matching_streak[:context]) + skipped = len(matching_streak) - 2 * context + filler = OutputLine( + base=Text(f"<{skipped} lines>", BasicFormat.SOURCE_OTHER), + fmt2=Text(), + key2=None, + boring=False, + is_data_ref=False, + line1=None, + line2=None, + ) + columns = len(matching_streak[0]) + ret.append(tuple([filler] * columns)) + if context > 0: + ret.extend(matching_streak[-context:]) + matching_streak.clear() + + for line in li: + if line[0].boring: + matching_streak.append(line) + else: + flush_matching() + ret.append(line) + + flush_matching() + return ret + + +def align_diffs( + old_diff: Diff, new_diff: Diff, config: Config +) -> Tuple[TableMetadata, List[Tuple[OutputLine, ...]]]: + meta: TableMetadata + diff_lines: List[Tuple[OutputLine, ...]] + padding = " " * 7 if config.show_line_numbers else " " * 2 + + if config.threeway: + meta = TableMetadata( + headers=( + Text("TARGET"), + Text(f"{padding}CURRENT ({new_diff.score})"), + Text(f"{padding}PREVIOUS ({old_diff.score})"), + ), + current_score=new_diff.score, + previous_score=old_diff.score, + ) + old_chunks = chunk_diff_lines(old_diff.lines) + new_chunks = chunk_diff_lines(new_diff.lines) + diff_lines = [] + empty = OutputLine(Text(), Text(), None, True, False, None, None) + assert len(old_chunks) == len(new_chunks), "same target" + for old_chunk, new_chunk in zip(old_chunks, new_chunks): + if isinstance(old_chunk, list): + assert isinstance(new_chunk, list) + if not old_chunk and not new_chunk: + # Most of the time lines sync up without insertions/deletions, + # and there's no interdiffing to be done. + continue + differ = difflib.SequenceMatcher( + a=old_chunk, b=new_chunk, autojunk=False + ) + for (tag, i1, i2, j1, j2) in differ.get_opcodes(): + if tag in ["equal", "replace"]: + for i, j in zip(range(i1, i2), range(j1, j2)): + diff_lines.append((empty, new_chunk[j], old_chunk[i])) + if tag in ["insert", "replace"]: + for j in range(j1 + i2 - i1, j2): + diff_lines.append((empty, new_chunk[j], empty)) + if tag in ["delete", "replace"]: + for i in range(i1 + j2 - j1, i2): + diff_lines.append((empty, empty, old_chunk[i])) + else: + assert isinstance(new_chunk, OutputLine) + # old_chunk.base and new_chunk.base have the same text since + # both diffs are based on the same target, but they might + # differ in color. Use the new version. + diff_lines.append((new_chunk, new_chunk, old_chunk)) + diff_lines = [ + (base, new, old if old != new else empty) for base, new, old in diff_lines + ] + else: + meta = TableMetadata( + headers=( + Text("TARGET"), + Text(f"{padding}CURRENT ({new_diff.score})"), + ), + current_score=new_diff.score, + previous_score=None, + ) + diff_lines = [(line, line) for line in new_diff.lines] + if config.compress: + diff_lines = compress_matching(diff_lines, config.compress.context) + return meta, diff_lines + + +def debounced_fs_watch( + targets: List[str], + outq: "queue.Queue[Optional[float]]", + config: Config, + project: ProjectSettings, +) -> None: import watchdog.events import watchdog.observers class WatchEventHandler(watchdog.events.FileSystemEventHandler): - def __init__(self, queue, file_targets): + def __init__( + self, queue: "queue.Queue[float]", file_targets: List[str] + ) -> None: self.queue = queue self.file_targets = file_targets - def on_modified(self, ev): + def on_modified(self, ev: object) -> None: if isinstance(ev, watchdog.events.FileModifiedEvent): self.changed(ev.src_path) - def on_moved(self, ev): + def on_moved(self, ev: object) -> None: if isinstance(ev, watchdog.events.FileMovedEvent): self.changed(ev.dest_path) - def should_notify(self, path): + def should_notify(self, path: str) -> bool: for target in self.file_targets: - if path == target: + if os.path.normpath(path) == target: return True - if args.make and any( - path.endswith(suffix) for suffix in FS_WATCH_EXTENSIONS + if config.make and any( + path.endswith(suffix) for suffix in project.source_extensions ): return True return False - def changed(self, path): + def changed(self, path: str) -> None: if self.should_notify(path): self.queue.put(time.time()) - def debounce_thread(): - listenq = queue.Queue() - file_targets = [] + def debounce_thread() -> NoReturn: + listenq: "queue.Queue[float]" = queue.Queue() + file_targets: List[str] = [] event_handler = WatchEventHandler(listenq, file_targets) observer = watchdog.observers.Observer() observed = set() @@ -824,7 +2551,7 @@ def debounced_fs_watch(targets, outq, debounce_delay): if os.path.isdir(target): observer.schedule(event_handler, target, recursive=True) else: - file_targets.append(target) + file_targets.append(os.path.normpath(target)) target = os.path.dirname(target) or "." if target not in observed: observed.add(target) @@ -834,7 +2561,7 @@ def debounced_fs_watch(targets, outq, debounce_delay): t = listenq.get() more = True while more: - delay = t + debounce_delay - time.time() + delay = t + DEBOUNCE_DELAY - time.time() if delay > 0: time.sleep(delay) # consume entire queue @@ -852,17 +2579,47 @@ def debounced_fs_watch(targets, outq, debounce_delay): class Display: - def __init__(self, basedump, mydump): - self.basedump = basedump + basedump: str + mydump: str + last_refresh_key: object + config: Config + emsg: Optional[str] + last_diff_output: Optional[Diff] + pending_update: Optional[str] + ready_queue: "queue.Queue[None]" + watch_queue: "queue.Queue[Optional[float]]" + less_proc: "Optional[subprocess.Popen[bytes]]" + + def __init__(self, basedump: str, mydump: str, config: Config) -> None: + self.config = config + self.base_lines = process(basedump, config) self.mydump = mydump self.emsg = None + self.last_refresh_key = None + self.last_diff_output = None - def run_less(self): + def run_diff(self) -> Tuple[str, object]: if self.emsg is not None: - output = self.emsg - else: - output = "\n".join(do_diff(self.basedump, self.mydump)) + return (self.emsg, self.emsg) + my_lines = process(self.mydump, self.config) + diff_output = do_diff(self.base_lines, my_lines, self.config) + last_diff_output = self.last_diff_output or diff_output + if self.config.threeway != "base" or not self.last_diff_output: + self.last_diff_output = diff_output + + meta, diff_lines = align_diffs(last_diff_output, diff_output, self.config) + diff_lines = diff_lines[self.config.skip_lines :] + output = self.config.formatter.table(meta, diff_lines) + refresh_key = ( + [[col.key2 for col in x[1:]] for x in diff_lines], + diff_output.score, + ) + return (output, refresh_key) + + def run_less( + self, output: str + ) -> "Tuple[subprocess.Popen[bytes], subprocess.Popen[bytes]]": # Pipe the output through 'tail' and only then to less, to ensure the # write call doesn't block. ('tail' has to buffer all its input before # it starts writing.) This also means we don't have to deal with pipe @@ -871,28 +2628,33 @@ class Display: BUFFER_CMD, stdin=subprocess.PIPE, stdout=subprocess.PIPE ) less_proc = subprocess.Popen(LESS_CMD, stdin=buffer_proc.stdout) + assert buffer_proc.stdin + assert buffer_proc.stdout buffer_proc.stdin.write(output.encode()) buffer_proc.stdin.close() buffer_proc.stdout.close() return (buffer_proc, less_proc) - def run_sync(self): - proca, procb = self.run_less() + def run_sync(self) -> None: + output, _ = self.run_diff() + proca, procb = self.run_less(output) procb.wait() proca.wait() - def run_async(self, watch_queue): + def run_async(self, watch_queue: "queue.Queue[Optional[float]]") -> None: self.watch_queue = watch_queue self.ready_queue = queue.Queue() self.pending_update = None - dthread = threading.Thread(target=self.display_thread) + output, refresh_key = self.run_diff() + self.last_refresh_key = refresh_key + dthread = threading.Thread(target=self.display_thread, args=(output,)) dthread.start() self.ready_queue.get() - def display_thread(self): - proca, procb = self.run_less() + def display_thread(self, initial_output: str) -> None: + proca, procb = self.run_less(initial_output) self.less_proc = procb - self.ready_queue.put(0) + self.ready_queue.put(None) while True: ret = procb.wait() proca.wait() @@ -902,52 +2664,94 @@ class Display: os.system("tput reset") if ret != 0 and self.pending_update is not None: # killed by program with the intent to refresh - msg, error = self.pending_update + output = self.pending_update self.pending_update = None - if not error: - self.mydump = msg - self.emsg = None - else: - self.emsg = msg - proca, procb = self.run_less() + proca, procb = self.run_less(output) self.less_proc = procb - self.ready_queue.put(0) + self.ready_queue.put(None) else: # terminated by user, or killed self.watch_queue.put(None) - self.ready_queue.put(0) + self.ready_queue.put(None) break - def progress(self, msg): + def progress(self, msg: str) -> None: # Write message to top-left corner sys.stdout.write("\x1b7\x1b[1;1f{}\x1b8".format(msg + " ")) sys.stdout.flush() - def update(self, text, error): + def update(self, text: str, error: bool) -> None: if not error and not self.emsg and text == self.mydump: self.progress("Unchanged. ") return - self.pending_update = (text, error) + if not error: + self.mydump = text + self.emsg = None + else: + self.emsg = text + output, refresh_key = self.run_diff() + if refresh_key == self.last_refresh_key: + self.progress("Unchanged. ") + return + self.last_refresh_key = refresh_key + self.pending_update = output if not self.less_proc: return self.less_proc.kill() self.ready_queue.get() - def terminate(self): + def terminate(self) -> None: if not self.less_proc: return self.less_proc.kill() self.ready_queue.get() -def main(): - if args.diff_obj: - make_target, basecmd, mycmd = dump_objfile() +def main() -> None: + args = parser.parse_args() + + # Apply project-specific configuration. + settings: Dict[str, Any] = {} + diff_settings.apply(settings, args) # type: ignore + project = create_project_settings(settings) + + try: + config = create_config(args, project) + except ValueError as e: + fail(str(e)) + + if config.algorithm == "levenshtein": + try: + import Levenshtein + except ModuleNotFoundError as e: + fail(MISSING_PREREQUISITES.format(e.name)) + + if config.show_source: + try: + import cxxfilt + except ModuleNotFoundError as e: + fail(MISSING_PREREQUISITES.format(e.name)) + + if config.threeway and not args.watch: + fail("Threeway diffing requires -w.") + + if args.diff_elf_symbol: + make_target, basecmd, mycmd = dump_elf( + args.start, args.end, args.diff_elf_symbol, config, project + ) + elif config.diff_obj: + make_target, basecmd, mycmd = dump_objfile( + args.start, args.end, config, project + ) else: - make_target, basecmd, mycmd = dump_binary() + make_target, basecmd, mycmd = dump_binary(args.start, args.end, config, project) + + map_build_target_fn = getattr(diff_settings, "map_build_target", None) + if map_build_target_fn: + make_target = map_build_target_fn(make_target=make_target) if args.write_asm is not None: - mydump = run_objdump(mycmd) + mydump = run_objdump(mycmd, config, project) with open(args.write_asm, "w") as f: f.write(mydump) print(f"Wrote assembly to {args.write_asm}.") @@ -957,34 +2761,40 @@ def main(): with open(args.base_asm) as f: basedump = f.read() else: - basedump = run_objdump(basecmd) + basedump = run_objdump(basecmd, config, project) - mydump = run_objdump(mycmd) + mydump = run_objdump(mycmd, config, project) - display = Display(basedump, mydump) + display = Display(basedump, mydump, config) - if not args.watch: + if args.no_pager or args.format in ("html", "json"): + print(display.run_diff()[0]) + elif not args.watch: display.run_sync() else: if not args.make: yn = input( - "Warning: watch-mode (-w) enabled without auto-make (-m). You will have to run make manually. Ok? (Y/n) " + "Warning: watch-mode (-w) enabled without auto-make (-m). " + "You will have to run make manually. Ok? (Y/n) " ) if yn.lower() == "n": return if args.make: watch_sources = None - if hasattr(diff_settings, "watch_sources_for_target"): - watch_sources = diff_settings.watch_sources_for_target(make_target) - watch_sources = watch_sources or source_directories + watch_sources_for_target_fn = getattr( + diff_settings, "watch_sources_for_target", None + ) + if watch_sources_for_target_fn: + watch_sources = watch_sources_for_target_fn(make_target) + watch_sources = watch_sources or project.source_directories if not watch_sources: fail("Missing source_directories config, don't know what to watch.") else: watch_sources = [make_target] - q = queue.Queue() - debounced_fs_watch(watch_sources, q, DEBOUNCE_DELAY) + q: "queue.Queue[Optional[float]]" = queue.Queue() + debounced_fs_watch(watch_sources, q, config, project) display.run_async(q) - last_build = 0 + last_build = 0.0 try: while True: t = q.get() @@ -995,7 +2805,7 @@ def main(): last_build = time.time() if args.make: display.progress("Building...") - ret = run_make(make_target, capture_output=True) + ret = run_make_capture_output(make_target, project) if ret.returncode != 0: display.update( ret.stderr.decode("utf-8-sig", "replace") @@ -1003,10 +2813,11 @@ def main(): error=True, ) continue - mydump = run_objdump(mycmd) + mydump = run_objdump(mycmd, config, project) display.update(mydump, error=False) except KeyboardInterrupt: display.terminate() -main() +if __name__ == "__main__": + main() diff --git a/tools/python/diff_settings.py b/tools/python/diff_settings.py index db5200ff..54214cbc 100644 --- a/tools/python/diff_settings.py +++ b/tools/python/diff_settings.py @@ -2,14 +2,12 @@ def add_custom_arguments(parser): group = parser.add_mutually_exclusive_group(required=False) - # group.add_argument('-j', dest='version', action='store_const', const='jp', - # help="Set version to JP.") - # group.add_argument('-u', dest='version', action='store_const', const='us', - # help="Set version to US.") - # group.add_argument('-e', dest='version', action='store_const', const='eu', - # help="Set version to EU.") - # group.add_argument('-s', dest='version', action='store_const', const='sh', - # help="Set version to SH.") + group.add_argument('-jp', dest='version', action='store_const', const='jp', + help="Set version to JP.") + group.add_argument('-us', dest='version', action='store_const', const='us', + help="Set version to US.") + group.add_argument('-eu', dest='version', action='store_const', const='eu', + help="Set version to EU.") def apply(config, args): version = 'us_1.0' # Right now only us_1.0 is supported diff --git a/tools/python/first_diff.py b/tools/python/first_diff.py new file mode 100644 index 00000000..cbe59cf4 --- /dev/null +++ b/tools/python/first_diff.py @@ -0,0 +1,255 @@ +#!/usr/bin/env python3 + +import os.path +import argparse +from subprocess import check_call + +parser = argparse.ArgumentParser( + description="Find the first difference(s) between the built ROM and the base ROM." +) +parser.add_argument( + "-c", + "--count", + type=int, + default=5, + help="find up to this many instruction difference(s)", +) +parser.add_argument( + "-d", + "--diff", + dest="diff_args", + nargs="?", + action="store", + default=False, + const="prompt", + help="run diff.py on the result with the provided arguments" +) +parser.add_argument( + "-m", "--make", help="run ninja before finding difference(s)", action="store_true" +) +args = parser.parse_args() + +diff_count = args.count + +if args.make: + check_call(["ninja", "baseroms/dkr.z64"]) + +baseimg = f"baseroms/dkr.z64" +basemap = f"build/dkr.map" + +myimg = f"build/us_1.0/dkr.z64" +mymap = f"build/us_1.0/dkr.map" + +if not os.path.isfile(baseimg): + print(f"{baseimg} must exist.") + exit(1) +if not os.path.isfile(myimg) or not os.path.isfile(mymap): + print(f"{myimg} and {mymap} must exist.") + exit(1) + +mybin = open(myimg, "rb").read() +basebin = open(baseimg, "rb").read() + +if len(mybin) != len(basebin): + print("Modified ROM has different size...") + exit(1) + +if mybin == basebin: + print("No differences!") + exit(0) + + +def search_rom_address(target_addr): + ram_offset = None + prev_ram = 0 + prev_rom = 0 + prev_sym = "" + cur_file = "" + prev_file = cur_file + prev_line = "" + with open(mymap) as f: + for line in f: + if "load address" in line: + # Ignore .bss sections since we're looking for a ROM address + if ".bss" in line or ".bss" in prev_line: + ram_offset = None + continue + ram = int(line[16 : 16 + 18], 0) + rom = int(line[59 : 59 + 18], 0) + ram_offset = ram - rom + continue + + prev_line = line + + if ( + ram_offset is None + or "=" in line + or "*fill*" in line + or " 0x" not in line + ): + continue + + ram = int(line[16 : 16 + 18], 0) + rom = ram - ram_offset + sym = line.split()[-1] + + if "0x" in sym: + ram_offset = None + continue + if "/" in sym: + cur_file = sym + continue + + if rom > target_addr: + return f"{prev_sym} (RAM 0x{prev_ram:X}, ROM 0x{prev_rom:X}, {prev_file})" + + prev_ram = ram + prev_rom = rom + prev_sym = sym + prev_file = cur_file + + return "at end of rom?" + + +def parse_map(map_fname): + ram_offset = None + cur_file = "" + syms = {} + prev_sym = None + prev_line = "" + with open(map_fname) as f: + for line in f: + if "load address" in line: + ram = int(line[16 : 16 + 18], 0) + rom = int(line[59 : 59 + 18], 0) + ram_offset = ram - rom + continue + + prev_line = line + + if ( + ram_offset is None + or "=" in line + or "*fill*" in line + or " 0x" not in line + ): + continue + + ram = int(line[16 : 16 + 18], 0) + rom = ram - ram_offset + sym = line.split()[-1] + + if "0x" in sym: + ram_offset = None + continue + elif "/" in sym: + cur_file = sym + continue + + syms[sym] = (rom, cur_file, prev_sym, ram) + prev_sym = sym + + return syms + + +def map_diff(): + map1 = parse_map(mymap) + map2 = parse_map(basemap) + min_ram = None + found = None + for sym, addr in map1.items(): + if sym not in map2: + continue + if addr[0] != map2[sym][0]: + if min_ram is None or addr[0] < min_ram: + min_ram = addr[0] + found = (sym, addr[1], addr[2]) + if min_ram is None: + return False + else: + print( + f"Map appears to have shifted just before {found[0]} ({found[1]}) -- in {found[2]}?" + ) + if found[2] is not None and found[2] not in map2: + print( + f"(Base map file {basemap} out of date due to new or renamed symbols, so result may be imprecise.)" + ) + return True + + +def hexbytes(bs): + return ":".join("{:02X}".format(c) for c in bs) + + +found_instr_diff = [] +map_search_diff = [] +diffs = 0 +shift_cap = 1000 +for i in range(24, len(mybin), 4): + # (mybin[i:i+4] != basebin[i:i+4], but that's slightly slower in CPython...) + if diffs <= shift_cap and ( + mybin[i] != basebin[i] + or mybin[i + 1] != basebin[i + 1] + or mybin[i + 2] != basebin[i + 2] + or mybin[i + 3] != basebin[i + 3] + ): + if diffs == 0: + print(f"First difference at ROM addr 0x{i:X}, {search_rom_address(i)}") + print( + f"Bytes: {hexbytes(mybin[i : i + 4])} vs {hexbytes(basebin[i : i + 4])}" + ) + diffs += 1 + if ( + len(found_instr_diff) < diff_count + and mybin[i] >> 2 != basebin[i] >> 2 + and not search_rom_address(i) in map_search_diff + ): + found_instr_diff.append(i) + map_search_diff.append(search_rom_address(i)) + +if diffs == 0: + print("No differences but ROMs differ?") + exit() + +if len(found_instr_diff) > 0: + for i in found_instr_diff: + print(f"Instruction difference at ROM addr 0x{i:X}, {search_rom_address(i)}") + print( + f"Bytes: {hexbytes(mybin[i : i + 4])} vs {hexbytes(basebin[i : i + 4])}" + ) +print() + +definite_shift = diffs > shift_cap +if definite_shift: + print(f"Over {shift_cap} differing words, must be a shifted ROM.") +else: + print(f"{diffs} differing word(s).") + +if diffs > 100: + if not os.path.isfile(basemap): + print( + f"To find ROM shifts, copy a clean .map file to {basemap} and rerun this script." + ) + elif not map_diff(): + print(f"No ROM shift{' (!?)' if definite_shift else ''}") + +if args.diff_args: + if len(found_instr_diff) < 1: + print(f"No instruction difference to run diff.py on") + exit() + + diff_sym = search_rom_address(found_instr_diff[0]).split()[0] + if args.diff_args == "prompt": + diff_args = input("Call diff.py with which arguments? ") or "--" + else: + diff_args = args.diff_args + if diff_args[0] != "-": + diff_args = "-" + diff_args + check_call( + [ + "python3", + "diff.py", + diff_args, + diff_sym, + ] + ) diff --git a/tools/python/generate_ld.py b/tools/python/generate_ld.py index 9d36482d..1e361e50 100644 --- a/tools/python/generate_ld.py +++ b/tools/python/generate_ld.py @@ -21,7 +21,8 @@ DATA_DIR = ROOT_DIR + '/data' BUILD_DIR = 'build/' + VERSION LATE_DATA_FILES = [ - BUILD_DIR + '/lib/src/unknown_0D43F0.o', + BUILD_DIR + '/lib/src/al/alCopy.o', + BUILD_DIR + '/lib/src/libc/xprintf.o', BUILD_DIR + '/lib/src/os/osTimer.o', BUILD_DIR + '/lib/src/unknown_0D3020.o' ] @@ -29,8 +30,8 @@ LATE_DATA_FILES = [ BSS_LIB_ORDER_FILES = [ BUILD_DIR + '/lib/src/os/osViMgr.o', BUILD_DIR + '/lib/src/os/osSetEventMesg.o', - BUILD_DIR + '/lib/src/unknown_0CD820.o', - BUILD_DIR + '/lib/src/unknown_0CE200.o' + BUILD_DIR + '/lib/src/os/unknown_0CD820.o', + BUILD_DIR + '/lib/src/os/unknown_0CE200.o' ] class GenerateLD: diff --git a/tools/python/m2ctx.py b/tools/python/m2ctx.py new file mode 100644 index 00000000..5d399528 --- /dev/null +++ b/tools/python/m2ctx.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python3 + +import argparse, os, subprocess, sys +from pathlib import Path + +script_dir = os.path.dirname(os.path.realpath(__file__)) +root_dir = script_dir + "/../../" +src_dir = root_dir + "src/" +lib_dir = root_dir + "lib/" + + +def get_c_dir(dirname): + for root, dirs, files in os.walk(src_dir): + for directory in dirs: + if directory == dirname: + return os.path.join(root, directory) + for root, dirs, files in os.walk(lib_dir): + for directory in dirs: + if directory == dirname: + return os.path.join(root, directory) + + +def get_c_file(directory): + for root, dirs, files in os.walk(directory): + for file in files: + if file.endswith(".c") and "data" not in file: + return file + + +def import_c_file(in_file): + in_file = os.path.relpath(in_file, root_dir) + cpp_command = ["gcc", "-E", "-P", "-Iinclude", "-I.", "-Iassets", "-Isrc", "-undef", "-D__sgi", "-D_LANGUAGE_C", + "-DNON_MATCHING", "-D_Static_assert(x, y)=", "-D__attribute__(x)=", in_file] + try: + return subprocess.check_output(cpp_command, cwd=root_dir, encoding="utf-8") + except subprocess.CalledProcessError: + print( + "Failed to preprocess input file, when running command:\n" + + cpp_command, + file=sys.stderr, + ) + sys.exit(1) + + +def main(): + parser = argparse.ArgumentParser(usage="./m2ctx.py path/to/file.c", + description="Creates a ctx.c file for mips2c. " + "Output will be saved as oot/ctx.c") + parser.add_argument('filepath', help="path of c file to be processed") + args = parser.parse_args() + + if args.filepath: + c_file_path = args.filepath + print("Using file: {}".format(c_file_path)) + else: + this_dir = Path.cwd() + c_dir_path = get_c_dir(this_dir.name) + if c_dir_path is None: + sys.exit( + "Cannot find appropriate c file dir. In argumentless mode, run this script from the c file's corresponding asm dir.") + c_file = get_c_file(c_dir_path) + c_file_path = os.path.join(c_dir_path, c_file) + print("Using file: {}".format(c_file_path)) + + output = import_c_file(c_file_path) + + with open(os.path.join(root_dir, "ctx.c"), "w", encoding="UTF-8") as f: + f.write(output) + + +if __name__ == "__main__": + main() diff --git a/tools/python/score.py b/tools/python/score.py index b5e3f386..c2cb6e70 100644 --- a/tools/python/score.py +++ b/tools/python/score.py @@ -30,7 +30,7 @@ for folder in ASM_FOLDERS: BUILD_DIRECTORY = './build/us_1.0' SRC_DIRECTORY = './src' LIB_SRC_DIRECTORY = './lib/src' -FUNCTION_REGEX = r'(?:(\/[*][*!][*]*\n(?:[^/]*\n)+?\s*[*]\/\n)(?:\s*)*?)?(void|s64|s32|s16|s8|u64|u32|u16|u8|f32|f64)(?:\s|[*])*?([0-9A-Za-z_]+)\s*[(][^)]*[)]\s*{' +FUNCTION_REGEX = r'(?