summaryrefslogtreecommitdiff
path: root/arm9/asm/math_util.s
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/asm/math_util.s')
-rw-r--r--arm9/asm/math_util.s679
1 files changed, 0 insertions, 679 deletions
diff --git a/arm9/asm/math_util.s b/arm9/asm/math_util.s
deleted file mode 100644
index 81114ace..00000000
--- a/arm9/asm/math_util.s
+++ /dev/null
@@ -1,679 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .extern UNK_020FFA38
-
- .section .rodata
-
- .global UNK_020EDB80
-UNK_020EDB80: ; 0x020EDB80
- .short 0x169F, 0x0F14, 0x0B4F, 0x090C, 0x078A, 0x0676, 0x05A7, 0x0506
- .short 0x0486, 0x041C, 0x03C5, 0x037A, 0x033B, 0x0304, 0x02D3, 0x02A9
- .short 0x0283, 0x0261, 0x0243, 0x0227, 0x020E, 0x01F7, 0x01E2, 0x01CF
- .short 0x01BD, 0x01AC, 0x019D, 0x018F, 0x0182, 0x0175, 0x0169, 0x015E
- .short 0x0154, 0x014A, 0x0141, 0x0139, 0x0130, 0x0128, 0x0121, 0x011A
- .short 0x0113, 0x010D, 0x0107, 0x0101, 0x00FB, 0x00F6, 0x00F1, 0x00EC
- .short 0x00E7, 0x00E3, 0x00DE, 0x00DA, 0x00D6, 0x00D2, 0x00CE, 0x00CB
- .short 0x00C7, 0x00C4, 0x00C1, 0x00BD, 0x00BA, 0x00B7, 0x00B4, 0x00B2
- .short 0x00AF, 0x00AC, 0x00AA, 0x00A7, 0x00A5, 0x00A3, 0x00A0, 0x009E
- .short 0x009C, 0x009A, 0x0098, 0x0096, 0x0094, 0x0092, 0x0090, 0x008E
- .short 0x008D, 0x008B, 0x0089, 0x0088, 0x0086, 0x0085, 0x0083, 0x0082
- .short 0x0080, 0x007F, 0x007D, 0x007C, 0x007B, 0x0079, 0x0078, 0x0077
- .short 0x0076, 0x0074, 0x0073, 0x0072, 0x0071, 0x0070, 0x006F, 0x006E
- .short 0x006D, 0x006C, 0x006B, 0x006A, 0x0069, 0x0068, 0x0067, 0x0066
- .short 0x0065, 0x0064, 0x0063, 0x0062, 0x0062, 0x0061, 0x0060, 0x005F
- .short 0x005E, 0x005E, 0x005D, 0x005C, 0x005B, 0x005B, 0x005A
-
- .global UNK_020EDC7E
-UNK_020EDC7E: ; 0x020EDC7E
- .short 0x0000, 0x00B7, 0x016D, 0x0223, 0x02D9, 0x038F, 0x0445, 0x04FB
- .short 0x05B1, 0x0667, 0x071D, 0x07D3, 0x0889, 0x093F, 0x09F5, 0x0AAB
- .short 0x0B61, 0x0C17, 0x0CCD, 0x0D83, 0x0E39, 0x0EEF, 0x0FA5, 0x105C
- .short 0x1112, 0x11C8, 0x127E, 0x1334, 0x13EA, 0x14A0, 0x1556, 0x160C
- .short 0x16C2, 0x1778, 0x182E, 0x18E4, 0x199A, 0x1A50, 0x1B06, 0x1BBC
- .short 0x1C72, 0x1D28, 0x1DDE, 0x1E94, 0x1F4A, 0x2000, 0x20B7, 0x216D
- .short 0x2223, 0x22D9, 0x238F, 0x2445, 0x24FB, 0x25B1, 0x2667, 0x271D
- .short 0x27D3, 0x2889, 0x293F, 0x29F5, 0x2AAB, 0x2B61, 0x2C17, 0x2CCD
- .short 0x2D83, 0x2E39, 0x2EEF, 0x2FA5, 0x305C, 0x3112, 0x31C8, 0x327E
- .short 0x3334, 0x33EA, 0x34A0, 0x3556, 0x360C, 0x36C2, 0x3778, 0x382E
- .short 0x38E4, 0x399A, 0x3A50, 0x3B06, 0x3BBC, 0x3C72, 0x3D28, 0x3DDE
- .short 0x3E94, 0x3F4A, 0x4000, 0x40B7, 0x416D, 0x4223, 0x42D9, 0x438F
- .short 0x4445, 0x44FB, 0x45B1, 0x4667, 0x471D, 0x47D3, 0x4889, 0x493F
- .short 0x49F5, 0x4AAB, 0x4B61, 0x4C17, 0x4CCD, 0x4D83, 0x4E39, 0x4EEF
- .short 0x4FA5, 0x505C, 0x5112, 0x51C8, 0x527E, 0x5334, 0x53EA, 0x54A0
- .short 0x5556, 0x560C, 0x56C2, 0x5778, 0x582E, 0x58E4, 0x599A, 0x5A50
- .short 0x5B06, 0x5BBC, 0x5C72, 0x5D28, 0x5DDE, 0x5E94, 0x5F4A, 0x6000
- .short 0x60B7, 0x616D, 0x6223, 0x62D9, 0x638F, 0x6445, 0x64FB, 0x65B1
- .short 0x6667, 0x671D, 0x67D3, 0x6889, 0x693F, 0x69F5, 0x6AAB, 0x6B61
- .short 0x6C17, 0x6CCD, 0x6D83, 0x6E39, 0x6EEF, 0x6FA5, 0x705C, 0x7112
- .short 0x71C8, 0x727E, 0x7334, 0x73EA, 0x74A0, 0x7556, 0x760C, 0x76C2
- .short 0x7778, 0x782E, 0x78E4, 0x799A, 0x7A50, 0x7B06, 0x7BBC, 0x7C72
- .short 0x7D28, 0x7DDE, 0x7E94, 0x7F4A, 0x8000, 0x80B7, 0x816D, 0x8223
- .short 0x82D9, 0x838F, 0x8445, 0x84FB, 0x85B1, 0x8667, 0x871D, 0x87D3
- .short 0x8889, 0x893F, 0x89F5, 0x8AAB, 0x8B61, 0x8C17, 0x8CCD, 0x8D83
- .short 0x8E39, 0x8EEF, 0x8FA5, 0x905C, 0x9112, 0x91C8, 0x927E, 0x9334
- .short 0x93EA, 0x94A0, 0x9556, 0x960C, 0x96C2, 0x9778, 0x982E, 0x98E4
- .short 0x999A, 0x9A50, 0x9B06, 0x9BBC, 0x9C72, 0x9D28, 0x9DDE, 0x9E94
- .short 0x9F4A, 0xA000, 0xA0B7, 0xA16D, 0xA223, 0xA2D9, 0xA38F, 0xA445
- .short 0xA4FB, 0xA5B1, 0xA667, 0xA71D, 0xA7D3, 0xA889, 0xA93F, 0xA9F5
- .short 0xAAAB, 0xAB61, 0xAC17, 0xACCD, 0xAD83, 0xAE39, 0xAEEF, 0xAFA5
- .short 0xB05C, 0xB112, 0xB1C8, 0xB27E, 0xB334, 0xB3EA, 0xB4A0, 0xB556
- .short 0xB60C, 0xB6C2, 0xB778, 0xB82E, 0xB8E4, 0xB99A, 0xBA50, 0xBB06
- .short 0xBBBC, 0xBC72, 0xBD28, 0xBDDE, 0xBE94, 0xBF4A, 0xC000, 0xC0B7
- .short 0xC16D, 0xC223, 0xC2D9, 0xC38F, 0xC445, 0xC4FB, 0xC5B1, 0xC667
- .short 0xC71D, 0xC7D3, 0xC889, 0xC93F, 0xC9F5, 0xCAAB, 0xCB61, 0xCC17
- .short 0xCCCD, 0xCD83, 0xCE39, 0xCEEF, 0xCFA5, 0xD05C, 0xD112, 0xD1C8
- .short 0xD27E, 0xD334, 0xD3EA, 0xD4A0, 0xD556, 0xD60C, 0xD6C2, 0xD778
- .short 0xD82E, 0xD8E4, 0xD99A, 0xDA50, 0xDB06, 0xDBBC, 0xDC72, 0xDD28
- .short 0xDDDE, 0xDE94, 0xDF4A, 0xE000, 0xE0B7, 0xE16D, 0xE223, 0xE2D9
- .short 0xE38F, 0xE445, 0xE4FB, 0xE5B1, 0xE667, 0xE71D, 0xE7D3, 0xE889
- .short 0xE93F, 0xE9F5, 0xEAAB, 0xEB61, 0xEC17, 0xECCD, 0xED83, 0xEE39
- .short 0xEEEF, 0xEFA5, 0xF05C, 0xF112, 0xF1C8, 0xF27E, 0xF334, 0xF3EA
- .short 0xF4A0, 0xF556, 0xF60C, 0xF6C2, 0xF778, 0xF82E, 0xF8E4, 0xF99A
- .short 0xFA50, 0xFB06, 0xFBBC, 0xFC72, 0xFD28, 0xFDDE, 0xFE94, 0xFF4A
-
- .balign 4, 0
- .global UNK_020EDF50
-UNK_020EDF50: ; 0x020EDF50
- .word 0x00000000, 0x00000047, 0x0000008F, 0x000000D6
- .word 0x0000011E, 0x00000165, 0x000001AC, 0x000001F3
- .word 0x0000023A, 0x00000281, 0x000002C7, 0x0000030E
- .word 0x00000354, 0x00000399, 0x000003DF, 0x00000424
- .word 0x00000469, 0x000004AE, 0x000004F2, 0x00000536
- .word 0x00000579, 0x000005BC, 0x000005FE, 0x00000640
- .word 0x00000682, 0x000006C3, 0x00000704, 0x00000744
- .word 0x00000783, 0x000007C2, 0x00000800, 0x0000083E
- .word 0x0000087B, 0x000008B7, 0x000008F2, 0x0000092D
- .word 0x00000968, 0x000009A1, 0x000009DA, 0x00000A12
- .word 0x00000A49, 0x00000A7F, 0x00000AB5, 0x00000AE9
- .word 0x00000B1D, 0x00000B50, 0x00000B82, 0x00000BB4
- .word 0x00000BE4, 0x00000C13, 0x00000C42, 0x00000C6F
- .word 0x00000C9C, 0x00000CC7, 0x00000CF2, 0x00000D1B
- .word 0x00000D44, 0x00000D6B, 0x00000D92, 0x00000DB7
- .word 0x00000DDB, 0x00000DFE, 0x00000E21, 0x00000E42
- .word 0x00000E61, 0x00000E80, 0x00000E9E, 0x00000EBA
- .word 0x00000ED6, 0x00000EF0, 0x00000F09, 0x00000F21
- .word 0x00000F38, 0x00000F4D, 0x00000F61, 0x00000F74
- .word 0x00000F86, 0x00000F97, 0x00000FA6, 0x00000FB5
- .word 0x00000FC2, 0x00000FCE, 0x00000FD8, 0x00000FE1
- .word 0x00000FEA, 0x00000FF0, 0x00000FF6, 0x00000FFA
- .word 0x00000FFE, 0x00000FFF, 0x00001000, 0x00000FFF
- .word 0x00000FFE, 0x00000FFA, 0x00000FF6, 0x00000FF0
- .word 0x00000FEA, 0x00000FE1, 0x00000FD8, 0x00000FCE
- .word 0x00000FC2, 0x00000FB5, 0x00000FA6, 0x00000F97
- .word 0x00000F86, 0x00000F74, 0x00000F61, 0x00000F4D
- .word 0x00000F38, 0x00000F21, 0x00000F09, 0x00000EF0
- .word 0x00000ED6, 0x00000EBA, 0x00000E9E, 0x00000E80
- .word 0x00000E61, 0x00000E42, 0x00000E21, 0x00000DFE
- .word 0x00000DDB, 0x00000DB7, 0x00000D92, 0x00000D6B
- .word 0x00000D44, 0x00000D1B, 0x00000CF2, 0x00000CC7
- .word 0x00000C9C, 0x00000C6F, 0x00000C42, 0x00000C13
- .word 0x00000BE4, 0x00000BB4, 0x00000B82, 0x00000B50
- .word 0x00000B1D, 0x00000AE9, 0x00000AB5, 0x00000A7F
- .word 0x00000A49, 0x00000A12, 0x000009DA, 0x000009A1
- .word 0x00000968, 0x0000092D, 0x000008F2, 0x000008B7
- .word 0x0000087B, 0x0000083E, 0x00000800, 0x000007C2
- .word 0x00000783, 0x00000744, 0x00000704, 0x000006C3
- .word 0x00000682, 0x00000640, 0x000005FE, 0x000005BC
- .word 0x00000579, 0x00000536, 0x000004F2, 0x000004AE
- .word 0x00000469, 0x00000424, 0x000003DF, 0x00000399
- .word 0x00000354, 0x0000030E, 0x000002C7, 0x00000281
- .word 0x0000023A, 0x000001F3, 0x000001AC, 0x00000165
- .word 0x0000011E, 0x000000D6, 0x0000008F, 0x00000047
- .word 0x00000000, 0xFFFFFFB9, 0xFFFFFF71, 0xFFFFFF2A
- .word 0xFFFFFEE2, 0xFFFFFE9B, 0xFFFFFE54, 0xFFFFFE0D
- .word 0xFFFFFDC6, 0xFFFFFD7F, 0xFFFFFD39, 0xFFFFFCF2
- .word 0xFFFFFCAC, 0xFFFFFC67, 0xFFFFFC21, 0xFFFFFBDC
- .word 0xFFFFFB97, 0xFFFFFB52, 0xFFFFFB0E, 0xFFFFFACA
- .word 0xFFFFFA87, 0xFFFFFA44, 0xFFFFFA02, 0xFFFFF9C0
- .word 0xFFFFF97E, 0xFFFFF93D, 0xFFFFF8FC, 0xFFFFF8BC
- .word 0xFFFFF87D, 0xFFFFF83E, 0xFFFFF800, 0xFFFFF7C2
- .word 0xFFFFF785, 0xFFFFF749, 0xFFFFF70E, 0xFFFFF6D3
- .word 0xFFFFF698, 0xFFFFF65F, 0xFFFFF626, 0xFFFFF5EE
- .word 0xFFFFF5B7, 0xFFFFF581, 0xFFFFF54B, 0xFFFFF517
- .word 0xFFFFF4E3, 0xFFFFF4B0, 0xFFFFF47E, 0xFFFFF44C
- .word 0xFFFFF41C, 0xFFFFF3ED, 0xFFFFF3BE, 0xFFFFF391
- .word 0xFFFFF364, 0xFFFFF339, 0xFFFFF30E, 0xFFFFF2E5
- .word 0xFFFFF2BC, 0xFFFFF295, 0xFFFFF26E, 0xFFFFF249
- .word 0xFFFFF225, 0xFFFFF202, 0xFFFFF1DF, 0xFFFFF1BE
- .word 0xFFFFF19F, 0xFFFFF180, 0xFFFFF162, 0xFFFFF146
- .word 0xFFFFF12A, 0xFFFFF110, 0xFFFFF0F7, 0xFFFFF0DF
- .word 0xFFFFF0C8, 0xFFFFF0B3, 0xFFFFF09F, 0xFFFFF08C
- .word 0xFFFFF07A, 0xFFFFF069, 0xFFFFF05A, 0xFFFFF04B
- .word 0xFFFFF03E, 0xFFFFF032, 0xFFFFF028, 0xFFFFF01F
- .word 0xFFFFF016, 0xFFFFF010, 0xFFFFF00A, 0xFFFFF006
- .word 0xFFFFF002, 0xFFFFF001, 0xFFFFF000, 0xFFFFF001
- .word 0xFFFFF002, 0xFFFFF006, 0xFFFFF00A, 0xFFFFF010
- .word 0xFFFFF016, 0xFFFFF01F, 0xFFFFF028, 0xFFFFF032
- .word 0xFFFFF03E, 0xFFFFF04B, 0xFFFFF05A, 0xFFFFF069
- .word 0xFFFFF07A, 0xFFFFF08C, 0xFFFFF09F, 0xFFFFF0B3
- .word 0xFFFFF0C8, 0xFFFFF0DF, 0xFFFFF0F7, 0xFFFFF110
- .word 0xFFFFF12A, 0xFFFFF146, 0xFFFFF162, 0xFFFFF180
- .word 0xFFFFF19F, 0xFFFFF1BE, 0xFFFFF1DF, 0xFFFFF202
- .word 0xFFFFF225, 0xFFFFF249, 0xFFFFF26E, 0xFFFFF295
- .word 0xFFFFF2BC, 0xFFFFF2E5, 0xFFFFF30E, 0xFFFFF339
- .word 0xFFFFF364, 0xFFFFF391, 0xFFFFF3BE, 0xFFFFF3ED
- .word 0xFFFFF41C, 0xFFFFF44C, 0xFFFFF47E, 0xFFFFF4B0
- .word 0xFFFFF4E3, 0xFFFFF517, 0xFFFFF54B, 0xFFFFF581
- .word 0xFFFFF5B7, 0xFFFFF5EE, 0xFFFFF626, 0xFFFFF65F
- .word 0xFFFFF698, 0xFFFFF6D3, 0xFFFFF70E, 0xFFFFF749
- .word 0xFFFFF785, 0xFFFFF7C2, 0xFFFFF800, 0xFFFFF83E
- .word 0xFFFFF87D, 0xFFFFF8BC, 0xFFFFF8FC, 0xFFFFF93D
- .word 0xFFFFF97E, 0xFFFFF9C0, 0xFFFFFA02, 0xFFFFFA44
- .word 0xFFFFFA87, 0xFFFFFACA, 0xFFFFFB0E, 0xFFFFFB52
- .word 0xFFFFFB97, 0xFFFFFBDC, 0xFFFFFC21, 0xFFFFFC67
- .word 0xFFFFFCAC, 0xFFFFFCF2, 0xFFFFFD39, 0xFFFFFD7F
- .word 0xFFFFFDC6, 0xFFFFFE0D, 0xFFFFFE54, 0xFFFFFE9B
- .word 0xFFFFFEE2, 0xFFFFFF2A, 0xFFFFFF71, 0xFFFFFFB9
- .word 0x00000000, 0x00000047, 0x0000008F, 0x000000D6
- .word 0x0000011E, 0x00000165, 0x000001AC, 0x000001F3
- .word 0x0000023A, 0x00000281, 0x000002C7, 0x0000030E
- .word 0x00000354, 0x00000399, 0x000003DF, 0x00000424
- .word 0x00000469, 0x000004AE, 0x000004F2, 0x00000536
- .word 0x00000579, 0x000005BC, 0x000005FE, 0x00000640
- .word 0x00000682, 0x000006C3, 0x00000704, 0x00000744
- .word 0x00000783, 0x000007C2, 0x00000800, 0x0000083E
- .word 0x0000087B, 0x000008B7, 0x000008F2, 0x0000092D
- .word 0x00000968, 0x000009A1, 0x000009DA, 0x00000A12
- .word 0x00000A49, 0x00000A7F, 0x00000AB5, 0x00000AE9
- .word 0x00000B1D, 0x00000B50, 0x00000B82, 0x00000BB4
- .word 0x00000BE4, 0x00000C13, 0x00000C42, 0x00000C6F
- .word 0x00000C9C, 0x00000CC7, 0x00000CF2, 0x00000D1B
- .word 0x00000D44, 0x00000D6B, 0x00000D92, 0x00000DB7
- .word 0x00000DDB, 0x00000DFE, 0x00000E21, 0x00000E42
- .word 0x00000E61, 0x00000E80, 0x00000E9E, 0x00000EBA
- .word 0x00000ED6, 0x00000EF0, 0x00000F09, 0x00000F21
- .word 0x00000F38, 0x00000F4D, 0x00000F61, 0x00000F74
- .word 0x00000F86, 0x00000F97, 0x00000FA6, 0x00000FB5
- .word 0x00000FC2, 0x00000FCE, 0x00000FD8, 0x00000FE1
- .word 0x00000FEA, 0x00000FF0, 0x00000FF6, 0x00000FFA
- .word 0x00000FFE, 0x00000FFF
-
- .section .data
-
- .global UNK_02105BA8
-UNK_02105BA8: ; 0x02105BA8
- .byte 0x71, 0x02, 0x00, 0x00
-
- .global UNK_02105BAC
-UNK_02105BAC: ; 0x02105BAC
- .byte 0x00, 0x00, 0x00, 0x00, 0xDF, 0xB0, 0x08, 0x99
-
- .section .bss
-
- .global gLCRNG_State
-gLCRNG_State: ; 0x021C4D48
- .space 4
-
- .global gMTRNG_State
-gMTRNG_State: ; 0x021C4D4C
- .space 624 * 4
-
- .text
-
- thumb_func_start FUN_0201B93C
-FUN_0201B93C: ; 0x0201B93C
- mov r1, #0x5a
- lsl r1, r1, #0x2
- cmp r0, r1
- blo _0201B948
- mov r0, #0x0
- bx lr
-_0201B948:
- lsl r1, r0, #0x2
- ldr r0, _0201B950 ; =UNK_020EDF50
- ldr r0, [r0, r1]
- bx lr
- .balign 4
-_0201B950: .word UNK_020EDF50
-
- thumb_func_start FUN_0201B954
-FUN_0201B954: ; 0x0201B954
- mov r1, #0x5a
- lsl r1, r1, #0x2
- cmp r0, r1
- blo _0201B960
- mov r0, #0x0
- bx lr
-_0201B960:
- add r0, #0x5a
- lsl r1, r0, #0x2
- ldr r0, _0201B96C ; =UNK_020EDF50
- ldr r0, [r0, r1]
- bx lr
- nop
-_0201B96C: .word UNK_020EDF50
-
- thumb_func_start FUN_0201B970
-FUN_0201B970: ; 0x0201B970
- ; gSineTable[x % 360]
- push {r3, lr}
- mov r1, #0x5a
- lsl r1, r1, #0x2
- bl _s32_div_f
- ldr r0, _0201B984 ; =UNK_020EDF50
- lsl r1, r1, #0x2
- ldr r0, [r0, r1]
- pop {r3, pc}
- nop
-_0201B984: .word UNK_020EDF50
-
- thumb_func_start FUN_0201B988
-FUN_0201B988: ; 0x0201B988
- ; gSineTable[(x % 360) + 90]
- push {r3, lr}
- mov r1, #0x5a
- lsl r1, r1, #0x2
- bl _s32_div_f
- add r1, #0x5a
- ldr r0, _0201B99C ; =UNK_020EDF50
- lsl r1, r1, #0x2
- ldr r0, [r0, r1]
- pop {r3, pc}
- .balign 4
-_0201B99C: .word UNK_020EDF50
-
- thumb_func_start FUN_0201B9A0
-FUN_0201B9A0: ; 0x0201B9A0
- ; UNK_020EDC7E[x % 360]
- push {r3, lr}
- mov r1, #0x5a
- lsl r1, r1, #0x2
- bl _s32_div_f
- ldr r0, _0201B9B4 ; =UNK_020EDC7E
- lsl r1, r1, #0x1
- ldrh r0, [r0, r1]
- pop {r3, pc}
- nop
-_0201B9B4: .word UNK_020EDC7E
-
- thumb_func_start FUN_0201B9B8
-FUN_0201B9B8: ; 0x0201B9B8
- ; gSineTable[((x << 4) >> 16) % 360]
- push {r3, lr}
- lsl r0, r0, #0x4
- mov r1, #0x5a
- lsr r0, r0, #0x10
- lsl r1, r1, #0x2
- bl _s32_div_f
- ldr r0, _0201B9D0 ; =UNK_020EDF50
- lsl r1, r1, #0x2
- ldr r0, [r0, r1]
- pop {r3, pc}
- nop
-_0201B9D0: .word UNK_020EDF50
-
- thumb_func_start getseed_LC
-getseed_LC: ; 0x0201B9D4
- ldr r0, _0201B9DC ; =gLCRNG_State
- ldr r0, [r0, #0x0]
- bx lr
- nop
-_0201B9DC: .word gLCRNG_State
-
- thumb_func_start seedr_LC
-seedr_LC: ; 0x0201B9E0
- ldr r1, _0201B9E8 ; =gLCRNG_State
- str r0, [r1, #0x0]
- bx lr
- nop
-_0201B9E8: .word gLCRNG_State
-
- thumb_func_start rand_LC
-rand_LC: ; 0x0201B9EC
- ldr r1, _0201BA04 ; =gLCRNG_State
- ldr r0, _0201BA08 ; =0x41C64E6D
- ldr r2, [r1, #0x0]
- add r3, r2, #0x0
- mul r3, r0
- ldr r0, _0201BA0C ; =0x00006073
- add r0, r3, r0
- str r0, [r1, #0x0]
- lsr r0, r0, #0x10
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bx lr
- .balign 4
-_0201BA04: .word gLCRNG_State
-_0201BA08: .word 0x41C64E6D
-_0201BA0C: .word 0x00006073
-
- thumb_func_start rand_ALT
-rand_ALT: ; 0x0201BA10
- ldr r1, _0201BA18 ; =0x6C078965
- mul r1, r0
- add r0, r1, #0x1
- bx lr
- .balign 4
-_0201BA18: .word 0x6C078965
-
- thumb_func_start seedr_MT
-seedr_MT: ; 0x0201BA1C
- push {r4-r5}
- ldr r1, _0201BA50 ; =gLCRNG_State
- mov r4, #0x27
- str r0, [r1, #0x4]
- ldr r1, _0201BA54 ; =UNK_02105BA8
- mov r0, #0x1
- str r0, [r1, #0x0]
- ldr r1, _0201BA58 ; =gMTRNG_State + 4
- ldr r3, _0201BA5C ; =0x6C078965
- lsl r4, r4, #0x4
-_0201BA30:
- sub r2, r1, #0x4
- ldr r5, [r2, #0x0]
- lsr r2, r5, #0x1e
- eor r2, r5
- add r5, r2, #0x0
- mul r5, r3
- add r2, r0, r5
- add r0, r0, #0x1
- stmia r1!, {r2}
- cmp r0, r4
- blt _0201BA30
- ldr r1, _0201BA54 ; =UNK_02105BA8
- str r0, [r1, #0x0]
- pop {r4-r5}
- bx lr
- nop
-_0201BA50: .word gLCRNG_State
-_0201BA54: .word UNK_02105BA8
-_0201BA58: .word gMTRNG_State + 4
-_0201BA5C: .word 0x6C078965
-
- thumb_func_start rand_MT
-rand_MT: ; 0x0201BA60
- push {r3-r7, lr}
- ldr r0, _0201BB44 ; =UNK_02105BA8
- ldr r1, [r0, #0x0]
- mov r0, #0x27
- lsl r0, r0, #0x4
- cmp r1, r0
- blt _0201BB18
- add r0, r0, #0x1
- cmp r1, r0
- bne _0201BA7A
- ldr r0, _0201BB48 ; =0x00001571
- bl seedr_MT
-_0201BA7A:
- ldr r4, _0201BB4C ; =gMTRNG_State
- ldr r1, _0201BB50 ; =UNK_02105BAC
- ldr r5, _0201BB54 ; =0x7FFFFFFF
- ldr r6, _0201BB58 ; =0x00000634
- mov r0, #0x0
-_0201BA84:
- mov r2, #0x2
- ldr r3, [r4, #0x0]
- lsl r2, r2, #0x1e
- and r3, r2
- ldr r2, [r4, #0x4]
- add r0, r0, #0x1
- and r2, r5
- orr r3, r2
- lsr r7, r3, #0x1
- lsl r3, r3, #0x1f
- ldr r2, [r4, r6]
- lsr r3, r3, #0x1d
- ldr r3, [r1, r3]
- eor r2, r7
- eor r2, r3
- stmia r4!, {r2}
- cmp r0, #0xe3
- blt _0201BA84
- ldr r1, _0201BB5C ; =0x0000026F
- cmp r0, r1
- bge _0201BAE4
- ldr r2, _0201BB4C ; =gMTRNG_State
- lsl r1, r0, #0x2
- add r1, r2, r1
- mov r2, #0xe3
- ldr r4, _0201BB50 ; =UNK_02105BAC
- ldr r3, _0201BB5C ; =0x0000026F
- lsl r2, r2, #0x2
-_0201BABC:
- mov r5, #0x2
- ldr r6, [r1, #0x0]
- lsl r5, r5, #0x1e
- and r5, r6
- ldr r7, [r1, #0x4]
- ldr r6, _0201BB54 ; =0x7FFFFFFF
- add r0, r0, #0x1
- and r6, r7
- orr r6, r5
- lsr r5, r6, #0x1
- sub r7, r1, r2
- lsl r6, r6, #0x1f
- ldr r7, [r7, #0x0]
- lsr r6, r6, #0x1d
- ldr r6, [r4, r6]
- eor r5, r7
- eor r5, r6
- stmia r1!, {r5}
- cmp r0, r3
- blt _0201BABC
-_0201BAE4:
- ldr r2, _0201BB60 ; =gMTRNG_State + 607 * 4
- mov r0, #0x2
- ldr r1, [r2, #0x40]
- lsl r0, r0, #0x1e
- add r3, r1, #0x0
- ldr r1, _0201BB64 ; =gLCRNG_State
- and r3, r0
- ldr r1, [r1, #0x4]
- sub r0, r0, #0x1
- and r0, r1
- add r4, r3, #0x0
- orr r4, r0
- ldr r0, _0201BB68 ; =gMTRNG_State + 383 * 4
- ldr r1, [r0, #0x34]
- lsr r0, r4, #0x1
- add r3, r1, #0x0
- eor r3, r0
- lsl r0, r4, #0x1f
- lsr r1, r0, #0x1d
- ldr r0, _0201BB50 ; =UNK_02105BAC
- ldr r0, [r0, r1]
- mov r1, #0x0
- eor r0, r3
- str r0, [r2, #0x40]
- ldr r0, _0201BB44 ; =UNK_02105BA8
- str r1, [r0, #0x0]
-_0201BB18:
- ldr r0, _0201BB44 ; =UNK_02105BA8
- ldr r2, [r0, #0x0]
- add r1, r2, #0x1
- str r1, [r0, #0x0]
- ldr r0, _0201BB4C ; =gMTRNG_State
- lsl r1, r2, #0x2
- ldr r1, [r0, r1]
- lsr r0, r1, #0xb
- add r2, r1, #0x0
- eor r2, r0
- ldr r0, _0201BB6C ; =0x9D2C5680
- lsl r1, r2, #0x7
- and r0, r1
- eor r2, r0
- ldr r0, _0201BB70 ; =0xEFC60000
- lsl r1, r2, #0xf
- and r0, r1
- add r1, r2, #0x0
- eor r1, r0
- lsr r0, r1, #0x12
- eor r0, r1
- pop {r3-r7, pc}
- .balign 4
-_0201BB44: .word UNK_02105BA8
-_0201BB48: .word 0x00001571
-_0201BB4C: .word gMTRNG_State
-_0201BB50: .word UNK_02105BAC
-_0201BB54: .word 0x7FFFFFFF
-_0201BB58: .word 0x00000634
-_0201BB5C: .word 0x0000026F
-_0201BB60: .word gMTRNG_State + 607 * 4
-_0201BB64: .word gLCRNG_State
-_0201BB68: .word gMTRNG_State + 383 * 4
-_0201BB6C: .word 0x9D2C5680
-_0201BB70: .word 0xEFC60000
-
- thumb_func_start FUN_0201BB74
-FUN_0201BB74: ; 0x0201BB74
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, sp, #0x0
- ldrb r0, [r0, #0x10]
- add r4, r2, #0x0
- add r6, r3, #0x0
- cmp r0, #0x1
- bne _0201BB8E
- ldr r0, _0201BBC8 ; =0x0000FFFF
- mul r0, r1
- lsl r0, r0, #0x8
- lsr r1, r0, #0x10
- b _0201BBA2
-_0201BB8E:
- cmp r0, #0x2
- bne _0201BBA2
- ldr r0, _0201BBC8 ; =0x0000FFFF
- mul r0, r1
- mov r1, #0x5a
- lsl r1, r1, #0x2
- bl _u32_div_f
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
-_0201BBA2:
- asr r0, r1, #0x4
- lsl r3, r0, #0x1
- lsl r1, r3, #0x1
- ldr r2, _0201BBCC ; =UNK_020FFA38
- add r3, r3, #0x1
- lsl r3, r3, #0x1
- ldrsh r1, [r2, r1]
- ldrsh r2, [r2, r3]
- add r0, r5, #0x0
- bl MTX_Rot22_
- add r0, r5, #0x0
- add r1, r5, #0x0
- add r2, r4, #0x0
- add r3, r6, #0x0
- bl MTX_ScaleApply22
- pop {r4-r6, pc}
- nop
-_0201BBC8: .word 0x0000FFFF
-_0201BBCC: .word UNK_020FFA38
-
- thumb_func_start FUN_0201BBD0
-FUN_0201BBD0: ; 0x0201BBD0
- push {r3-r7, lr}
- sub sp, #0x38
- lsl r5, r0, #0xc
- lsl r4, r1, #0xc
- mov r1, #0x0
- lsl r0, r2, #0xc
- lsl r6, r3, #0xc
- str r1, [sp, #0x34]
- str r0, [sp, #0x0]
- str r0, [sp, #0x20]
- str r1, [sp, #0x28]
- str r1, [sp, #0x8]
- str r1, [sp, #0xc]
- asr r1, r5, #0x1f
- add r0, r5, #0x0
- asr r3, r6, #0x1f
- add r2, r6, #0x0
- str r5, [sp, #0x2c]
- str r4, [sp, #0x30]
- str r6, [sp, #0x24]
- bl _ll_mul
- str r0, [sp, #0x4]
- add r2, r4, #0x0
- ldr r0, [sp, #0x20]
- add r7, r1, #0x0
- asr r1, r0, #0x1f
- asr r3, r2, #0x1f
- bl _ll_mul
- mov r2, #0x2
- ldr r3, [sp, #0x4]
- lsl r2, r2, #0xa
- add r3, r3, r2
- ldr r2, _0201BC80 ; =0x00000000
- str r4, [sp, #0x2c]
- adc r7, r2
- lsl r2, r7, #0x14
- lsr r3, r3, #0xc
- orr r3, r2
- mov r2, #0x2
- lsl r2, r2, #0xa
- add r0, r0, r2
- ldr r2, _0201BC80 ; =0x00000000
- str r5, [sp, #0x30]
- adc r1, r2
- lsl r1, r1, #0x14
- lsr r0, r0, #0xc
- orr r0, r1
- sub r2, r3, r0
- ldr r1, [sp, #0x8]
- ldr r0, [sp, #0xc]
- str r2, [sp, #0x10]
- add r0, r1, r0
- add r7, r2, r0
- mov r0, #0x0
- str r0, [sp, #0x34]
- add r0, sp, #0x2c
- add r1, sp, #0x14
- bl VEC_Normalize
- mov r1, #0x0
- ldr r0, [sp, #0x0]
- str r1, [sp, #0x34]
- str r0, [sp, #0x20]
- str r1, [sp, #0x28]
- add r0, sp, #0x20
- add r1, sp, #0x2c
- add r2, sp, #0x8
- str r5, [sp, #0x2c]
- str r4, [sp, #0x30]
- str r6, [sp, #0x24]
- bl VEC_Subtract
- add r0, sp, #0x14
- add r1, sp, #0x8
- bl VEC_DotProduct
- asr r0, r0, #0xc
- bpl _0201BC72
- neg r0, r0
-_0201BC72:
- cmp r7, #0x0
- bgt _0201BC7C
- mov r1, #0x0
- mvn r1, r1
- mul r0, r1
-_0201BC7C:
- add sp, #0x38
- pop {r3-r7, pc}
- .balign 4
-_0201BC80: .word 0x00000000
-
- thumb_func_start FUN_0201BC84
-FUN_0201BC84: ; 0x0201BC84
- push {r3-r5, lr}
- lsl r0, r0, #0xd
- add r4, r1, #0x0
- ldr r2, _0201BCB4 ; =0x0000323D
- asr r1, r0, #0x1f
- mov r3, #0x0
- bl _ll_mul
- add r5, r0, #0x0
- ldr r0, _0201BCB8 ; =0x0000FFFF
- mov r2, #0x2
- mov r3, #0x0
- lsl r2, r2, #0xa
- mul r0, r4
- add r2, r5, r2
- adc r1, r3
- lsl r1, r1, #0x14
- lsr r2, r2, #0xc
- orr r2, r1
- asr r1, r2, #0xc
- bl _s32_div_f
- pop {r3-r5, pc}
- nop
-_0201BCB4: .word 0x0000323D
-_0201BCB8: .word 0x0000FFFF