{"type": "func", "start": 961772, "end": 961952, "name": "Java_org_fmod_MediaCodec_fmodReadAt", "pseudocode": "// \n// Java_org_fmod_MediaCodec_fmodReadAt from 0xeacec to 0xeada0 (180 bytes)\n// \n// 2 xrefs:\n// > <???> @ 0x7ba0\n// > <???> @ 0x11aa20\n// \n// This function is hookable on this platform!\n// \n// Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA\n// Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings\n// \n\n__int64 __fastcall Java_org_fmod_MediaCodec_fmodReadAt(\n        __int64 a1,\n        __int64 a2,\n        __int64 a3,\n        int a4,\n        __int64 a5,\n        int a6,\n        int a7)\n{\n  __int64 v13; // x21\n  unsigned int v14; // w22\n  int v16; // [xsp+Ch] [xbp-34h] BYREF\n\n  v13 = (*(__int64 (__fastcall **)(__int64, __int64, _QWORD))(*(_QWORD *)a1 + 1472LL))(a1, a5, 0);\n  v16 = 0;\n  if ( (unsigned int)sub_EAC3C(a3, a4, v13, a6, a7, &v16) )\n  {\n    v14 = -1;\n    v16 = -1;\n  }\n  else\n  {\n    v14 = v16;\n  }\n  (*(void (__fastcall **)(__int64, __int64, __int64, _QWORD))(*(_QWORD *)a1 + 1536LL))(a1, a5, v13, 0);\n  return v14;\n}", "assembly": "; \n; Java_org_fmod_MediaCodec_fmodReadAt from 0xeacec to 0xeada0 (180 bytes)\n; \n; 2 xrefs:\n; > <???> @ 0x7ba0\n; > <???> @ 0x11aa20\n; \n; This function is hookable on this platform!\n; \n; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA\n; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings\n; \n\nSTR             X25, [SP,#-0x10+var_40]!                               ; +0x0, 0xeacec\nSTP             X24, X23, [SP,#0x40+var_30]                            ; +0x4, 0xeacf0\nSTP             X22, X21, [SP,#0x40+var_20]                            ; +0x8, 0xeacf4\nSTP             X20, X19, [SP,#0x40+var_10]                            ; +0xc, 0xeacf8\nSTP             X29, X30, [SP,#0x40+var_s0]                            ; +0x10, 0xeacfc\nLDR             X8, [X0]                                               ; +0x14, 0xead00\nMOV             X25, X2                                                ; +0x18, 0xead04\nMOV             X1, X4                                                 ; +0x1c, 0xead08\nMOV             X2, XZR                                                ; +0x20, 0xead0c\nLDR             X8, [X8,#0x5C0]                                        ; +0x24, 0xead10\nADD             X29, SP, #0x40                                         ; +0x28, 0xead14\nMOV             W22, W6                                                ; +0x2c, 0xead18\nMOV             W23, W5                                                ; +0x30, 0xead1c\nMOV             X19, X4                                                ; +0x34, 0xead20\nMOV             X24, X3                                                ; +0x38, 0xead24\nMOV             X20, X0                                                ; +0x3c, 0xead28\nBLR             X8                                                     ; +0x40, 0xead2c\nMOV             X21, X0                                                ; +0x44, 0xead30\nADD             X5, SP, #0x40+var_34                                   ; +0x48, 0xead34\nMOV             X0, X25                                                ; +0x4c, 0xead38\nMOV             W1, W24                                                ; +0x50, 0xead3c\nMOV             X2, X21                                                ; +0x54, 0xead40\nMOV             W3, W23                                                ; +0x58, 0xead44\nMOV             W4, W22                                                ; +0x5c, 0xead48\nSTR             WZR, [SP,#0x40+var_34]                                 ; +0x60, 0xead4c\nBL              sub_EAC3C                                              ; +0x64, 0xead50\nCBZ             W0, loc_EAD64                                          ; +0x68, 0xead54\nMOV             W22, #0xFFFFFFFF                                       ; +0x6c, 0xead58\nSTR             W22, [SP,#0x40+var_34]                                 ; +0x70, 0xead5c\nB               loc_EAD68                                              ; +0x74, 0xead60\nLDR             W22, [SP,#0x40+var_34]                                 ; +0x78, 0xead64\nLDR             X8, [X20]                                              ; +0x7c, 0xead68\nMOV             X0, X20                                                ; +0x80, 0xead6c\nMOV             X1, X19                                                ; +0x84, 0xead70\nMOV             X2, X21                                                ; +0x88, 0xead74\nLDR             X8, [X8,#0x600]                                        ; +0x8c, 0xead78\nMOV             W3, WZR                                                ; +0x90, 0xead7c\nBLR             X8                                                     ; +0x94, 0xead80\nMOV             W0, W22                                                ; +0x98, 0xead84\nLDP             X29, X30, [SP,#0x40+var_s0]                            ; +0x9c, 0xead88\nLDP             X20, X19, [SP,#0x40+var_10]                            ; +0xa0, 0xead8c\nLDP             X22, X21, [SP,#0x40+var_20]                            ; +0xa4, 0xead90\nLDP             X24, X23, [SP,#0x40+var_30]                            ; +0xa8, 0xead94\nLDR             X25, [SP+0x40+var_40],#0x50                            ; +0xac, 0xead98\nRET                                                                    ; +0xb0, 0xead9c", "xrefs": ["<???> @ 0x7ba0", "<???> @ 0x11aa20"], "is_objc": false, "is_arm32": false, "is_arm64": false, "bida_info": "8.0.0 @ https://github.com/Stazzical/BromaIDA", "bindings_info": "commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings"}