Bond697 icon

5th Gen PID Generation

Bond697 | PRO | 01/09/12 04:20:15 PM UTC | 0 ⭐ | 10597 👁️ | Never ⏰ | []
ARM |

8.59 KB

|

None

|

0 👍

/

0 👎

RAM_ARM9:0201D724             ; =============== S U B R O U T I N E =======================================
RAM_ARM9:0201D724
RAM_ARM9:0201D724
RAM_ARM9:0201D724             ; u32 __fastcall makePID(unsigned int idSet, int speciesValue, bool isGenderLocked, int generationType, int abilityLock, int shinyPrevent)
RAM_ARM9:0201D724             makePID                                 ; CODE XREF: sub_21531A0+192p
RAM_ARM9:0201D724                                                     ; sub_21531A0+1BAp ...
RAM_ARM9:0201D724
RAM_ARM9:0201D724             var_18          = -0x18
RAM_ARM9:0201D724             abilityLock     =  0
RAM_ARM9:0201D724             shinyPrevent    =  4
RAM_ARM9:0201D724
RAM_ARM9:0201D724 F8 B5                       PUSH    {R3-R7,LR}
RAM_ARM9:0201D726 1D 1C                       MOVS    R5, R3
RAM_ARM9:0201D728 06 1C                       MOVS    R6, R0
RAM_ARM9:0201D72A 0C 1C                       MOVS    R4, R1
RAM_ARM9:0201D72C 00 92                       STR     R2, [SP,#0x18+var_18]
RAM_ARM9:0201D72E 02 2D                       CMP     R5, #2
RAM_ARM9:0201D730 04 D1                       BNE     loc_201D73C
RAM_ARM9:0201D732 00 20                       MOVS    R0, #0          ; max
RAM_ARM9:0201D734 E8 F7 08 F8                 BL      mainRand64
RAM_ARM9:0201D738 04 1C                       MOVS    R4, R0
RAM_ARM9:0201D73A 24 E0                       B       loc_201D786
RAM_ARM9:0201D73C             ; ---------------------------------------------------------------------------
RAM_ARM9:0201D73C
RAM_ARM9:0201D73C             loc_201D73C                             ; CODE XREF: makePID+Cj
RAM_ARM9:0201D73C 00 20                       MOVS    R0, #0          ; max
RAM_ARM9:0201D73E E8 F7 03 F8                 BL      mainRand64
RAM_ARM9:0201D742 07 1C                       MOVS    R7, R0
RAM_ARM9:0201D744 FF 21                       MOVS    R1, #0xFF
RAM_ARM9:0201D746 8F 43                       BICS    R7, R1
RAM_ARM9:0201D748 2A 06                       LSLS    R2, R5, #0x18
RAM_ARM9:0201D74A 00 99                       LDR     R1, [SP,#0x18+var_18]
RAM_ARM9:0201D74C 20 1C                       MOVS    R0, R4
RAM_ARM9:0201D74E 12 0E                       LSRS    R2, R2, #0x18
RAM_ARM9:0201D750 FF F7 80 FF                 BL      sub_201D654
RAM_ARM9:0201D754 04 1C                       MOVS    R4, R0
RAM_ARM9:0201D756 00 2D                       CMP     R5, #0
RAM_ARM9:0201D758 09 D1                       BNE     loc_201D76E
RAM_ARM9:0201D75A 02 F0 71 FE                 BL      isGenderless
RAM_ARM9:0201D75E 00 28                       CMP     R0, #0
RAM_ARM9:0201D760 05 D1                       BNE     loc_201D76E
RAM_ARM9:0201D762 FE 20                       MOVS    R0, #0xFE ; '¦'
RAM_ARM9:0201D764 00 1B                       SUBS    R0, R0, R4      ; max
RAM_ARM9:0201D766 E7 F7 EF FF                 BL      mainRand64
RAM_ARM9:0201D76A 24 18                       ADDS    R4, R4, R0
RAM_ARM9:0201D76C 0A E0                       B       loc_201D784
RAM_ARM9:0201D76E             ; ---------------------------------------------------------------------------
RAM_ARM9:0201D76E
RAM_ARM9:0201D76E             loc_201D76E                             ; CODE XREF: makePID+34j
RAM_ARM9:0201D76E                                                     ; makePID+3Cj
RAM_ARM9:0201D76E 01 2D                       CMP     R5, #1
RAM_ARM9:0201D770 08 D1                       BNE     loc_201D784
RAM_ARM9:0201D772 20 1C                       MOVS    R0, R4          ; gender_rate
RAM_ARM9:0201D774 02 F0 64 FE                 BL      isGenderless
RAM_ARM9:0201D778 00 28                       CMP     R0, #0
RAM_ARM9:0201D77A 03 D1                       BNE     loc_201D784
RAM_ARM9:0201D77C 20 1C                       MOVS    R0, R4          ; max
RAM_ARM9:0201D77E E7 F7 E3 FF                 BL      mainRand64
RAM_ARM9:0201D782 44 1C                       ADDS    R4, R0, #1
RAM_ARM9:0201D784
RAM_ARM9:0201D784             loc_201D784                             ; CODE XREF: makePID+48j
RAM_ARM9:0201D784                                                     ; makePID+4Cj ...
RAM_ARM9:0201D784 3C 43                       ORRS    R4, R7
RAM_ARM9:0201D786
RAM_ARM9:0201D786             loc_201D786                             ; CODE XREF: makePID+16j
RAM_ARM9:0201D786 07 98                       LDR     R0, [SP,#0x18+shinyPrevent]
RAM_ARM9:0201D788 00 28                       CMP     R0, #0
RAM_ARM9:0201D78A 19 D0                       BEQ     loc_201D7C0
RAM_ARM9:0201D78C 01 28                       CMP     R0, #1
RAM_ARM9:0201D78E 02 D0                       BEQ     loc_201D796
RAM_ARM9:0201D790 02 28                       CMP     R0, #2
RAM_ARM9:0201D792 1E D0                       BEQ     loc_201D7D2
RAM_ARM9:0201D794 26 E0                       B       loc_201D7E4
RAM_ARM9:0201D796             ; ---------------------------------------------------------------------------
RAM_ARM9:0201D796
RAM_ARM9:0201D796             loc_201D796                             ; CODE XREF: makePID+6Aj
RAM_ARM9:0201D796 14 49                       LDR     R1, =0xFFFF0000
RAM_ARM9:0201D798 20 06                       LSLS    R0, R4, #0x18
RAM_ARM9:0201D79A 31 40                       ANDS    R1, R6
RAM_ARM9:0201D79C 0A 0C                       LSRS    R2, R1, #0x10
RAM_ARM9:0201D79E 31 04                       LSLS    R1, R6, #0x10
RAM_ARM9:0201D7A0 09 0C                       LSRS    R1, R1, #0x10
RAM_ARM9:0201D7A2 00 0E                       LSRS    R0, R0, #0x18
RAM_ARM9:0201D7A4 51 40                       EORS    R1, R2
RAM_ARM9:0201D7A6 41 40                       EORS    R1, R0
RAM_ARM9:0201D7A8 04 1C                       MOVS    R4, R0
RAM_ARM9:0201D7AA 09 04                       LSLS    R1, R1, #0x10
RAM_ARM9:0201D7AC 0C 43                       ORRS    R4, R1
RAM_ARM9:0201D7AE 01 20                       MOVS    R0, #1
RAM_ARM9:0201D7B0 06 99                       LDR     R1, [SP,#0x18+abilityLock]
RAM_ARM9:0201D7B2 00 04                       LSLS    R0, R0, #0x10
RAM_ARM9:0201D7B4 22 1C                       MOVS    R2, R4
RAM_ARM9:0201D7B6 02 40                       ANDS    R2, R0
RAM_ARM9:0201D7B8 09 04                       LSLS    R1, R1, #0x10
RAM_ARM9:0201D7BA 8A 42                       CMP     R2, R1
RAM_ARM9:0201D7BC 12 D0                       BEQ     loc_201D7E4
RAM_ARM9:0201D7BE 10 E0                       B       loc_201D7E2
RAM_ARM9:0201D7C0             ; ---------------------------------------------------------------------------
RAM_ARM9:0201D7C0
RAM_ARM9:0201D7C0             loc_201D7C0                             ; CODE XREF: makePID+66j
RAM_ARM9:0201D7C0 30 1C                       MOVS    R0, R6          ; idSet
RAM_ARM9:0201D7C2 21 1C                       MOVS    R1, R4          ; pid
RAM_ARM9:0201D7C4 FF F7 1E FB                 BL      isShiny
RAM_ARM9:0201D7C8 01 28                       CMP     R0, #1
RAM_ARM9:0201D7CA 02 D1                       BNE     loc_201D7D2
RAM_ARM9:0201D7CC 01 20 00 07                 MOVS    R0, 0x10000000
RAM_ARM9:0201D7D0 44 40                       EORS    R4, R0
RAM_ARM9:0201D7D2
RAM_ARM9:0201D7D2             loc_201D7D2                             ; CODE XREF: makePID+6Ej
RAM_ARM9:0201D7D2                                                     ; makePID+A6j
RAM_ARM9:0201D7D2 01 20                       MOVS    R0, #1
RAM_ARM9:0201D7D4 06 99                       LDR     R1, [SP,#0x18+abilityLock]
RAM_ARM9:0201D7D6 00 04                       LSLS    R0, R0, #0x10
RAM_ARM9:0201D7D8 22 1C                       MOVS    R2, R4
RAM_ARM9:0201D7DA 02 40                       ANDS    R2, R0
RAM_ARM9:0201D7DC 09 04                       LSLS    R1, R1, #0x10
RAM_ARM9:0201D7DE 8A 42                       CMP     R2, R1
RAM_ARM9:0201D7E0 00 D0                       BEQ     loc_201D7E4
RAM_ARM9:0201D7E2
RAM_ARM9:0201D7E2             loc_201D7E2                             ; CODE XREF: makePID+9Aj
RAM_ARM9:0201D7E2 44 40                       EORS    R4, R0
RAM_ARM9:0201D7E4
RAM_ARM9:0201D7E4             loc_201D7E4                             ; CODE XREF: makePID+70j
RAM_ARM9:0201D7E4                                                     ; makePID+98j ...
RAM_ARM9:0201D7E4 20 1C                       MOVS    R0, R4
RAM_ARM9:0201D7E6 F8 BD                       POP     {R3-R7,PC}
RAM_ARM9:0201D7E6             ; End of function makePID
RAM_ARM9:0201D7E6
RAM_ARM9:0201D7E6             ; ---------------------------------------------------------------------------
RAM_ARM9:0201D7E8 00 00 FF FF dword_201D7E8   DCD 0xFFFF0000          ; DATA XREF: makePID:loc_201D796r

Comments

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

    0 B

    |

    👍

    /

    👎

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

    0 B

    |

    👍

    /

    👎

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

    0 B

    |

    👍

    /

    👎