mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-04-19 21:47:36 -05:00
93 lines
1.5 KiB
ArmAsm
93 lines
1.5 KiB
ArmAsm
.include "macros/function.inc"
|
|
|
|
|
|
|
|
.text
|
|
|
|
|
|
arm_func_start CRYPTO_RC4FastInit
|
|
CRYPTO_RC4FastInit: ; 0x020A490C
|
|
stmfd sp!, {r4, r5, r6, lr}
|
|
mov r3, #0
|
|
str r3, [r0, #0]
|
|
cmp r2, #0x10
|
|
str r3, [r0, #4]
|
|
movhi r2, #0x10
|
|
add r0, r0, #8
|
|
_020A4928:
|
|
str r3, [r0, r3, lsl #2]
|
|
add r3, r3, #1
|
|
cmp r3, #0x100
|
|
blt _020A4928
|
|
mov r5, #0
|
|
mov r6, r5
|
|
mov lr, r5
|
|
mov ip, r5
|
|
_020A4948:
|
|
ldrb r3, [r1, r6]
|
|
ldr r4, [r0, lr, lsl #2]
|
|
add r6, r6, #1
|
|
add r3, r4, r3
|
|
add r3, r5, r3
|
|
and r5, r3, #0xff
|
|
ldr r3, [r0, r5, lsl #2]
|
|
cmp r6, r2
|
|
str r3, [r0, lr, lsl #2]
|
|
add lr, lr, #1
|
|
moveq r6, ip
|
|
str r4, [r0, r5, lsl #2]
|
|
cmp lr, #0x100
|
|
blt _020A4948
|
|
mov r2, #0
|
|
_020A4984:
|
|
ldr r1, [r0, r2, lsl #2]
|
|
mov r1, r1, lsl #0x18
|
|
str r1, [r0, r2, lsl #2]
|
|
add r2, r2, #1
|
|
cmp r2, #0x100
|
|
blt _020A4984
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end CRYPTO_RC4FastInit
|
|
|
|
arm_func_start CRYPTO_RC4Init
|
|
CRYPTO_RC4Init: ; 0x020A49A4
|
|
stmfd sp!, {r4, r5, r6, r7, lr}
|
|
sub sp, sp, #4
|
|
mov r3, #0
|
|
strb r3, [r0]
|
|
cmp r2, #0x10
|
|
strb r3, [r0, #1]
|
|
movhi r2, #0x10
|
|
add r0, r0, #4
|
|
_020A49C4:
|
|
strb r3, [r0, r3]
|
|
add r3, r3, #1
|
|
cmp r3, #0x100
|
|
blt _020A49C4
|
|
mov r6, #0
|
|
mov r7, r6
|
|
mov r4, r6
|
|
mov r3, r6
|
|
and ip, r2, #0xff
|
|
_020A49E8:
|
|
ldrb r5, [r0, r4]
|
|
ldrb lr, [r1, r7]
|
|
add r2, r7, #1
|
|
and r7, r2, #0xff
|
|
add r2, r5, lr
|
|
add r2, r6, r2
|
|
and r6, r2, #0xff
|
|
ldrb r2, [r0, r6]
|
|
add lr, r0, r4
|
|
add r4, r4, #1
|
|
strb r2, [lr]
|
|
cmp r7, ip
|
|
moveq r7, r3
|
|
cmp r4, #0x100
|
|
strb r5, [r0, r6]
|
|
blt _020A49E8
|
|
add sp, sp, #4
|
|
ldmia sp!, {r4, r5, r6, r7, lr}
|
|
bx lr
|
|
arm_func_end CRYPTO_RC4Init |