Assembler code
__text:00002914 STR R3, [SP,#0x14+var_8]
__text:00002918 MOV R3, #0
__text:0000291C STRB R3, [SP,#0x14+var_1]
__text:00002920 MOV R0, #0xE
__text:00002924 BL __keymgr_get_and_lock_processwide_ptr
__text:00002928 MOV R3, R0
__text:0000292C STR R3, [SP,#0x14+var_C]
__text:00002930 LDR R3, [SP,#0x14+var_C]
__text:00002934 CMP R3, #0
__text:00002938 BEQ loc_296C
__text:0000293C LDR R3, [SP,#0x14+var_C]
__text:00002940 LDRB R3, [R3,#2]
__text:00002944 STRB R3, [SP,#0x14+var_1]
__text:00002948 LDR R2, [SP,#0x14+var_C]
__text:0000294C MOV R3, #1
__text:00002950 STRB R3, [R2,#2]
__text:00002954 LDR R3, [SP,#0x14+var_C]
__text:00002958 LDR R3, [R3,#4]
__text:0000295C STR R3, [SP,#0x14+var_8]
__text:00002960 MOV R0, #0xE
__text:00002964 LDR R1, [SP,#0x14+var_C]
__text:00002968 BL __keymgr_set_and_unlock_processwide_ptr
__text:0000296C
__text:0000296C loc_296C ; CODE XREF: sub_28F8+40↑j
__text:0000296C LDR R3, [SP,#0x14+var_10]
__text:00002970 LDR R3, [R3,#4]
__text:00002974 CMP R3, #0
__text:00002978 BEQ loc_2998
__text:0000297C LDR R3, [SP,#0x14+var_10]
__text:00002980 LDR R2, [R3]
__text:00002984 LDR R3, [SP,#0x14+var_10]
__text:00002988 LDR R3, [R3,#8]
__text:0000298C MOV R0, R3
__text:00002990 BLX R2
__text:00002994 B loc_29A4