Bond697

5th Gen PID Generation

Jan 9th, 2012
657
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 8.59 KB | None | 0 0
  1. RAM_ARM9:0201D724             ; =============== S U B R O U T I N E =======================================
  2. RAM_ARM9:0201D724
  3. RAM_ARM9:0201D724
  4. RAM_ARM9:0201D724             ; u32 __fastcall makePID(unsigned int idSet, int speciesValue, bool isGenderLocked, int generationType, int abilityLock, int shinyPrevent)
  5. RAM_ARM9:0201D724             makePID                                 ; CODE XREF: sub_21531A0+192p
  6. RAM_ARM9:0201D724                                                     ; sub_21531A0+1BAp ...
  7. RAM_ARM9:0201D724
  8. RAM_ARM9:0201D724             var_18          = -0x18
  9. RAM_ARM9:0201D724             abilityLock     =  0
  10. RAM_ARM9:0201D724             shinyPrevent    =  4
  11. RAM_ARM9:0201D724
  12. RAM_ARM9:0201D724 F8 B5                       PUSH    {R3-R7,LR}
  13. RAM_ARM9:0201D726 1D 1C                       MOVS    R5, R3
  14. RAM_ARM9:0201D728 06 1C                       MOVS    R6, R0
  15. RAM_ARM9:0201D72A 0C 1C                       MOVS    R4, R1
  16. RAM_ARM9:0201D72C 00 92                       STR     R2, [SP,#0x18+var_18]
  17. RAM_ARM9:0201D72E 02 2D                       CMP     R5, #2
  18. RAM_ARM9:0201D730 04 D1                       BNE     loc_201D73C
  19. RAM_ARM9:0201D732 00 20                       MOVS    R0, #0          ; max
  20. RAM_ARM9:0201D734 E8 F7 08 F8                 BL      mainRand64
  21. RAM_ARM9:0201D738 04 1C                       MOVS    R4, R0
  22. RAM_ARM9:0201D73A 24 E0                       B       loc_201D786
  23. RAM_ARM9:0201D73C             ; ---------------------------------------------------------------------------
  24. RAM_ARM9:0201D73C
  25. RAM_ARM9:0201D73C             loc_201D73C                             ; CODE XREF: makePID+Cj
  26. RAM_ARM9:0201D73C 00 20                       MOVS    R0, #0          ; max
  27. RAM_ARM9:0201D73E E8 F7 03 F8                 BL      mainRand64
  28. RAM_ARM9:0201D742 07 1C                       MOVS    R7, R0
  29. RAM_ARM9:0201D744 FF 21                       MOVS    R1, #0xFF
  30. RAM_ARM9:0201D746 8F 43                       BICS    R7, R1
  31. RAM_ARM9:0201D748 2A 06                       LSLS    R2, R5, #0x18
  32. RAM_ARM9:0201D74A 00 99                       LDR     R1, [SP,#0x18+var_18]
  33. RAM_ARM9:0201D74C 20 1C                       MOVS    R0, R4
  34. RAM_ARM9:0201D74E 12 0E                       LSRS    R2, R2, #0x18
  35. RAM_ARM9:0201D750 FF F7 80 FF                 BL      sub_201D654
  36. RAM_ARM9:0201D754 04 1C                       MOVS    R4, R0
  37. RAM_ARM9:0201D756 00 2D                       CMP     R5, #0
  38. RAM_ARM9:0201D758 09 D1                       BNE     loc_201D76E
  39. RAM_ARM9:0201D75A 02 F0 71 FE                 BL      isGenderless
  40. RAM_ARM9:0201D75E 00 28                       CMP     R0, #0
  41. RAM_ARM9:0201D760 05 D1                       BNE     loc_201D76E
  42. RAM_ARM9:0201D762 FE 20                       MOVS    R0, #0xFE ; '¦'
  43. RAM_ARM9:0201D764 00 1B                       SUBS    R0, R0, R4      ; max
  44. RAM_ARM9:0201D766 E7 F7 EF FF                 BL      mainRand64
  45. RAM_ARM9:0201D76A 24 18                       ADDS    R4, R4, R0
  46. RAM_ARM9:0201D76C 0A E0                       B       loc_201D784
  47. RAM_ARM9:0201D76E             ; ---------------------------------------------------------------------------
  48. RAM_ARM9:0201D76E
  49. RAM_ARM9:0201D76E             loc_201D76E                             ; CODE XREF: makePID+34j
  50. RAM_ARM9:0201D76E                                                     ; makePID+3Cj
  51. RAM_ARM9:0201D76E 01 2D                       CMP     R5, #1
  52. RAM_ARM9:0201D770 08 D1                       BNE     loc_201D784
  53. RAM_ARM9:0201D772 20 1C                       MOVS    R0, R4          ; gender_rate
  54. RAM_ARM9:0201D774 02 F0 64 FE                 BL      isGenderless
  55. RAM_ARM9:0201D778 00 28                       CMP     R0, #0
  56. RAM_ARM9:0201D77A 03 D1                       BNE     loc_201D784
  57. RAM_ARM9:0201D77C 20 1C                       MOVS    R0, R4          ; max
  58. RAM_ARM9:0201D77E E7 F7 E3 FF                 BL      mainRand64
  59. RAM_ARM9:0201D782 44 1C                       ADDS    R4, R0, #1
  60. RAM_ARM9:0201D784
  61. RAM_ARM9:0201D784             loc_201D784                             ; CODE XREF: makePID+48j
  62. RAM_ARM9:0201D784                                                     ; makePID+4Cj ...
  63. RAM_ARM9:0201D784 3C 43                       ORRS    R4, R7
  64. RAM_ARM9:0201D786
  65. RAM_ARM9:0201D786             loc_201D786                             ; CODE XREF: makePID+16j
  66. RAM_ARM9:0201D786 07 98                       LDR     R0, [SP,#0x18+shinyPrevent]
  67. RAM_ARM9:0201D788 00 28                       CMP     R0, #0
  68. RAM_ARM9:0201D78A 19 D0                       BEQ     loc_201D7C0
  69. RAM_ARM9:0201D78C 01 28                       CMP     R0, #1
  70. RAM_ARM9:0201D78E 02 D0                       BEQ     loc_201D796
  71. RAM_ARM9:0201D790 02 28                       CMP     R0, #2
  72. RAM_ARM9:0201D792 1E D0                       BEQ     loc_201D7D2
  73. RAM_ARM9:0201D794 26 E0                       B       loc_201D7E4
  74. RAM_ARM9:0201D796             ; ---------------------------------------------------------------------------
  75. RAM_ARM9:0201D796
  76. RAM_ARM9:0201D796             loc_201D796                             ; CODE XREF: makePID+6Aj
  77. RAM_ARM9:0201D796 14 49                       LDR     R1, =0xFFFF0000
  78. RAM_ARM9:0201D798 20 06                       LSLS    R0, R4, #0x18
  79. RAM_ARM9:0201D79A 31 40                       ANDS    R1, R6
  80. RAM_ARM9:0201D79C 0A 0C                       LSRS    R2, R1, #0x10
  81. RAM_ARM9:0201D79E 31 04                       LSLS    R1, R6, #0x10
  82. RAM_ARM9:0201D7A0 09 0C                       LSRS    R1, R1, #0x10
  83. RAM_ARM9:0201D7A2 00 0E                       LSRS    R0, R0, #0x18
  84. RAM_ARM9:0201D7A4 51 40                       EORS    R1, R2
  85. RAM_ARM9:0201D7A6 41 40                       EORS    R1, R0
  86. RAM_ARM9:0201D7A8 04 1C                       MOVS    R4, R0
  87. RAM_ARM9:0201D7AA 09 04                       LSLS    R1, R1, #0x10
  88. RAM_ARM9:0201D7AC 0C 43                       ORRS    R4, R1
  89. RAM_ARM9:0201D7AE 01 20                       MOVS    R0, #1
  90. RAM_ARM9:0201D7B0 06 99                       LDR     R1, [SP,#0x18+abilityLock]
  91. RAM_ARM9:0201D7B2 00 04                       LSLS    R0, R0, #0x10
  92. RAM_ARM9:0201D7B4 22 1C                       MOVS    R2, R4
  93. RAM_ARM9:0201D7B6 02 40                       ANDS    R2, R0
  94. RAM_ARM9:0201D7B8 09 04                       LSLS    R1, R1, #0x10
  95. RAM_ARM9:0201D7BA 8A 42                       CMP     R2, R1
  96. RAM_ARM9:0201D7BC 12 D0                       BEQ     loc_201D7E4
  97. RAM_ARM9:0201D7BE 10 E0                       B       loc_201D7E2
  98. RAM_ARM9:0201D7C0             ; ---------------------------------------------------------------------------
  99. RAM_ARM9:0201D7C0
  100. RAM_ARM9:0201D7C0             loc_201D7C0                             ; CODE XREF: makePID+66j
  101. RAM_ARM9:0201D7C0 30 1C                       MOVS    R0, R6          ; idSet
  102. RAM_ARM9:0201D7C2 21 1C                       MOVS    R1, R4          ; pid
  103. RAM_ARM9:0201D7C4 FF F7 1E FB                 BL      isShiny
  104. RAM_ARM9:0201D7C8 01 28                       CMP     R0, #1
  105. RAM_ARM9:0201D7CA 02 D1                       BNE     loc_201D7D2
  106. RAM_ARM9:0201D7CC 01 20 00 07                 MOVS    R0, 0x10000000
  107. RAM_ARM9:0201D7D0 44 40                       EORS    R4, R0
  108. RAM_ARM9:0201D7D2
  109. RAM_ARM9:0201D7D2             loc_201D7D2                             ; CODE XREF: makePID+6Ej
  110. RAM_ARM9:0201D7D2                                                     ; makePID+A6j
  111. RAM_ARM9:0201D7D2 01 20                       MOVS    R0, #1
  112. RAM_ARM9:0201D7D4 06 99                       LDR     R1, [SP,#0x18+abilityLock]
  113. RAM_ARM9:0201D7D6 00 04                       LSLS    R0, R0, #0x10
  114. RAM_ARM9:0201D7D8 22 1C                       MOVS    R2, R4
  115. RAM_ARM9:0201D7DA 02 40                       ANDS    R2, R0
  116. RAM_ARM9:0201D7DC 09 04                       LSLS    R1, R1, #0x10
  117. RAM_ARM9:0201D7DE 8A 42                       CMP     R2, R1
  118. RAM_ARM9:0201D7E0 00 D0                       BEQ     loc_201D7E4
  119. RAM_ARM9:0201D7E2
  120. RAM_ARM9:0201D7E2             loc_201D7E2                             ; CODE XREF: makePID+9Aj
  121. RAM_ARM9:0201D7E2 44 40                       EORS    R4, R0
  122. RAM_ARM9:0201D7E4
  123. RAM_ARM9:0201D7E4             loc_201D7E4                             ; CODE XREF: makePID+70j
  124. RAM_ARM9:0201D7E4                                                     ; makePID+98j ...
  125. RAM_ARM9:0201D7E4 20 1C                       MOVS    R0, R4
  126. RAM_ARM9:0201D7E6 F8 BD                       POP     {R3-R7,PC}
  127. RAM_ARM9:0201D7E6             ; End of function makePID
  128. RAM_ARM9:0201D7E6
  129. RAM_ARM9:0201D7E6             ; ---------------------------------------------------------------------------
  130. RAM_ARM9:0201D7E8 00 00 FF FF dword_201D7E8   DCD 0xFFFF0000          ; DATA XREF: makePID:loc_201D796r
Advertisement