I think that this information is useful for what you're trying to do:
Spoiler:
@ unsigned __int16 __fastcall rand()
08044EC8 rand: @ CODE XREF: call_back1x0C_irq_vblank+64p
08044EC8 @ sub_08009640:loc_08009670p ...
08044EC8 LDR R2, =rand_seed
08044ECA LDR R1, [R2]
08044ECC LDR R0, =0x41C64E6D
08044ECE MULS R0, R1
08044ED0 LDR R1, =0x6073
08044ED2 ADDS R0, R0, R1
08044ED4 STR R0, [R2]
08044ED6 LSRS R0, R0, #0x10
08044ED8 BX LR
08044ED8 @ End of function rand
08044ED8
08044ED8 @ ---------------------------------------------------------------------------
08044EDA .byte 0
08044EDB .byte 0
08044EDC off_08044EDC: .long rand_seed @ DATA XREF: randr
08044EE0 dword_08044EE0: .long 0x41C64E6D @ DATA XREF: rand+4r
08044EE4 dword_08044EE4: .long 0x6073 @ DATA XREF: rand+8r
08044EE8
08044EE8 @ =============== S U B R O U T I N E =======================================
08044EE8
08044EE8
08044EE8 set_rand_seed: @ CODE XREF: sub_08000564+8p
08044EE8 @ sub_08009640+2Ap
08044EE8 LSLS R0, R0, #0x10
08044EEA LSRS R0, R0, #0x10
08044EEC LDR R1, =rand_seed
08044EEE STR R0, [R1]
08044EF0 BX LR
08044EF0 @ End of function set_rand_seed
08044EF0
08044EF0 @ ---------------------------------------------------------------------------
08044EF2 .byte 0
08044EF3 .byte 0
08044EF4 off_08044EF4: .long rand_seed @ DATA XREF: set_rand_seed+4r
08044EF8
I might add, these notes were from Knizz.