diff --git a/progress/progress_core2.svg b/progress/progress_core2.svg
index fe100be5..f6652e6b 100644
--- a/progress/progress_core2.svg
+++ b/progress/progress_core2.svg
@@ -17,7 +17,7 @@
core2
- 91.4998%
- 91.4998%
+ 91.5082%
+ 91.5082%
\ No newline at end of file
diff --git a/src/core2/sla.c b/src/core2/sla.c
index 22b10c9a..6af0c9f0 100644
--- a/src/core2/sla.c
+++ b/src/core2/sla.c
@@ -57,22 +57,22 @@ void *func_802EDAA4(SLA **this, s32 *arg1) {
return (s32) i_ptr;
}
-#ifndef NONMATCHING
-#pragma GLOBAL_ASM("asm/nonmatchings/core2/sla/func_802EDC18.s")
-#else
-int func_802EDC18(SLA *this, s32 arg1){
- s32 tmp_v0 = this->unk4;
- s16 *v1;
- s32 offset;
- for(v1 = (s16*)tmp_v0; *v1; ){
- if(*v1 == arg1)
- return 0;
- v1 = (s16*)(tmp_v0 + ((s32)*v1*this->elem_size));
+int func_802EDC18(SLA *this, s32 arg1)
+{
+ u8 *tmp_v0 = this->unk4;
+ s16 *i_ptr;
+ u8 *new_var;
+ new_var = this->unk4;
+ for (i_ptr = (s16 *) new_var; *i_ptr; i_ptr = (s16 *) (((*i_ptr) * this->elem_size) + (new_var = tmp_v0)))
+ {
+ if ((*i_ptr) == arg1)
+ {
+ return 0;
}
- return 1;
-}
-#endif
+ }
+ return 1;
+}
void array_free(SLA *this){
free(this);
}
diff --git a/subyaml/core2.us.v10.yaml b/subyaml/core2.us.v10.yaml
index 22faa412..015ff144 100644
--- a/subyaml/core2.us.v10.yaml
+++ b/subyaml/core2.us.v10.yaml
@@ -245,7 +245,7 @@ segments:
- [0x654C0, c, code_654C0] #DONE
- [0x66490, c, code_66490] #DONE
- [0x66690, c, vla] #DONE
- - [0x66AB0, c, sla]
+ - [0x66AB0, c, sla] #DONE
- [0x66D90, c, code_66D90] #DONE
- [0x66FB0, c, code_66FB0] #DONE
- [0x67490, c, gc/bound] #DONE