summaryrefslogtreecommitdiff
path: root/src/code/6FD190.c
blob: d10af0165110b01701517cf58853eaebd3a54690 (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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include "6FD190.h"

#include "6FD410.h"
#include "alignment.h"
#include "code_variables.h"
#include "libc64/malloc.h"
#include "segment_symbols.h"
#include "unk.h"

u16* B_80146060_jp[3];
UNK_PTR B_8014606C_jp;
uintptr_t B_80146070_jp;

uintptr_t func_800D94F0_jp(void) {
    B_80146070_jp = 0x80400000;
    B_80146070_jp &= ~0x3F;
    return B_80146070_jp;
}

void func_800D9514_jp(void) {
    B_80146070_jp = 0;
}

void func_800D9524_jp(void) {
    B_80146060_jp[0] = NULL;
    B_80146060_jp[1] = NULL;
    B_80146060_jp[2] = NULL;
    B_8014606C_jp = NULL;
    func_800D9770_jp();
}

void func_800D955C_jp(s32 arg0) {
    switch (arg0) {
        case 0:
            B_80146060_jp[0] = D_80000400;
            break;

        case 1:
            B_80146060_jp[1] = (u16*)ALIGN64((uintptr_t)malloc_r(0x2583F));
            break;

        case 2:
            B_8014606C_jp = (UNK_PTR)ALIGN64((uintptr_t)malloc(0x2583F));
            break;

        case 3:
            B_80146060_jp[2] = (u16*)ALIGN64((uintptr_t)malloc(0x2583F));
            break;

        default:
            break;
    }
}

void func_800D9618_jp(s32 arg0) {
    switch (arg0) {
        case 0:
            B_80146060_jp[0] = NULL;
            break;

        case 1:
            free(B_80146060_jp[1]);
            B_80146060_jp[1] = NULL;
            break;

        case 2:
            free(B_8014606C_jp);
            B_8014606C_jp = NULL;
            break;

        case 3:
            free(B_80146060_jp[2]);
            B_80146060_jp[2] = NULL;
            break;

        default:
            break;
    }
}

void func_800D96A8_jp(void) {
    func_800D9788_jp();
    func_800D9618_jp(0);
    func_800D9618_jp(1);
    func_800D9618_jp(2);
    func_800D9618_jp(3);
}

u16* func_800D96E8_jp(s32 arg0) {
    return B_80146060_jp[arg0];
}

s32 func_800D9700_jp(void) {
    if (B_80146060_jp[2] != NULL) {
        return 3;
    }

    if (B_80146060_jp[1] != NULL) {
        return 2;
    }

    if (B_80146060_jp[0] != NULL) {
        return 1;
    }

    return 0;
}

UNK_PTR func_800D9750_jp(void) {
    return B_8014606C_jp;
}

uintptr_t func_800D9760_jp(void) {
    return B_80146070_jp;
}