Bond697 icon

GameFreak Heap Allocation Gen 5

Bond697 | PRO | 03/04/12 08:01:52 AM UTC | 0 ⭐ | 689 👁️ | Never ⏰ | []
ASM (NASM) |

0 B

|

None

|

0 👍

/

0 👎

RAM_ARM9:0203A228             ; =============== S U B R O U T I N E =======================================
RAM_ARM9:0203A228
RAM_ARM9:0203A228
RAM_ARM9:0203A228             ; void *__fastcall allocateBlockFromExpHeap(int blkGroupID, u32 blockLength, bool clearBlock, const char *pSourceFile, int marker)
RAM_ARM9:0203A228             allocateBlockFromExpHeap                ; CODE XREF: setupMainGFSystems+EEp
RAM_ARM9:0203A228                                                     ; setupMainGFSystems+108p ...
RAM_ARM9:0203A228
RAM_ARM9:0203A228             pSourceSrc      = -0x18
RAM_ARM9:0203A228             marker          =  0
RAM_ARM9:0203A228
RAM_ARM9:0203A228 F8 B5                       PUSH    {R3-R7,LR}
RAM_ARM9:0203A22A 06 1C                       MOVS    R6, R0
RAM_ARM9:0203A22C 0D 1C                       MOVS    R5, R1
RAM_ARM9:0203A22E 17 1C                       MOVS    R7, R2
RAM_ARM9:0203A230 00 93                       STR     R3, [SP,#0x18+pSourceSrc]
RAM_ARM9:0203A232 FF F7 C9 FD                 BL      getNewBlockFromHeapNum
RAM_ARM9:0203A236 04 1C                       MOVS    R4, R0
RAM_ARM9:0203A238 0B D1                       BNE     loc_203A252
RAM_ARM9:0203A23A FF F7 43 FF                 BL      getAllocatorStatus
RAM_ARM9:0203A23E 06 AB                       ADD     R3, SP, #0x18+marker
RAM_ARM9:0203A240 1B 88                       LDRH    R3, [R3]
RAM_ARM9:0203A242 00 9A                       LDR     R2, [SP,#0x18+pSourceSrc]
RAM_ARM9:0203A244 30 1C                       MOVS    R0, R6          ; blkGroupID
RAM_ARM9:0203A246 29 1C                       MOVS    R1, R5          ; blockLength
RAM_ARM9:0203A248 00 F0 9A F8                 BL      abortIfBlockIsAllocatedWrong
RAM_ARM9:0203A24C             ; ---------------------------------------------------------------------------
RAM_ARM9:0203A24C 42 F0 A8 FA                 BL      OS_Panic
RAM_ARM9:0203A250 10 E0                       B       loc_203A274
RAM_ARM9:0203A252             ; ---------------------------------------------------------------------------
RAM_ARM9:0203A252
RAM_ARM9:0203A252             loc_203A252                             ; CODE XREF: allocateBlockFromExpHeap+10j
RAM_ARM9:0203A252 06 AA                       ADD     R2, SP, #0x18
RAM_ARM9:0203A254 12 88                       LDRH    R2, [R2]        ; marker
RAM_ARM9:0203A256 00 99                       LDR     R1, [SP,#0x18+pSourceSrc] ; pSourceSrc
RAM_ARM9:0203A258 00 F0 58 F8                 BL      copySourceFileToAllocatedBlock
RAM_ARM9:0203A25C 30 1C                       MOVS    R0, R6          ; blkGroupID
RAM_ARM9:0203A25E 21 1C                       MOVS    R1, R4          ; pBlk
RAM_ARM9:0203A260 2A 1C                       MOVS    R2, R5
RAM_ARM9:0203A262 00 F0 C9 F8                 BL      verifySysBlkGroup
RAM_ARM9:0203A266 00 2F                       CMP     R7, #0
RAM_ARM9:0203A268 04 D0                       BEQ     loc_203A274
RAM_ARM9:0203A26A 00 20                       MOVS    R0, #0          ; data
RAM_ARM9:0203A26C 21 1C                       MOVS    R1, R4          ; pSrc
RAM_ARM9:0203A26E 2A 1C                       MOVS    R2, R5          ; dataSize
RAM_ARM9:0203A270 3E F0 08 EA                 BLX     MIi_CpuClear32
RAM_ARM9:0203A274
RAM_ARM9:0203A274             loc_203A274                             ; CODE XREF: allocateBlockFromExpHeap+28j
RAM_ARM9:0203A274                                                     ; allocateBlockFromExpHeap+40j
RAM_ARM9:0203A274 20 1C                       MOVS    R0, R4
RAM_ARM9:0203A276 F8 BD                       POP     {R3-R7,PC}
RAM_ARM9:0203A276             ; End of function allocateBlockFromExpHeap

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎