Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .text:000519C8 forkAndSpecializeCommon ; CODE XREF: .text:00051C18p
- .text:000519C8 ; .text:00051C6Ep
- .text:000519C8
- .text:000519C8 var_58 = -0x58
- .text:000519C8 var_48 = -0x48
- .text:000519C8 var_40 = -0x40
- .text:000519C8 var_3C = -0x3C
- .text:000519C8 var_38 = -0x38
- .text:000519C8 var_34 = -0x34
- .text:000519C8 var_24 = -0x24
- .text:000519C8 var_20 = -0x20
- .text:000519C8 var_1C = -0x1C
- .text:000519C8
- .text:000519C8 PUSH {R4-R7,LR}
- .text:000519CA LDR R3, [R0,#0xC]
- .text:000519CC
- .text:000519CC loc_519CC ; DATA XREF: .text:00029566o
- .text:000519CC ; .text:off_295BCo
- .text:000519CC LDR R5, [R0,#8]
- .text:000519CE SUB SP, SP, #0x44
- .text:000519D0 LDR R2, [R0,#0x10]
- .text:000519D2 NOP
- .text:000519D4 ADR R6, loc_519D8
- .text:000519D6 LDR R4, =dword_29560
- .text:000519D8
- .text:000519D8 loc_519D8 ; DATA XREF: forkAndSpecializeCommon+Co
- .text:000519D8 LDR R7, [R0,#4]
- .text:000519DA ADDS R4, R4, R6
- .text:000519DC STR R5, [SP,#0x58+var_1C]
- .text:000519DE LDR R6, [R0]
- .text:000519E0 STR R3, [SP,#0x58+var_24]
- .text:000519E2 STR R2, [SP,#0x58+var_20]
- .text:000519E4 CBNZ R1, loc_519F4
- .text:000519E6 MOVS R0, #0
- .text:000519E8 MOVS R1, #0
- .text:000519EA STRD.W R0, R1, [SP,#0x20]
- .text:000519EE STRD.W R0, R1, [SP,#0x28]
- .text:000519F2 B loc_51A26
- .text:000519F4 ; ---------------------------------------------------------------------------
- .text:000519F4
- .text:000519F4 loc_519F4 ; CODE XREF: forkAndSpecializeCommon+1Cj
- .text:000519F4 LDR R3, [R0,#0x18]
- .text:000519F6 MOVS R2, #0
- .text:000519F8 LDR.W LR, [R0,#0x20]
- .text:000519FC MOVS R1, #0
- .text:000519FE STR R2, [SP,#0x58+var_40]
- .text:00051A00 STR R1, [SP,#0x58+var_38]
- .text:00051A02 STR.W LR, [SP,#0x58+var_34]
- .text:00051A06 STR R3, [SP,#0x58+var_3C]
- .text:00051A08 LDR R5, [R0,#0x14]
- .text:00051A0A LDR.W R12, [R0,#0x1C]
- .text:00051A0E LDRD.W R2, R3, [SP,#0x18]
- .text:00051A12 LDRD.W R0, R1, [SP,#0x20]
- .text:00051A16 ORR.W R2, R2, R5
- .text:00051A1A STRD.W R2, R3, [SP,#0x28]
- .text:00051A1E ORR.W R0, R0, R12
- .text:00051A22 STRD.W R0, R1, [SP,#0x20]
- .text:00051A26
- .text:00051A26 loc_51A26 ; CODE XREF: forkAndSpecializeCommon+2Aj
- .text:00051A26 LDR.W R12, =0x2F8
- .text:00051A2A LDR.W R0, [R4,R12]
- .text:00051A2E LDRB.W R2, [R0,#0x429]
- .text:00051A32 CBNZ R2, loc_51A46
- .text:00051A34
- .text:00051A34 loc_51A34 ; DATA XREF: .text:000294FEo
- .text:00051A34 ; .text:off_29554o
- .text:00051A34 LDR R5, =0xFFFEE6DA
- .text:00051A36 LDR R1, =0xFFFF3623
- .text:00051A38 ADDS R0, R4, R5
- .text:00051A3A MOV.W R5, #0xFFFFFFFF
- .text:00051A3E ADDS R1, R4, R1
- .text:00051A40 BL dvmThrowChainedException
- .text:00051A44 B loc_51BC8
- .text:00051A46 ; ---------------------------------------------------------------------------
- .text:00051A46
- .text:00051A46 loc_51A46 ; CODE XREF: forkAndSpecializeCommon+6Aj
- .text:00051A46 BL dvmGcPreZygoteFork
- .text:00051A4A CBNZ R0, loc_51A5E
- .text:00051A4C LDR R3, =0xFFFE8B14
- .text:00051A4E ADDS R0, #6
- .text:00051A50 LDR R2, =0xFFFF3649
- .text:00051A52 ADDS R1, R4, R3
- .text:00051A54 ADDS R2, R4, R2
- .text:00051A56 BLX __android_log_print
- .text:00051A5A BL dvmAbort
- .text:00051A5E
- .text:00051A5E loc_51A5E ; CODE XREF: forkAndSpecializeCommon+82j
- .text:00051A5E BL setSignalHandler
- .text:00051A62 LDR R0, =0xFFFEEC7E
- .text:00051A64 ADDS R0, R4, R0
- .text:00051A66 BL dvmDumpLoaderStats
- .text:00051A6A BLX fork
- .text:00051A6E MOV R5, R0 ; pid
- .text:00051A70 CMP R0, #0
- .text:00051A72 BNE.W loc_51BC8
- .text:00051A76 LDR.W R12, =0x314
- .text:00051A7A MOVS R1, #1
- .text:00051A7C LDR.W LR, [R4,R12] ; gMallocLeakZygoteChild
- .text:00051A80 STR.W R1, [LR]
- .text:00051A84 CBZ R6, loc_51AB4
- .text:00051A86 STR R0, [SP,#0x58+var_58]
- .text:00051A88 MOV R2, R5
- .text:00051A8A MOVS R0, #8 ; option
- .text:00051A8C MOV R3, R5
- .text:00051A8E BLX prctl
- .text:00051A92 CMP R0, #0
- .text:00051A94 BGE loc_51AB4
- .text:00051A96 BLX __errno
- .text:00051A9A LDR R0, [R0] ; errnum
- .text:00051A9C
- .text:00051A9C loc_51A9C ; DATA XREF: .text:00029496o
- .text:00051A9C ; .text:off_294ECo
- .text:00051A9C BLX strerror
- .text:00051AA0 LDR R1, =0xFFFE8B14
- .text:00051AA2 LDR R2, =0xFFFF36BE
- .text:00051AA4 ADDS R1, R4, R1
- .text:00051AA6 ADDS R2, R4, R2
- .text:00051AA8 MOV R3, R0
- .text:00051AAA MOVS R0, #6
- .text:00051AAC BLX __android_log_print
- .text:00051AB0 BL dvmAbort
- .text:00051AB4
- .text:00051AB4 loc_51AB4 ; CODE XREF: forkAndSpecializeCommon+BCj
- .text:00051AB4 ; forkAndSpecializeCommon+CCj
- .text:00051AB4 LDR R0, [SP,#0x58+var_1C]
- .text:00051AB6 BL setgroupsIntarray
- .text:00051ABA CMP R0, #0
- .text:00051ABC BGE loc_51ADC
- .text:00051ABE BLX __errno
- .text:00051AC2 LDR R0, [R0] ; errnum
- .text:00051AC4 BLX strerror
- .text:00051AC8 LDR R2, =0xFFFE8B14
- .text:00051ACA ADDS R1, R4, R2
- .text:00051ACC MOV R3, R0
- .text:00051ACE LDR R0, =0xFFFF36D9
- .text:00051AD0 ADDS R2, R4, R0
- .text:00051AD2 MOVS R0, #6
- .text:00051AD4 BLX __android_log_print
- .text:00051AD8 BL dvmAbort
- .text:00051ADC
- .text:00051ADC loc_51ADC ; CODE XREF: forkAndSpecializeCommon+F4j
- .text:00051ADC LDR R0, [SP,#0x58+var_20]
- .text:00051ADE BL setrlimitsFromArray
- .text:00051AE2 CMP R0, #0
- .text:00051AE4 BGE loc_51B04
- .text:00051AE6 BLX __errno
- .text:00051AEA LDR R0, [R0] ; errnum
- .text:00051AEC BLX strerror
- .text:00051AF0 LDR R1, =0xFFFE8B14
- .text:00051AF2 ADDS R1, R4, R1
- .text:00051AF4 MOV R3, R0
- .text:00051AF6 LDR R0, =0xFFFF36F0
- .text:00051AF8 ADDS R2, R4, R0
- .text:00051AFA MOVS R0, #6
- .text:00051AFC BLX __android_log_print
- .text:00051B00 BL dvmAbort
- .text:00051B04
- .text:00051B04 loc_51B04 ; CODE XREF: forkAndSpecializeCommon+11Cj
- .text:00051B04 ; DATA XREF: .text:0002942Eo ...
- .text:00051B04 MOV R0, R7 ; gid
- .text:00051B06 BLX setgid
- .text:00051B0A CMP R0, #0
- .text:00051B0C BGE loc_51B2E
- .text:00051B0E BLX __errno
- .text:00051B12 LDR R0, [R0] ; errnum
- .text:00051B14 BLX strerror
- .text:00051B18 LDR R2, =0xFFFE8B14
- .text:00051B1A LDR R3, =0xFFFF3707
- .text:00051B1C ADDS R1, R4, R2
- .text:00051B1E ADDS R2, R4, R3
- .text:00051B20 MOV R3, R7
- .text:00051B22 STR R0, [SP,#0x58+var_58]
- .text:00051B24 MOVS R0, #6
- .text:00051B26 BLX __android_log_print
- .text:00051B2A BL dvmAbort
- .text:00051B2E
- .text:00051B2E loc_51B2E ; CODE XREF: forkAndSpecializeCommon+144j
- .text:00051B2E MOV R0, R6 ; uid
- .text:00051B30 BLX setuid
- .text:00051B34 CMP R0, #0
- .text:00051B36 BGE loc_51B58
- .text:00051B38 BLX __errno
- .text:00051B3C LDR R0, [R0] ; errnum
- .text:00051B3E BLX strerror
- .text:00051B42 LDR R3, =0xFFFF371D
- .text:00051B44 LDR R1, =0xFFFE8B14
- .text:00051B46 ADDS R2, R4, R3
- .text:00051B48 MOV R3, R6
- .text:00051B4A ADDS R1, R4, R1
- .text:00051B4C STR R0, [SP,#0x58+var_58]
- .text:00051B4E MOVS R0, #6
- .text:00051B50 BLX __android_log_print
- .text:00051B54 BL dvmAbort
- .text:00051B58
- .text:00051B58 loc_51B58 ; CODE XREF: forkAndSpecializeCommon+16Ej
- .text:00051B58 LDRD.W R0, R1, [SP,#0x28]
- .text:00051B5C LDRD.W R2, R3, [SP,#0x20]
- .text:00051B60 BL sub_5195C
- .text:00051B64 CBZ R0, loc_51B8E
- .text:00051B66 BLX strerror
- .text:00051B6A LDR R7, =0xFFFF3733
- .text:00051B6C
- .text:00051B6C loc_51B6C ; DATA XREF: .text:000293C6o
- .text:00051B6C ; .text:off_2941Co
- .text:00051B6C LDR R2, =0xFFFE8B14
- .text:00051B6E ADDS R1, R4, R2
- .text:00051B70 ADDS R2, R4, R7
- .text:00051B72 LDRD.W R6, R7, [SP,#0x28]
- .text:00051B76 STRD.W R6, R7, [SP]
- .text:00051B7A LDRD.W R6, R7, [SP,#0x20]
- .text:00051B7E STRD.W R6, R7, [SP,#8]
- .text:00051B82 STR R0, [SP,#0x58+var_48]
- .text:00051B84 MOVS R0, #6
- .text:00051B86 BLX __android_log_print
- .text:00051B8A BL dvmAbort
- .text:00051B8E
- .text:00051B8E loc_51B8E ; CODE XREF: forkAndSpecializeCommon+19Cj
- .text:00051B8E BL dvmThreadSelf
- .text:00051B92 ; ---------------------------------------------------------------------------
- .text:00051B92 MOV R6, R0
- .text:00051B94 BL dvmGetSysThreadId
- .text:00051B98 STR R0, [R6,#0x18]
- .text:00051B9A LDR R0, [SP,#0x58+var_24]
- .text:00051B9C BL enableDebugFeatures
- .text:00051BA0 BL unsetSignalHandler
- .text:00051BA4 LDR R3, =0x2F8
- .text:00051BA6 MOVS R0, #0
- .text:00051BA8 LDR.W R12, [R4,R3]
- .text:00051BAC STRB.W R0, [R12,#0x429]
- .text:00051BB0 BL dvmInitAfterZygote
- .text:00051BB4 CBNZ R0, loc_51BC8
- .text:00051BB6 LDR R1, =0xFFFE8B14
- .text:00051BB8 ADDS R0, #6
- .text:00051BBA LDR R2, =0xFFFF375C
- .text:00051BBC ADDS R1, R4, R1
- .text:00051BBE ADDS R2, R4, R2
- .text:00051BC0 BLX __android_log_print
- .text:00051BC4 BL dvmAbort
- .text:00051BC8
- .text:00051BC8 loc_51BC8 ; CODE XREF: forkAndSpecializeCommon+7Cj
- .text:00051BC8 ; forkAndSpecializeCommon+AAj ...
- .text:00051BC8 MOV R0, R5
- .text:00051BCA ADD SP, SP, #0x44
- .text:00051BCC POP {R4-R7,PC}
- .text:00051BCC ; End of function forkAndSpecializeCommon
- .text:00051BCC
- .text:00051BCC ; ---------------------------------------------------------------------------
- .text:00051BCE DCW 0xBF00
- .text:00051BD0 off_51BD0 DCD dword_29560 ; DATA XREF: forkAndSpecializeCommon+Er
- .text:00051BD4 dword_51BD4 DCD 0x2F8 ; DATA XREF: .text:0002935Eo
- .text:00051BD4 ; .text:off_293B4o ...
- .text:00051BD8 dword_51BD8 DCD 0xFFFEE6DA ; DATA XREF: forkAndSpecializeCommon:loc_51A34r
- .text:00051BDC dword_51BDC DCD 0xFFFF3623 ; DATA XREF: forkAndSpecializeCommon+6Er
- .text:00051BE0 dword_51BE0 DCD 0xFFFE8B14 ; DATA XREF: forkAndSpecializeCommon+84r
- .text:00051BE0 ; forkAndSpecializeCommon+D8r ...
- .text:00051BE4 dword_51BE4 DCD 0xFFFF3649 ; DATA XREF: forkAndSpecializeCommon+88r
- .text:00051BE8 dword_51BE8 DCD 0xFFFEEC7E ; DATA XREF: forkAndSpecializeCommon+9Ar
- .text:00051BEC dword_51BEC DCD 0x314 ; DATA XREF: forkAndSpecializeCommon+AEr
- .text:00051BF0 dword_51BF0 DCD 0xFFFF36BE ; DATA XREF: forkAndSpecializeCommon+DAr
- .text:00051BF4 dword_51BF4 DCD 0xFFFF36D9 ; DATA XREF: forkAndSpecializeCommon+106r
- .text:00051BF8 dword_51BF8 DCD 0xFFFF36F0 ; DATA XREF: forkAndSpecializeCommon+12Er
- .text:00051BFC dword_51BFC DCD 0xFFFF3707 ; DATA XREF: forkAndSpecializeCommon+152r
- .text:00051C00 dword_51C00 DCD 0xFFFF371D ; DATA XREF: forkAndSpecializeCommon+17Ar
- .text:00051C04 dword_51C04 DCD 0xFFFF3733 ; DATA XREF: forkAndSpecializeCommon+1A2r
- .text:00051C08 dword_51C08 DCD 0xFFFF375C ; DATA XREF: forkAndSpecializeCommon+1F2r
Advertisement
Add Comment
Please, Sign In to add comment