diff --git a/README.md b/README.md
index 2c1439fc..03f6cf94 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# banjo (95.8644%)
+# banjo (95.8799%)
diff --git a/progress/progress_core1.svg b/progress/progress_core1.svg
index 3b5d325f..eb027e5a 100644
--- a/progress/progress_core1.svg
+++ b/progress/progress_core1.svg
@@ -9,7 +9,7 @@
-
+
@@ -17,7 +17,7 @@
core1
- 92.9525%
- 92.9525%
+ 93.0594%
+ 93.0594%
\ No newline at end of file
diff --git a/progress/progress_total.svg b/progress/progress_total.svg
index abc2bd3b..3730761c 100644
--- a/progress/progress_total.svg
+++ b/progress/progress_total.svg
@@ -9,7 +9,7 @@
-
+
@@ -17,7 +17,7 @@
Banjo-Kazooie (us.v10)
- 95.8644%
- 95.8644%
+ 95.8799%
+ 95.8799%
\ No newline at end of file
diff --git a/src/core1/code_13990.c b/src/core1/code_13990.c
index 5f04c590..a6cd88a6 100644
--- a/src/core1/code_13990.c
+++ b/src/core1/code_13990.c
@@ -69,7 +69,32 @@ void func_802514BC(Mtx *arg0) {
}
#endif
-#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_13990/func_802515D4.s")
+void func_802515D4(f32 arg0[3][3]) {
+ f32 var_f0;
+ s32 var_v0;
+ s32 var_v1;
+ s32 i;
+ f32 sp1C[3][3];
+
+ for(i = 0; i < 3; i++){
+ for(var_v1 = 0; var_v1 < 3; var_v1++){
+ var_f0 = 0.0f;
+ for(var_v0 = 0; var_v0 < 3; var_v0++){
+ var_f0 += arg0[i][var_v0] * reinterpret_cast(f32, D_80282FD0->m[var_v0][var_v1]);
+ }
+ sp1C[i][var_v1] = var_f0;
+ }
+
+ }
+
+ for( i = 0; i < 3; i++){
+ for(var_v1 = 0; var_v1 < 3; var_v1++){
+ reinterpret_cast(f32, D_80282FD0->m[i][var_v1]) = sp1C[i][var_v1];
+
+ }
+ }
+}
+
void mlMtxPop(void){
D_80282FD0--;