1import angr
2
3class __p__fmode(angr.SimProcedure):
4    def run(self):
5        return self.project.simos.fmode_ptr
6
7class _get_fmode(angr.SimProcedure):
8    def run(self, outptr):
9        if self.state.solver.is_true(outptr == 0):
10            return 22
11        fmode = self.state.mem[self.project.simos.fmode_ptr].int.resolved
12        self.state.mem[outptr].int = fmode
13        return 0
14
15class _set_fmode(angr.SimProcedure):
16    def run(self, val):
17        if not self.state.solver.is_true(self.state.solver.Or(val == 0x4000, val == 0x8000)):
18            return 22
19        self.state.mem[self.project.simos.fmode_ptr].int = val
20        return 0
21
22class __p__commode(angr.SimProcedure):
23    def run(self):
24        return self.project.simos.commode_ptr
25