From cdb84872b5a8050240740b6da274b01692bfb602 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 29 Oct 2019 22:13:16 +1000 Subject: [PATCH] Decompile func00001b40 --- src/boot/boot.c | 35 +++++++------------------------- src/include/library/library.h | 2 ++ src/include/setup/setup_000000.h | 1 + src/library/library.c | 4 ++++ 4 files changed, 14 insertions(+), 28 deletions(-) diff --git a/src/boot/boot.c b/src/boot/boot.c index 09d0cf23c..ea2ca8fb9 100644 --- a/src/boot/boot.c +++ b/src/boot/boot.c @@ -810,34 +810,13 @@ void func00001b34(u32 value) var8005ce6c = value; } -GLOBAL_ASM( -glabel func00001b40 -/* 1b40: 3c0e8006 */ lui $t6,0x8006 -/* 1b44: 8dcece68 */ lw $t6,-0x3198($t6) -/* 1b48: 27bdffe8 */ addiu $sp,$sp,-24 -/* 1b4c: afbf0014 */ sw $ra,0x14($sp) -/* 1b50: 11c00003 */ beqz $t6,.L00001b60 -/* 1b54: 3c0f8006 */ lui $t7,0x8006 -/* 1b58: 8defce64 */ lw $t7,-0x319c($t7) -/* 1b5c: 15e00004 */ bnez $t7,.L00001b70 -.L00001b60: -/* 1b60: 3c188006 */ lui $t8,0x8006 -/* 1b64: 8f18ce60 */ lw $t8,-0x31a0($t8) -/* 1b68: 53000008 */ beqzl $t8,.L00001b8c -/* 1b6c: 8fbf0014 */ lw $ra,0x14($sp) -.L00001b70: -/* 1b70: 0c0033d5 */ jal 0xcf54 -/* 1b74: 00000000 */ sll $zero,$zero,0x0 -/* 1b78: 0c012144 */ jal 0x48510 -/* 1b7c: 00000000 */ sll $zero,$zero,0x0 -/* 1b80: 3c018006 */ lui $at,0x8006 -/* 1b84: ac22ce70 */ sw $v0,-0x3190($at) -/* 1b88: 8fbf0014 */ lw $ra,0x14($sp) -.L00001b8c: -/* 1b8c: 27bd0018 */ addiu $sp,$sp,0x18 -/* 1b90: 03e00008 */ jr $ra -/* 1b94: 00000000 */ sll $zero,$zero,0x0 -); +void func00001b40(void) +{ + if ((var8005ce68 && var8005ce64) || var8005ce60) { + func0000cf54(); + var8005ce70 = func00048510(); + } +} GLOBAL_ASM( glabel func00001b98 diff --git a/src/include/library/library.h b/src/include/library/library.h index 341744e8f..cef3851de 100644 --- a/src/include/library/library.h +++ b/src/include/library/library.h @@ -2,10 +2,12 @@ #define _IN_LIBRARY_H #include +void func0000cf54(void); void func0000dae8(void); s32 func00012f30(void); void func00013710(void); void func00013750(void); +void func00048510(void); u8 random(void); diff --git a/src/include/setup/setup_000000.h b/src/include/setup/setup_000000.h index 031d636bc..c36f9de47 100644 --- a/src/include/setup/setup_000000.h +++ b/src/include/setup/setup_000000.h @@ -10,6 +10,7 @@ extern u32 var8005ce60; extern u32 var8005ce64; extern u32 var8005ce68; extern u32 var8005ce6c; +extern u32 var8005ce70; extern u32 var80065be0; extern u32 var80067aa0; extern u32 var80067ae8; diff --git a/src/library/library.c b/src/library/library.c index acdd34fd6..9657dd50a 100644 --- a/src/library/library.c +++ b/src/library/library.c @@ -17691,6 +17691,10 @@ glabel func0000cef8 .L0000cf4c: /* cf4c: 03e00008 */ jr $ra /* cf50: 00000000 */ sll $zero,$zero,0x0 +); + +GLOBAL_ASM( +glabel func0000cf54 /* cf54: 27bdffc0 */ addiu $sp,$sp,-64 /* cf58: 3c01a000 */ lui $at,0xa000 /* cf5c: 00817025 */ or $t6,$a0,$at