monxxx
02-18-2008, 11:07 AM
Hi,
how to convert this asm code to c or delphi?
RAM:00002392 FLDecodeClaudia
RAM:00002392 PUSH {R4,R5,LR}
RAM:00002394 ADD R4, R0, #0 ; R4 = receive buffer
RAM:00002396 ADD R0, R4, #1 ; R0 = Pointer to Claudia data
RAM:00002398 MOV R1, #0x40 ; '@' ; R1 = Size
RAM:0000239A LDR R2, =FLTmpBuf
RAM:0000239C MOV R3, #0x20 ; ' '
RAM:0000239E LDR R5, =0x84000F
RAM:000023A0 MOV LR, PC
RAM:000023A2 BX R5 ; Call Decode
RAM:000023A4 MOV R0, #0x3C ; '<'
RAM:000023A6 LDRB R0, [R0,R4]
RAM:000023A8 LSL R1, R0, #8
RAM:000023AA LDRB R0, [R4,#5]
RAM:000023AC ORR R0, R1
RAM:000023AE LDR R1, =FLFlashCipher
RAM:000023B0 STR R0, [R1]
RAM:000023B2 LDR R0, =FLFlashCfg
RAM:000023B4 MOV R1, #0x2E ; '.'
RAM:000023B6 LDRB R1, [R1,R4]
RAM:000023B8 LSL R1, R1, #0x1C
RAM:000023BA LSR R1, R1, #7
RAM:000023BC STR R1, [R0]
RAM:000023BE LDRB R2, [R4,#8]
RAM:000023C0 LSR R2, R2, #1
RAM:000023C2 BCC loc_23CC
RAM:000023C4 MOVL R2, 0x2000000
RAM:000023C8 ORR R2, R1
RAM:000023CA STR R2, [R0]
RAM:000023CC
RAM:000023CC loc_23CC ; CODE XREF: FLDecodeClaudia+30j
RAM:000023CC MOV R1, #0x36 ; '6'
RAM:000023CE LDRB R1, [R1,R4]
RAM:000023D0 LSR R1, R1, #1
RAM:000023D2 BCC loc_23DC
RAM:000023D4 LDRB R2, [R0,#1]
RAM:000023D6 MOV R1, #0x10
RAM:000023D8 ORR R1, R2
RAM:000023DA STRB R1, [R0,#1]
RAM:000023DC
RAM:000023DC loc_23DC ; CODE XREF: FLDecodeClaudia+40j
RAM:000023DC MOV R1, #0x20 ; ' '
RAM:000023DE LDRB R1, [R1,R4]
RAM:000023E0 LSR R1, R1, #1
RAM:000023E2 BCC loc_23EC
RAM:000023E4 LDRB R2, [R0]
RAM:000023E6 MOV R1, #4
RAM:000023E8 ORR R1, R2
RAM:000023EA STRB R1, [R0]
RAM:000023EC
RAM:000023EC loc_23EC ; CODE XREF: FLDecodeClaudia+50j
RAM:000023EC ADD R2, R4, #7
RAM:000023EE LDRB R1, [R2]
RAM:000023F0 LSL R1, R1, #29
RAM:000023F2 LSR R1, R1, #29
RAM:000023F4 LDR R3, =(FLBackupFAID+0xC)
RAM:000023F6 STRH R1, [R3] ; Set FAID Algo ID
RAM:000023F8 LDR R3, [R0]
RAM:000023FA LSL R1, R1, #0x1D
RAM:000023FC LSR R1, R1, #0xD
RAM:000023FE ORR R3, R1
RAM:00002400 STR R3, [R0]
RAM:00002402 LDRB R1, [R4,#0xF]
RAM:00002404 LSL R4, R1, #4
RAM:00002406 LDRB R1, [R2,#0x1D]
RAM:00002408 LSL R1, R1, #0x1C
RAM:0000240A LSR R1, R1, #0x1C
RAM:0000240C ORR R1, R4
RAM:0000240E LSL R1, R1, #0x18
RAM:00002410 LSR R1, R1, #0x18
RAM:00002412 ORR R1, R3
RAM:00002414 STR R1, [R0]
RAM:00002416 MOV R0, #1
RAM:00002418 POP {R4,R5,PC}
RAM:00002418 ; End of function FLDecodeClaudia
BR
how to convert this asm code to c or delphi?
RAM:00002392 FLDecodeClaudia
RAM:00002392 PUSH {R4,R5,LR}
RAM:00002394 ADD R4, R0, #0 ; R4 = receive buffer
RAM:00002396 ADD R0, R4, #1 ; R0 = Pointer to Claudia data
RAM:00002398 MOV R1, #0x40 ; '@' ; R1 = Size
RAM:0000239A LDR R2, =FLTmpBuf
RAM:0000239C MOV R3, #0x20 ; ' '
RAM:0000239E LDR R5, =0x84000F
RAM:000023A0 MOV LR, PC
RAM:000023A2 BX R5 ; Call Decode
RAM:000023A4 MOV R0, #0x3C ; '<'
RAM:000023A6 LDRB R0, [R0,R4]
RAM:000023A8 LSL R1, R0, #8
RAM:000023AA LDRB R0, [R4,#5]
RAM:000023AC ORR R0, R1
RAM:000023AE LDR R1, =FLFlashCipher
RAM:000023B0 STR R0, [R1]
RAM:000023B2 LDR R0, =FLFlashCfg
RAM:000023B4 MOV R1, #0x2E ; '.'
RAM:000023B6 LDRB R1, [R1,R4]
RAM:000023B8 LSL R1, R1, #0x1C
RAM:000023BA LSR R1, R1, #7
RAM:000023BC STR R1, [R0]
RAM:000023BE LDRB R2, [R4,#8]
RAM:000023C0 LSR R2, R2, #1
RAM:000023C2 BCC loc_23CC
RAM:000023C4 MOVL R2, 0x2000000
RAM:000023C8 ORR R2, R1
RAM:000023CA STR R2, [R0]
RAM:000023CC
RAM:000023CC loc_23CC ; CODE XREF: FLDecodeClaudia+30j
RAM:000023CC MOV R1, #0x36 ; '6'
RAM:000023CE LDRB R1, [R1,R4]
RAM:000023D0 LSR R1, R1, #1
RAM:000023D2 BCC loc_23DC
RAM:000023D4 LDRB R2, [R0,#1]
RAM:000023D6 MOV R1, #0x10
RAM:000023D8 ORR R1, R2
RAM:000023DA STRB R1, [R0,#1]
RAM:000023DC
RAM:000023DC loc_23DC ; CODE XREF: FLDecodeClaudia+40j
RAM:000023DC MOV R1, #0x20 ; ' '
RAM:000023DE LDRB R1, [R1,R4]
RAM:000023E0 LSR R1, R1, #1
RAM:000023E2 BCC loc_23EC
RAM:000023E4 LDRB R2, [R0]
RAM:000023E6 MOV R1, #4
RAM:000023E8 ORR R1, R2
RAM:000023EA STRB R1, [R0]
RAM:000023EC
RAM:000023EC loc_23EC ; CODE XREF: FLDecodeClaudia+50j
RAM:000023EC ADD R2, R4, #7
RAM:000023EE LDRB R1, [R2]
RAM:000023F0 LSL R1, R1, #29
RAM:000023F2 LSR R1, R1, #29
RAM:000023F4 LDR R3, =(FLBackupFAID+0xC)
RAM:000023F6 STRH R1, [R3] ; Set FAID Algo ID
RAM:000023F8 LDR R3, [R0]
RAM:000023FA LSL R1, R1, #0x1D
RAM:000023FC LSR R1, R1, #0xD
RAM:000023FE ORR R3, R1
RAM:00002400 STR R3, [R0]
RAM:00002402 LDRB R1, [R4,#0xF]
RAM:00002404 LSL R4, R1, #4
RAM:00002406 LDRB R1, [R2,#0x1D]
RAM:00002408 LSL R1, R1, #0x1C
RAM:0000240A LSR R1, R1, #0x1C
RAM:0000240C ORR R1, R4
RAM:0000240E LSL R1, R1, #0x18
RAM:00002410 LSR R1, R1, #0x18
RAM:00002412 ORR R1, R3
RAM:00002414 STR R1, [R0]
RAM:00002416 MOV R0, #1
RAM:00002418 POP {R4,R5,PC}
RAM:00002418 ; End of function FLDecodeClaudia
BR