goroh_kun

IS03 libdvm.so forkAndSpecializeCommon

Apr 3rd, 2011
643
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .text:000519C8 forkAndSpecializeCommon                 ; CODE XREF: .text:00051C18p
  2. .text:000519C8                                         ; .text:00051C6Ep
  3. .text:000519C8
  4. .text:000519C8 var_58          = -0x58
  5. .text:000519C8 var_48          = -0x48
  6. .text:000519C8 var_40          = -0x40
  7. .text:000519C8 var_3C          = -0x3C
  8. .text:000519C8 var_38          = -0x38
  9. .text:000519C8 var_34          = -0x34
  10. .text:000519C8 var_24          = -0x24
  11. .text:000519C8 var_20          = -0x20
  12. .text:000519C8 var_1C          = -0x1C
  13. .text:000519C8
  14. .text:000519C8                 PUSH    {R4-R7,LR}
  15. .text:000519CA                 LDR     R3, [R0,#0xC]
  16. .text:000519CC
  17. .text:000519CC loc_519CC                               ; DATA XREF: .text:00029566o
  18. .text:000519CC                                         ; .text:off_295BCo
  19. .text:000519CC                 LDR     R5, [R0,#8]
  20. .text:000519CE                 SUB     SP, SP, #0x44
  21. .text:000519D0                 LDR     R2, [R0,#0x10]
  22. .text:000519D2                 NOP
  23. .text:000519D4                 ADR     R6, loc_519D8
  24. .text:000519D6                 LDR     R4, =dword_29560
  25. .text:000519D8
  26. .text:000519D8 loc_519D8                               ; DATA XREF: forkAndSpecializeCommon+Co
  27. .text:000519D8                 LDR     R7, [R0,#4]
  28. .text:000519DA                 ADDS    R4, R4, R6
  29. .text:000519DC                 STR     R5, [SP,#0x58+var_1C]
  30. .text:000519DE                 LDR     R6, [R0]
  31. .text:000519E0                 STR     R3, [SP,#0x58+var_24]
  32. .text:000519E2                 STR     R2, [SP,#0x58+var_20]
  33. .text:000519E4                 CBNZ    R1, loc_519F4
  34. .text:000519E6                 MOVS    R0, #0
  35. .text:000519E8                 MOVS    R1, #0
  36. .text:000519EA                 STRD.W  R0, R1, [SP,#0x20]
  37. .text:000519EE                 STRD.W  R0, R1, [SP,#0x28]
  38. .text:000519F2                 B       loc_51A26
  39. .text:000519F4 ; ---------------------------------------------------------------------------
  40. .text:000519F4
  41. .text:000519F4 loc_519F4                               ; CODE XREF: forkAndSpecializeCommon+1Cj
  42. .text:000519F4                 LDR     R3, [R0,#0x18]
  43. .text:000519F6                 MOVS    R2, #0
  44. .text:000519F8                 LDR.W   LR, [R0,#0x20]
  45. .text:000519FC                 MOVS    R1, #0
  46. .text:000519FE                 STR     R2, [SP,#0x58+var_40]
  47. .text:00051A00                 STR     R1, [SP,#0x58+var_38]
  48. .text:00051A02                 STR.W   LR, [SP,#0x58+var_34]
  49. .text:00051A06                 STR     R3, [SP,#0x58+var_3C]
  50. .text:00051A08                 LDR     R5, [R0,#0x14]
  51. .text:00051A0A                 LDR.W   R12, [R0,#0x1C]
  52. .text:00051A0E                 LDRD.W  R2, R3, [SP,#0x18]
  53. .text:00051A12                 LDRD.W  R0, R1, [SP,#0x20]
  54. .text:00051A16                 ORR.W   R2, R2, R5
  55. .text:00051A1A                 STRD.W  R2, R3, [SP,#0x28]
  56. .text:00051A1E                 ORR.W   R0, R0, R12
  57. .text:00051A22                 STRD.W  R0, R1, [SP,#0x20]
  58. .text:00051A26
  59. .text:00051A26 loc_51A26                               ; CODE XREF: forkAndSpecializeCommon+2Aj
  60. .text:00051A26                 LDR.W   R12, =0x2F8
  61. .text:00051A2A                 LDR.W   R0, [R4,R12]
  62. .text:00051A2E                 LDRB.W  R2, [R0,#0x429]
  63. .text:00051A32                 CBNZ    R2, loc_51A46
  64. .text:00051A34
  65. .text:00051A34 loc_51A34                               ; DATA XREF: .text:000294FEo
  66. .text:00051A34                                         ; .text:off_29554o
  67. .text:00051A34                 LDR     R5, =0xFFFEE6DA
  68. .text:00051A36                 LDR     R1, =0xFFFF3623
  69. .text:00051A38                 ADDS    R0, R4, R5
  70. .text:00051A3A                 MOV.W   R5, #0xFFFFFFFF
  71. .text:00051A3E                 ADDS    R1, R4, R1
  72. .text:00051A40                 BL      dvmThrowChainedException
  73. .text:00051A44                 B       loc_51BC8
  74. .text:00051A46 ; ---------------------------------------------------------------------------
  75. .text:00051A46
  76. .text:00051A46 loc_51A46                               ; CODE XREF: forkAndSpecializeCommon+6Aj
  77. .text:00051A46                 BL      dvmGcPreZygoteFork
  78. .text:00051A4A                 CBNZ    R0, loc_51A5E
  79. .text:00051A4C                 LDR     R3, =0xFFFE8B14
  80. .text:00051A4E                 ADDS    R0, #6
  81. .text:00051A50                 LDR     R2, =0xFFFF3649
  82. .text:00051A52                 ADDS    R1, R4, R3
  83. .text:00051A54                 ADDS    R2, R4, R2
  84. .text:00051A56                 BLX     __android_log_print
  85. .text:00051A5A                 BL      dvmAbort
  86. .text:00051A5E
  87. .text:00051A5E loc_51A5E                               ; CODE XREF: forkAndSpecializeCommon+82j
  88. .text:00051A5E                 BL      setSignalHandler
  89. .text:00051A62                 LDR     R0, =0xFFFEEC7E
  90. .text:00051A64                 ADDS    R0, R4, R0
  91. .text:00051A66                 BL      dvmDumpLoaderStats
  92. .text:00051A6A                 BLX     fork
  93. .text:00051A6E                 MOV     R5, R0          ; pid
  94. .text:00051A70                 CMP     R0, #0
  95. .text:00051A72                 BNE.W   loc_51BC8
  96. .text:00051A76                 LDR.W   R12, =0x314
  97. .text:00051A7A                 MOVS    R1, #1
  98. .text:00051A7C                 LDR.W   LR, [R4,R12]    ; gMallocLeakZygoteChild
  99. .text:00051A80                 STR.W   R1, [LR]
  100. .text:00051A84                 CBZ     R6, loc_51AB4
  101. .text:00051A86                 STR     R0, [SP,#0x58+var_58]
  102. .text:00051A88                 MOV     R2, R5
  103. .text:00051A8A                 MOVS    R0, #8          ; option
  104. .text:00051A8C                 MOV     R3, R5
  105. .text:00051A8E                 BLX     prctl
  106. .text:00051A92                 CMP     R0, #0
  107. .text:00051A94                 BGE     loc_51AB4
  108. .text:00051A96                 BLX     __errno
  109. .text:00051A9A                 LDR     R0, [R0]        ; errnum
  110. .text:00051A9C
  111. .text:00051A9C loc_51A9C                               ; DATA XREF: .text:00029496o
  112. .text:00051A9C                                         ; .text:off_294ECo
  113. .text:00051A9C                 BLX     strerror
  114. .text:00051AA0                 LDR     R1, =0xFFFE8B14
  115. .text:00051AA2                 LDR     R2, =0xFFFF36BE
  116. .text:00051AA4                 ADDS    R1, R4, R1
  117. .text:00051AA6                 ADDS    R2, R4, R2
  118. .text:00051AA8                 MOV     R3, R0
  119. .text:00051AAA                 MOVS    R0, #6
  120. .text:00051AAC                 BLX     __android_log_print
  121. .text:00051AB0                 BL      dvmAbort
  122. .text:00051AB4
  123. .text:00051AB4 loc_51AB4                               ; CODE XREF: forkAndSpecializeCommon+BCj
  124. .text:00051AB4                                         ; forkAndSpecializeCommon+CCj
  125. .text:00051AB4                 LDR     R0, [SP,#0x58+var_1C]
  126. .text:00051AB6                 BL      setgroupsIntarray
  127. .text:00051ABA                 CMP     R0, #0
  128. .text:00051ABC                 BGE     loc_51ADC
  129. .text:00051ABE                 BLX     __errno
  130. .text:00051AC2                 LDR     R0, [R0]        ; errnum
  131. .text:00051AC4                 BLX     strerror
  132. .text:00051AC8                 LDR     R2, =0xFFFE8B14
  133. .text:00051ACA                 ADDS    R1, R4, R2
  134. .text:00051ACC                 MOV     R3, R0
  135. .text:00051ACE                 LDR     R0, =0xFFFF36D9
  136. .text:00051AD0                 ADDS    R2, R4, R0
  137. .text:00051AD2                 MOVS    R0, #6
  138. .text:00051AD4                 BLX     __android_log_print
  139. .text:00051AD8                 BL      dvmAbort
  140. .text:00051ADC
  141. .text:00051ADC loc_51ADC                               ; CODE XREF: forkAndSpecializeCommon+F4j
  142. .text:00051ADC                 LDR     R0, [SP,#0x58+var_20]
  143. .text:00051ADE                 BL      setrlimitsFromArray
  144. .text:00051AE2                 CMP     R0, #0
  145. .text:00051AE4                 BGE     loc_51B04
  146. .text:00051AE6                 BLX     __errno
  147. .text:00051AEA                 LDR     R0, [R0]        ; errnum
  148. .text:00051AEC                 BLX     strerror
  149. .text:00051AF0                 LDR     R1, =0xFFFE8B14
  150. .text:00051AF2                 ADDS    R1, R4, R1
  151. .text:00051AF4                 MOV     R3, R0
  152. .text:00051AF6                 LDR     R0, =0xFFFF36F0
  153. .text:00051AF8                 ADDS    R2, R4, R0
  154. .text:00051AFA                 MOVS    R0, #6
  155. .text:00051AFC                 BLX     __android_log_print
  156. .text:00051B00                 BL      dvmAbort
  157. .text:00051B04
  158. .text:00051B04 loc_51B04                               ; CODE XREF: forkAndSpecializeCommon+11Cj
  159. .text:00051B04                                         ; DATA XREF: .text:0002942Eo ...
  160. .text:00051B04                 MOV     R0, R7          ; gid
  161. .text:00051B06                 BLX     setgid
  162. .text:00051B0A                 CMP     R0, #0
  163. .text:00051B0C                 BGE     loc_51B2E
  164. .text:00051B0E                 BLX     __errno
  165. .text:00051B12                 LDR     R0, [R0]        ; errnum
  166. .text:00051B14                 BLX     strerror
  167. .text:00051B18                 LDR     R2, =0xFFFE8B14
  168. .text:00051B1A                 LDR     R3, =0xFFFF3707
  169. .text:00051B1C                 ADDS    R1, R4, R2
  170. .text:00051B1E                 ADDS    R2, R4, R3
  171. .text:00051B20                 MOV     R3, R7
  172. .text:00051B22                 STR     R0, [SP,#0x58+var_58]
  173. .text:00051B24                 MOVS    R0, #6
  174. .text:00051B26                 BLX     __android_log_print
  175. .text:00051B2A                 BL      dvmAbort
  176. .text:00051B2E
  177. .text:00051B2E loc_51B2E                               ; CODE XREF: forkAndSpecializeCommon+144j
  178. .text:00051B2E                 MOV     R0, R6          ; uid
  179. .text:00051B30                 BLX     setuid
  180. .text:00051B34                 CMP     R0, #0
  181. .text:00051B36                 BGE     loc_51B58
  182. .text:00051B38                 BLX     __errno
  183. .text:00051B3C                 LDR     R0, [R0]        ; errnum
  184. .text:00051B3E                 BLX     strerror
  185. .text:00051B42                 LDR     R3, =0xFFFF371D
  186. .text:00051B44                 LDR     R1, =0xFFFE8B14
  187. .text:00051B46                 ADDS    R2, R4, R3
  188. .text:00051B48                 MOV     R3, R6
  189. .text:00051B4A                 ADDS    R1, R4, R1
  190. .text:00051B4C                 STR     R0, [SP,#0x58+var_58]
  191. .text:00051B4E                 MOVS    R0, #6
  192. .text:00051B50                 BLX     __android_log_print
  193. .text:00051B54                 BL      dvmAbort
  194. .text:00051B58
  195. .text:00051B58 loc_51B58                               ; CODE XREF: forkAndSpecializeCommon+16Ej
  196. .text:00051B58                 LDRD.W  R0, R1, [SP,#0x28]
  197. .text:00051B5C                 LDRD.W  R2, R3, [SP,#0x20]
  198. .text:00051B60                 BL      sub_5195C
  199. .text:00051B64                 CBZ     R0, loc_51B8E
  200. .text:00051B66                 BLX     strerror
  201. .text:00051B6A                 LDR     R7, =0xFFFF3733
  202. .text:00051B6C
  203. .text:00051B6C loc_51B6C                               ; DATA XREF: .text:000293C6o
  204. .text:00051B6C                                         ; .text:off_2941Co
  205. .text:00051B6C                 LDR     R2, =0xFFFE8B14
  206. .text:00051B6E                 ADDS    R1, R4, R2
  207. .text:00051B70                 ADDS    R2, R4, R7
  208. .text:00051B72                 LDRD.W  R6, R7, [SP,#0x28]
  209. .text:00051B76                 STRD.W  R6, R7, [SP]
  210. .text:00051B7A                 LDRD.W  R6, R7, [SP,#0x20]
  211. .text:00051B7E                 STRD.W  R6, R7, [SP,#8]
  212. .text:00051B82                 STR     R0, [SP,#0x58+var_48]
  213. .text:00051B84                 MOVS    R0, #6
  214. .text:00051B86                 BLX     __android_log_print
  215. .text:00051B8A                 BL      dvmAbort
  216. .text:00051B8E
  217. .text:00051B8E loc_51B8E                               ; CODE XREF: forkAndSpecializeCommon+19Cj
  218. .text:00051B8E                 BL      dvmThreadSelf
  219. .text:00051B92 ; ---------------------------------------------------------------------------
  220. .text:00051B92                 MOV     R6, R0
  221. .text:00051B94                 BL      dvmGetSysThreadId
  222. .text:00051B98                 STR     R0, [R6,#0x18]
  223. .text:00051B9A                 LDR     R0, [SP,#0x58+var_24]
  224. .text:00051B9C                 BL      enableDebugFeatures
  225. .text:00051BA0                 BL      unsetSignalHandler
  226. .text:00051BA4                 LDR     R3, =0x2F8
  227. .text:00051BA6                 MOVS    R0, #0
  228. .text:00051BA8                 LDR.W   R12, [R4,R3]
  229. .text:00051BAC                 STRB.W  R0, [R12,#0x429]
  230. .text:00051BB0                 BL      dvmInitAfterZygote
  231. .text:00051BB4                 CBNZ    R0, loc_51BC8
  232. .text:00051BB6                 LDR     R1, =0xFFFE8B14
  233. .text:00051BB8                 ADDS    R0, #6
  234. .text:00051BBA                 LDR     R2, =0xFFFF375C
  235. .text:00051BBC                 ADDS    R1, R4, R1
  236. .text:00051BBE                 ADDS    R2, R4, R2
  237. .text:00051BC0                 BLX     __android_log_print
  238. .text:00051BC4                 BL      dvmAbort
  239. .text:00051BC8
  240. .text:00051BC8 loc_51BC8                               ; CODE XREF: forkAndSpecializeCommon+7Cj
  241. .text:00051BC8                                         ; forkAndSpecializeCommon+AAj ...
  242. .text:00051BC8                 MOV     R0, R5
  243. .text:00051BCA                 ADD     SP, SP, #0x44
  244. .text:00051BCC                 POP     {R4-R7,PC}
  245. .text:00051BCC ; End of function forkAndSpecializeCommon
  246. .text:00051BCC
  247. .text:00051BCC ; ---------------------------------------------------------------------------
  248. .text:00051BCE                 DCW 0xBF00
  249. .text:00051BD0 off_51BD0       DCD dword_29560         ; DATA XREF: forkAndSpecializeCommon+Er
  250. .text:00051BD4 dword_51BD4     DCD 0x2F8               ; DATA XREF: .text:0002935Eo
  251. .text:00051BD4                                         ; .text:off_293B4o ...
  252. .text:00051BD8 dword_51BD8     DCD 0xFFFEE6DA          ; DATA XREF: forkAndSpecializeCommon:loc_51A34r
  253. .text:00051BDC dword_51BDC     DCD 0xFFFF3623          ; DATA XREF: forkAndSpecializeCommon+6Er
  254. .text:00051BE0 dword_51BE0     DCD 0xFFFE8B14          ; DATA XREF: forkAndSpecializeCommon+84r
  255. .text:00051BE0                                         ; forkAndSpecializeCommon+D8r ...
  256. .text:00051BE4 dword_51BE4     DCD 0xFFFF3649          ; DATA XREF: forkAndSpecializeCommon+88r
  257. .text:00051BE8 dword_51BE8     DCD 0xFFFEEC7E          ; DATA XREF: forkAndSpecializeCommon+9Ar
  258. .text:00051BEC dword_51BEC     DCD 0x314               ; DATA XREF: forkAndSpecializeCommon+AEr
  259. .text:00051BF0 dword_51BF0     DCD 0xFFFF36BE          ; DATA XREF: forkAndSpecializeCommon+DAr
  260. .text:00051BF4 dword_51BF4     DCD 0xFFFF36D9          ; DATA XREF: forkAndSpecializeCommon+106r
  261. .text:00051BF8 dword_51BF8     DCD 0xFFFF36F0          ; DATA XREF: forkAndSpecializeCommon+12Er
  262. .text:00051BFC dword_51BFC     DCD 0xFFFF3707          ; DATA XREF: forkAndSpecializeCommon+152r
  263. .text:00051C00 dword_51C00     DCD 0xFFFF371D          ; DATA XREF: forkAndSpecializeCommon+17Ar
  264. .text:00051C04 dword_51C04     DCD 0xFFFF3733          ; DATA XREF: forkAndSpecializeCommon+1A2r
  265. .text:00051C08 dword_51C08     DCD 0xFFFF375C          ; DATA XREF: forkAndSpecializeCommon+1F2r
Advertisement
Add Comment
Please, Sign In to add comment