No problem, I may use something similar like this in the future so I wrote up a simple routine. Fair warning: I haven't tested it, so you'll have to let me know if it works. I heavily commented it to help you get the hang of assembly.
I wasn't sure if special 0xDC returned the move position as 0x0-0x3 or 0x1-0x4. If the latter, you'll have to add a line to the routine (specifics in the comments)
Code:
.text
.align 2
.thumb
.thumb_func
main:
push {r0-r2, lr}
ldr r0, .var8005
ldrb r0, [r0] @r0 = selected move position
mov r1, #0xD @r1 is the attribute to "decrypt" move IDs are between 0xD-0x10
add r1, r1, r0 @get move ID of attack (1+0x8005 value) - if special 0xDC returns 0x1-0x4 instead of 0x0-0x3, add a sub r1, r1, #0x1 below this line
ldr r0, .var8004
ldrb r0, [r0] @get selected pokemon's slot number (0x0-0x5)
mov r2, #0x64
mul r0, r0, r2 @100*slot#
ldr r2, .PartyPoke @address for first pokemon in your party
add r0, r2, r0 @r0 = address of selected pokemon
ldr r2, .GetAttr
bl linker @store move ID in r0
ldr r1, .var8006 @change to .var8005 if you want to store the moveID back in 0x8005 instead
strh r0, [r1] @store move ID in var 0x8006
pop {r0-r2, pc}
linker:
bx r2
.align 2
.var8005: .word 0x020370C2
.GetAttr: .word 0x0803FBE9
.var8004: .word 0x020370C0
.PartyPoke: .word 0x02024284
.var8006: .word 0x020370C4
Hope this helps!