summaryrefslogtreecommitdiff
path: root/src/code/code_801068B0.c
blob: d673cc5e0fe8b6dc309b4d9877fc63618e66906b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "global.h"

// memmove used in __osMalloc.c
void* func_801068B0(void* dst, void* src, size_t size) {
    u8* spC = dst;
    u8* sp8 = src;
    register s32 a3;

    if (spC == sp8) {
        return dst;
    }
    if (spC < sp8) {
        for (a3 = size--; a3 != 0; a3 = size--) {
            *spC++ = *sp8++;
        }
    } else {
        spC += size - 1;
        sp8 += size - 1;
        for (a3 = size--; a3 != 0; a3 = size--) {
            *spC-- = *sp8--;
        }
    }
    return dst;
}