Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- R0 = buffer0, R1 = buffer1, R2 = buffer2, R3 = size0
- ROM:22003724 sub_22003724 ; CODE XREF: sub_22003840+54p
- ROM:22003724
- ROM:22003724 var_8 = -8
- ROM:22003724 arg_0 = 0 keyType
- ROM:22003724 arg_4 = 4 key
- ROM:22003724 arg_8 = 8 option0
- ROM:22003724 arg_C = 0xC option1
- ROM:22003724 arg_10 = 0x10 size1
- ROM:22003724 arg_14 = 0x14 size2
- ROM:22003724 arg_18 = 0x18 size3
- ROM:22003724 arg_1C = 0x1C iv
- ROM:22003724
- ROM:22003724 PUSH {R4-R7,LR}
- ROM:22003726 MOV R6, R11
- ROM:22003728 MOV R5, R10
- ROM:2200372A MOV R4, R8
- ROM:2200372C PUSH {R4-R6}
- ROM:2200372E ADD R7, SP, #0x20+var_8
- ROM:22003730 LDR R5, =unk_2201B900
- ROM:22003732 ADDS R6, R3, #0
- ROM:22003734 LDR R3, =0x38C00008
- ROM:22003736 MOVS R4, #0
- ROM:22003738 MOV R11, R2
- ROM:2200373A MOVS R2, #1
- ROM:2200373C STR R4, [R5]
- unknown1 = 0;
- ROM:2200373E STR R2, [R3]
- SET_REG(AES + UNKREG0, 1);
- ROM:22003740 STR R4, [R3]
- SET_REG(AES + UNKREG0, 0);
- ROM:22003742 MOVLS R3, 0x38C00000
- ROM:22003746 MOV R8, R0
- ROM:22003748 STR R2, [R3]
- SET_REG(AES + CONTROL, 1);
- ROM:2200374A LDR R3, =0x38C0006C
- ROM:2200374C LDR R2, [SP,#0x20+arg_0]
- ROM:2200374E MOV R10, R1
- ROM:22003750 STR R2, [R3]
- SET_REG(AES + TYPE, keyType);
- ROM:22003752 LDR R0, [SP,#0x20+arg_4]
- ROM:22003754 BL sub_22003620
- loadKey(key);
- ROM:22003758 LDR R3, =0x38C00014
- ROM:2200375A MOVS R2, #6
- ROM:2200375C MOVS R0, #1
- ROM:2200375E STR R2, [R3]
- SET_REG(AES + KEYLEN, 6); // set bits 1 and 2
- ROM:22003760 BL sub_220035BC
- SET_REG(AES + KEYLEN, (GET_REG(AES + KEYLEN) & ~1) | operation); // 1 bit field starting at bit 0
- ROM:22003764 LDR R0, [SP,#0x20+arg_8]
- ROM:22003766 BL sub_22003594
- SET_REG(AES + KEYLEN, (GET_REG(AES + KEYLEN) & ~0x30) | (option0 << 4)); // 2 bit field starting at bit 4
- ROM:2200376A LDR R0, [SP,#0x20+arg_C]
- ROM:2200376C BL sub_220035A8
- SET_REG(AES + KEYLEN, (GET_REG(AES + KEYLEN) & ~0x8) | (option1 << 3)); // 1 bit field starting at bit 3
- ROM:22003770 LDR R0, [SP,#0x20+arg_1C]
- ROM:22003772 BL sub_220035DC
- initVector(iv);
- ROM:22003776 LDR R3, =0x38C00018
- ROM:22003778 MOV R2, R8
- ROM:2200377A STR R6, [R3]
- SET_REG(AES + INSIZE, size0);
- ROM:2200377C ADDS R3, #8
- ROM:2200377E STR R2, [R3]
- SET_REG(AES + INADDR, (uint32_t) buffer0);
- ROM:22003780 LDR R2, [SP,#0x20+arg_14]
- ROM:22003782 ADDS R3, #4
- ROM:22003784 STR R2, [R3]
- SET_REG(AES + OUTSIZE, size2);
- ROM:22003786 ADDS R3, #4
- ROM:22003788 MOV R2, R10
- ROM:2200378A STR R2, [R3]
- SET_REG(AES + OUTADDR, (uint32_t) buffer1);
- ROM:2200378C LDR R2, [SP,#0x20+arg_10]
- ROM:2200378E ADDS R3, #4
- ROM:22003790 STR R2, [R3]
- SET_REG(AES + AUXSIZE, size1);
- ROM:22003792 ADDS R3, #4
- ROM:22003794 MOV R2, R11
- ROM:22003796 STR R2, [R3]
- SET_REG(AES + AUXADDR, (uint32_t) buffer2);
- ROM:22003798 LDR R2, [SP,#0x20+arg_18]
- ROM:2200379A ADDS R3, #4
- ROM:2200379C STR R2, [R3]
- SET_REG(AES + SIZE3, size3);
- ROM:2200379E ADDS R3, #0x3C1c
- ROM:220037A0 MOVS R2, #2
- ROM:220037A2 STR R4, [R5]
- unknown1 = 0;
- ROM:220037A4 STR R2, [R3]
- SET_REG(AES + GO2, 2);
- ROM:220037A6 POP {R2-R4}
- ROM:220037A8 MOV R8, R2
- ROM:220037AA MOV R10, R3
- ROM:220037AC MOV R11, R4
- ROM:220037AE POP {R4-R7,PC}
- ROM:220037AE ; End of function sub_22003724
Add Comment
Please, Sign In to add comment