[{"_id":"71d97cd679947c7121f62cfc87268b79de2e03336adfe24393f78665a9ac2aad","file_name":"libpwnchat.so","file_path":"so_samples/libpwnchat.so","ghidra_decompilation":{"success":true,"function_count":36,"successful_functions":36,"failed_functions":0,"success_rate":100,"cfg_json_count":37,"cfg_dot_count":37,"architecture_info":{"format":"ELF","architecture":"AArch64","endianness":"little","bits":"64","processor":"AARCH64","ghidra_processor":"AARCH64","ghidra_variant":"AARCH64","loader":"Executable and Linking Format (ELF)","mime_type":"application/x-sharedlib","description":"ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=9f4ad2f04be61d66be7239bd6f8362e6c81e333a, stripped"},"analysis_duration":10.29610800743103,"decompiled_code":"/*\n * FIXED Enhanced Decompiled Code using Ghidra\n * Original file: libpwnchat.so\n * Decompilation date: Wed Jun 17 20:02:34 IST 2026\n * Program: libpwnchat.so\n * Architecture: AARCH64\n * Language: AARCH64/little/64/v8A\n * Address Space: ram:\n * Image Base: 00100000\n * Memory Layout:\n *   segment_1.1: 00100000 - 00100237 (Size: 568, -R-)\n *   .note.android.ident: 00100238 - 001002cf (Size: 152, -R-)\n *   .note.gnu.build-id: 001002d0 - 001002f3 (Size: 36, -R-)\n *   .dynsym: 001002f8 - 001004ef (Size: 504, -R-)\n *   .gnu.version: 001004f0 - 00100519 (Size: 42, -R-)\n *   .gnu.version_r: 0010051c - 0010053b (Size: 32, -R-)\n *   .gnu.hash: 00100540 - 001005a3 (Size: 100, -R-)\n *   .dynstr: 001005a4 - 001007e4 (Size: 577, -R-)\n *   .rela.dyn: 001007e8 - 001008a7 (Size: 192, -R-)\n *   .rela.plt: 001008a8 - 001009c7 (Size: 288, -R-)\n *   .rodata: 001009c8 - 001009e2 (Size: 27, -R-)\n *   .eh_frame_hdr: 001009e4 - 00100a5f (Size: 124, -R-)\n *   .eh_frame: 00100a60 - 00100c0b (Size: 428, -R-)\n *   .text: 00100c0c - 0010126f (Size: 1636, XR-)\n *   .plt: 00101270 - 0010134f (Size: 224, XR-)\n *   .data.rel.ro: 00102350 - 00102357 (Size: 8, -R-)\n *   .fini_array: 00102358 - 00102367 (Size: 16, -R-)\n *   .dynamic: 00102368 - 00102507 (Size: 416, -R-)\n *   .got: 00102508 - 0010252f (Size: 40, -R-)\n *   .got.plt: 00102530 - 001025a7 (Size: 120, -R-)\n *   .bss: 001035a8 - 001054ef (Size: 8008, -RW)\n *   EXTERNAL: 00106000 - 00106047 (Size: 72, -RW)\n *   .comment: .comment::00000000 - .comment::000000b0 (Size: 177, ---)\n *   .shstrtab: .shstrtab::00000000 - .shstrtab::000000df (Size: 224, ---)\n *   _elfSectionHeaders: _elfSectionHeaders::00000000 - _elfSectionHeaders::000005bf (Size: 1472, ---)\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\n/* ========= Function: _FINI_1 @ 00100c0c ========= */\n\nvoid _FINI_1(void)\n\n{\n  __cxa_finalize(&PTR_LOOP_00102350);\n  return;\n}\n\n\n\n\n/* ========= Function: FUN_00100c1c @ 00100c1c ========= */\n\nvoid FUN_00100c1c(void)\n\n{\n  return;\n}\n\n\n\n\n/* ========= Function: _FINI_0 @ 00100c24 [THUNK] ========= */\n\nvoid _FINI_0(void)\n\n{\n  FUN_00100c1c();\n  return;\n}\n\n\n\n\n/* ========= Function: FUN_00100c2c @ 00100c2c ========= */\n\nvoid FUN_00100c2c(code *UNRECOVERED_JUMPTABLE)\n\n{\n  if (UNRECOVERED_JUMPTABLE != (code *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00100c38. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  }\n  return;\n}\n\n\n\n\n/* ========= Function: FUN_00100c40 @ 00100c40 ========= */\n\nvoid FUN_00100c40(undefined8 param_1)\n\n{\n  __cxa_atexit(FUN_00100c2c,param_1,&PTR_LOOP_00102350);\n  return;\n}\n\n\n\n\n/* ========= Function: FUN_00100c5c @ 00100c5c ========= */\n\nvoid FUN_00100c5c(void)\n\n{\n  __register_atfork();\n  return;\n}\n\n\n\n\n/* ========= Function: delete_img @ 00100c6c ========= */\n\n/* delete_img(msg*) */\n\nvoid delete_img(msg *param_1)\n\n{\n  __android_log_print(2,\"PwnChatDebug\",\"Image Deleted\");\n  return;\n}\n\n\n\n\n/* ========= Function: Java_com_mobilehackinglab_pwnchat_ChatFragment_readId @ 00100ca0 ========= */\n\n_jbyteArray *\nJava_com_mobilehackinglab_pwnchat_ChatFragment_readId\n          (_JNIEnv *param_1,undefined8 param_2,_jstring *param_3)\n\n{\n  int iVar1;\n  char *__s2;\n  signed *psVar2;\n  _jbyteArray *p_Var3;\n  long lVar4;\n  uint local_5c;\n  long local_58;\n  \n  __s2 = (char *)_JNIEnv::GetStringUTFChars(param_1,param_3,(uchar *)0x0);\n  local_58 = 0;\n  for (local_5c = 0; local_5c < count; local_5c = local_5c + 1) {\n    lVar4 = *(long *)(all_msgs + (long)(int)local_5c * 8);\n    if ((lVar4 != 0) && (iVar1 = strcmp((char *)(lVar4 + 0x810),__s2), iVar1 == 0)) {\n      local_58 = lVar4;\n    }\n  }\n  psVar2 = malloc((ulong)*(byte *)(local_58 + 0x800));\n  __memcpy_chk(psVar2,local_58 + 0x810,*(undefined1 *)(local_58 + 0x800),0xffffffffffffffff);\n  p_Var3 = (_jbyteArray *)\n           _JNIEnv::NewByteArray(param_1,(int)(short)(ushort)*(byte *)(local_58 + 0x800));\n  _JNIEnv::SetByteArrayRegion\n            (param_1,p_Var3,0,(int)(short)(ushort)*(byte *)(local_58 + 0x800),psVar2);\n  return p_Var3;\n}\n\n\n\n\n/* ========= Function: GetStringUTFChars @ 00100de8 ========= */\n\n/* _JNIEnv::GetStringUTFChars(_jstring*, unsigned char*) */\n\nvoid __thiscall _JNIEnv::GetStringUTFChars(_JNIEnv *this,_jstring *param_1,uchar *param_2)\n\n{\n  (**(code **)(*(long *)this + 0x548))(this,param_1,param_2);\n  return;\n}\n\n\n\n\n/* ========= Function: NewByteArray @ 00100e24 ========= */\n\n/* _JNIEnv::NewByteArray(int) */\n\nvoid __thiscall _JNIEnv::NewByteArray(_JNIEnv *this,int param_1)\n\n{\n  (**(code **)(*(long *)this + 0x580))(this,param_1);\n  return;\n}\n\n\n\n\n/* ========= Function: SetByteArrayRegion @ 00100e58 ========= */\n\n/* _JNIEnv::SetByteArrayRegion(_jbyteArray*, int, int, signed char const*) */\n\nvoid __thiscall\n_JNIEnv::SetByteArrayRegion\n          (_JNIEnv *this,_jbyteArray *param_1,int param_2,int param_3,signed *param_4)\n\n{\n  (**(code **)(*(long *)this + 0x680))(this,param_1,param_2,param_3,param_4);\n  return;\n}\n\n\n\n\n/* ========= Function: Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage @ 00100ea4 ========= */\n\nvoid Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage\n               (_JNIEnv *param_1,undefined8 param_2,_jstring *param_3)\n\n{\n  int iVar1;\n  char *__s2;\n  long lVar2;\n  uint local_5c;\n  long local_58;\n  \n  __s2 = (char *)_JNIEnv::GetStringUTFChars(param_1,param_3,(uchar *)0x0);\n  if (zeroed == 0) {\n    __memset_chk(all_msgs,0,8000,8000);\n    zeroed = 1;\n  }\n  local_58 = 0;\n  for (local_5c = 0; local_5c < count; local_5c = local_5c + 1) {\n    lVar2 = *(long *)(all_msgs + (long)(int)local_5c * 8);\n    if ((lVar2 != 0) && (iVar1 = strcmp((char *)(lVar2 + 0x810),__s2), iVar1 == 0)) {\n      local_58 = lVar2;\n    }\n  }\n  if (local_58 != 0) {\n    (**(code **)(local_58 + 0x808))(local_58);\n  }\n  return;\n}\n\n\n\n\n/* ========= Function: Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage @ 00100fd8 ========= */\n\nvoid Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage\n               (_JNIEnv *param_1,undefined8 param_2,_jbyteArray *param_3,undefined4 param_4,\n               _jstring *param_5)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  char *__s2;\n  void *pvVar3;\n  uint local_ec;\n  void *local_e8;\n  \n  if (zeroed == 0) {\n    __memset_chk(all_msgs,0,8000,8000);\n    zeroed = 1;\n  }\n  uVar2 = _JNIEnv::GetByteArrayElements(param_1,param_3,(uchar *)0x0);\n  __s2 = (char *)_JNIEnv::GetStringUTFChars(param_1,param_5,(uchar *)0x0);\n  local_e8 = (void *)0x0;\n  for (local_ec = 0; local_ec < count; local_ec = local_ec + 1) {\n    pvVar3 = *(void **)(all_msgs + (long)(int)local_ec * 8);\n    if ((pvVar3 != (void *)0x0) && (iVar1 = strcmp((char *)((long)pvVar3 + 0x810),__s2), iVar1 == 0)\n       ) {\n      local_e8 = pvVar3;\n    }\n  }\n  if (local_e8 == (void *)0x0) {\n    local_e8 = malloc(0x840);\n    __memset_chk(local_e8,0,0x840,0xffffffffffffffff);\n    *(undefined1 *)((long)local_e8 + 0x800) = 0x25;\n    __memcpy_chk((long)local_e8 + 0x810,__s2,0x25,0xffffffffffffffff);\n    *(code **)((long)local_e8 + 0x838) = remove;\n    *(code **)((long)local_e8 + 0x808) = delete_img;\n    *(void **)(all_msgs + (ulong)count * 8) = local_e8;\n    count = count + 1;\n  }\n  __memcpy_chk(local_e8,uVar2,param_4,0xffffffffffffffff);\n  return;\n}\n\n\n\n\n/* ========= Function: GetByteArrayElements @ 00101234 ========= */\n\n/* _JNIEnv::GetByteArrayElements(_jbyteArray*, unsigned char*) */\n\nvoid __thiscall _JNIEnv::GetByteArrayElements(_JNIEnv *this,_jbyteArray *param_1,uchar *param_2)\n\n{\n  (**(code **)(*(long *)this + 0x5c0))(this,param_1,param_2);\n  return;\n}\n\n\n\n\n/* ========= Function: FUN_00101270 @ 00101270 ========= */\n\nvoid FUN_00101270(void)\n\n{\n  (*(code *)(undefined *)0x0)();\n  return;\n}\n\n\n\n\n/* ========= Function: __cxa_finalize @ 00101290 [THUNK] ========= */\n\nvoid __cxa_finalize(void)\n\n{\n  __cxa_finalize();\n  return;\n}\n\n\n\n\n/* ========= Function: __cxa_atexit @ 001012a0 [THUNK] ========= */\n\nvoid __cxa_atexit(void)\n\n{\n  __cxa_atexit();\n  return;\n}\n\n\n\n\n/* ========= Function: __register_atfork @ 001012b0 [THUNK] ========= */\n\nvoid __register_atfork(void)\n\n{\n  __register_atfork();\n  return;\n}\n\n\n\n\n/* ========= Function: __android_log_print @ 001012c0 [THUNK] ========= */\n\nvoid __android_log_print(void)\n\n{\n  __android_log_print();\n  return;\n}\n\n\n\n\n/* ========= Function: GetStringUTFChars @ 001012d0 [THUNK] ========= */\n\nvoid __thiscall _JNIEnv::GetStringUTFChars(_JNIEnv *this,_jstring *param_1,uchar *param_2)\n\n{\n  GetStringUTFChars(this,param_1,param_2);\n  return;\n}\n\n\n\n\n/* ========= Function: strcmp @ 001012e0 [THUNK] ========= */\n\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nint strcmp(char *__s1,char *__s2)\n\n{\n  int iVar1;\n  \n  iVar1 = strcmp(__s1,__s2);\n  return iVar1;\n}\n\n\n\n\n/* ========= Function: malloc @ 001012f0 [THUNK] ========= */\n\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid * malloc(size_t __size)\n\n{\n  void *pvVar1;\n  \n  pvVar1 = malloc(__size);\n  return pvVar1;\n}\n\n\n\n\n/* ========= Function: __memcpy_chk @ 00101300 [THUNK] ========= */\n\nvoid __memcpy_chk(void)\n\n{\n  __memcpy_chk();\n  return;\n}\n\n\n\n\n/* ========= Function: NewByteArray @ 00101310 [THUNK] ========= */\n\nvoid __thiscall _JNIEnv::NewByteArray(_JNIEnv *this,int param_1)\n\n{\n  NewByteArray(this,param_1);\n  return;\n}\n\n\n\n\n/* ========= Function: SetByteArrayRegion @ 00101320 [THUNK] ========= */\n\nvoid __thiscall\n_JNIEnv::SetByteArrayRegion\n          (_JNIEnv *this,_jbyteArray *param_1,int param_2,int param_3,signed *param_4)\n\n{\n  SetByteArrayRegion(this,param_1,param_2,param_3,param_4);\n  return;\n}\n\n\n\n\n/* ========= Function: __memset_chk @ 00101330 [THUNK] ========= */\n\nvoid __memset_chk(void)\n\n{\n  __memset_chk();\n  return;\n}\n\n\n\n\n/* ========= Function: GetByteArrayElements @ 00101340 [THUNK] ========= */\n\nvoid __thiscall _JNIEnv::GetByteArrayElements(_JNIEnv *this,_jbyteArray *param_1,uchar *param_2)\n\n{\n  GetByteArrayElements(this,param_1,param_2);\n  return;\n}\n\n\n\n\n/* ========= Function: __cxa_finalize @ 00106000 [THUNK] ========= */\n\n/* WARNING: Control flow encountered bad instruction data */\n\nvoid __cxa_finalize(void)\n\n{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  /* WARN: unreachable / bad instruction sequence */;\n}\n\n\n\n\n/* ========= Function: __cxa_atexit @ 00106008 [THUNK] ========= */\n\n/* WARNING: Control flow encountered bad instruction data */\n\nvoid __cxa_atexit(void)\n\n{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  /* WARN: unreachable / bad instruction sequence */;\n}\n\n\n\n\n/* ========= Function: __register_atfork @ 00106010 [THUNK] ========= */\n\n/* WARNING: Control flow encountered bad instruction data */\n\nvoid __register_atfork(void)\n\n{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  /* WARN: unreachable / bad instruction sequence */;\n}\n\n\n\n\n/* ========= Function: __android_log_print @ 00106018 [THUNK] ========= */\n\n/* WARNING: Control flow encountered bad instruction data */\n\nvoid __android_log_print(void)\n\n{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  /* WARN: unreachable / bad instruction sequence */;\n}\n\n\n\n\n/* ========= Function: strcmp @ 00106020 [THUNK] ========= */\n\n/* WARNING: Control flow encountered bad instruction data */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nint strcmp(char *__s1,char *__s2)\n\n{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  /* WARN: unreachable / bad instruction sequence */;\n}\n\n\n\n\n/* ========= Function: malloc @ 00106028 [THUNK] ========= */\n\n/* WARNING: Control flow encountered bad instruction data */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid * malloc(size_t __size)\n\n{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  /* WARN: unreachable / bad instruction sequence */;\n}\n\n\n\n\n/* ========= Function: __memcpy_chk @ 00106030 [THUNK] ========= */\n\n/* WARNING: Control flow encountered bad instruction data */\n\nvoid __memcpy_chk(void)\n\n{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  /* WARN: unreachable / bad instruction sequence */;\n}\n\n\n\n\n/* ========= Function: __memset_chk @ 00106038 [THUNK] ========= */\n\n/* WARNING: Control flow encountered bad instruction data */\n\nvoid __memset_chk(void)\n\n{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  /* WARN: unreachable / bad instruction sequence */;\n}\n\n\n\n\n/* ========= Function: remove @ 00106040 [THUNK] ========= */\n\n/* WARNING: Control flow encountered bad instruction data */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nint remove(char *__filename)\n\n{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  /* WARN: unreachable / bad instruction sequence */;\n}\n\n\n\n\n\n/*\n * SUMMARY\n * Total functions:              36\n * Successfully decompiled:      36\n * Thunk decompilations:         22\n * External (no body) skipped:   0\n * CFGs exported:                36\n * Binary CFG functions:         36\n * Binary CFG call edges:        32\n */\n","analysis_report":"Enhanced Binary Analysis Report (FIXED)\n============================================================\nOriginal file: so_samples/libpwnchat.so\nFile size: 7,424 bytes\nAnalysis date: 2026-06-17 20:02:35\nAnalysis duration: 10.30 seconds\n\nArchitecture Information:\n------------------------------\nFile format: ELF\nArchitecture: AArch64\nBits: 64\nEndianness: little\n\nOutput Information:\n------------------------------\nTotal function files created: 36\nSuccessful decompilations: 36\nFailed decompilations: 0\nCFGs exported (JSON): 37\nCFGs exported (DOT):  37\n\nFixes applied:\n------------------------------\n- Decompiles ALL functions (including thunks, not just externals skipped)\n- CFG exported for every function\n- halt_baddata replaced with readable comments\n- resolveUndefinedCallTargets pre-pass to fix subroutine-not-found\n- Filename collision avoidance for same-named thunks\n\nCommand: /snap/ghidra/current/ghidra_12.1_PUBLIC/support/analyzeHeadless /tmp/sdm_ghidra_70iiow77/libpwnchat_AArch64_64bit/ghidra_project libpwnchat_analysis_AArch64 -import /home/apogean/projects/vapt/so_vapt/so_samples/libpwnchat.so -scriptPath /tmp/sdm_ghidra_70iiow77/libpwnchat_AArch64_64bit/scripts -postScript DecompileScript.java -deleteProject -overwrite -analysisTimeoutPerFile 30 -max-cpu 16\nReturn code: 0\n\nGhidra stdout:\nINFO  Using log config file: jar:file:/snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Framework/Generic/lib/Generic.jar!/generic.log4j.xml (LoggingInitialization)  \nINFO  Using log file: /root/.config/ghidra/ghidra_12.1_PUBLIC/application.log (LoggingInitialization)  \nINFO  Loading user preferences: /root/.config/ghidra/ghidra_12.1_PUBLIC/preferences (Preferences)  \nINFO  Loading previous preferences: /root/.config/ghidra/ghidra_12.0_PUBLIC/preferences (Preferences)  \nINFO  Searching for classes... (ClassSearcher)  \nINFO  Class search complete (731 ms) (ClassSearcher)  \nINFO  Initializing SSL Context (DefaultSSLContextInitializer)  \nINFO  Initializing Random Number Generator... (SecureRandomFactory)  \nINFO  Random Number Generator initialization complete: NativePRNGNonBlocking (SecureRandomFactory)  \nINFO  Trust manager disabled, cacerts have not been set (DefaultTrustManagerFactory)  \nINFO  Headless startup complete (2206 ms) (AnalyzeHeadless)  \nINFO  Class searcher loaded 59 extension points (20 false positives) (ClassSearcher)  \nINFO  HEADLESS Script Paths:\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Features/Base/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Processors/PIC/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Processors/JVM/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Debug/Debugger-rmi-trace/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Features/PyGhidra/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Features/SystemEmulation/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Features/DecompilerDependent/ghidra_scripts\n    /tmp/sdm_ghidra_70iiow77/libpwnchat_AArch64_64bit/scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Features/BSim/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Debug/Debugger/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Features/VersionTracking/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Features/Decompiler/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Processors/Atmel/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Features/WildcardAssembler/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Features/FunctionID/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Features/GnuDemangler/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Features/MicrosoftCodeAnalyzer/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Features/PDB/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Features/SwiftDemangler/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Processors/8051/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Features/FileFormats/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Processors/DATA/ghidra_scripts\n    /snap/ghidra/37/ghidra_12.1_PUBLIC/Ghidra/Features/BytePatterns/ghidra_scripts (HeadlessAnalyzer)  \nINFO  HEADLESS: execution starts (HeadlessAnalyzer)  \nINFO  Creating temporary project: /tmp/sdm_ghidra_70iiow77/libpwnchat_AArch64_64bit/ghidra_project/libpwnchat_analysis_AArch64 (HeadlessAnalyzer)  \nINFO  Creating project: /tmp/sdm_ghidra_70iiow77/libpwnchat_AArch64_64bit/ghidra_project/libpwnchat_analysis_AArch64 (DefaultProject)  \nINFO  REPORT: Processing input files:  (HeadlessAnalyzer)  \nINFO       project: /tmp/sdm_ghidra_70iiow77/libpwnchat_AArch64_64bit/ghidra_project/libpwnchat_analysis_AArch64 (HeadlessAnalyzer)  \nINFO  IMPORTING: file:///home/apogean/projects/vapt/so_vapt/so_samples/libpwnchat.so (HeadlessAnalyzer)  \nINFO  Using Loader: Executable and Linking Format (ELF) (ProgramLoader)  \nINFO  Using Language/Compiler: AARCH64:LE:64:v8A:default (ProgramLoader)  \nINFO  Using Library Search Path: [., /bin, /lib, /lib64, /lib/x86_64-linux-gnu, /lib/aarch64-linux-gnu, /usr/bin, /usr/lib, /usr/X11R6/bin, /usr/X11R6/lib, /usr/java/packages/lib, /usr/lib/x86_64-linux-gnu/jni, /usr/lib/x86_64-linux-gnu, /usr/lib/jni] (ProgramLoader)  \nINFO  Additional info:\nLoading file:///home/apogean/projects/vapt/so_vapt/so_samples/libpwnchat.so?MD5=407e8c333aa4d5cabb5ac683ac87fcc2...\nSetting block .data.rel.ro to read-only\nSetting block .fini_array to read-only\nSetting block .dynamic to read-only\n------------------------------------------------\n\nLinking the External Programs of 'libpwnchat.so' to imported libraries...\n  [liblog.so] -> not found in project\n  [libm.so] -> not found in project\n  [libdl.so] -> not found in project\n  [libc.so] -> not found in project\n------------------------------------------------\n\nResolving External Symbols of [/libpwnchat.so] - 9 unresolved symbols, no external libraries configured - skipping\n (ProgramLoader)  \nINFO  IMPORTING: Loaded 0 additional files (HeadlessAnalyzer)  \nINFO  ANALYZING all memory and code: file:///home/apogean/projects/vapt/so_vapt/so_samples/libpwnchat.so (HeadlessAnalyzer)  \nINFO  DWARF external debug information found: ExternalDebugInfo [filename=null, crc=0, hash=9f4ad2f04be61d66be7239bd6f8362e6c81e333a, objectType=DEBUGINFO, extra=null] (ExternalDebugFileSectionProvider)  \nINFO  Unable to find DWARF information, skipping DWARF analysis (DWARFAnalyzer)  \nINFO  Packed database cache: /var/tmp/root-ghidra/packed-db-cache (PackedDatabaseCache)  \nINFO  Applied data type archive: generic_clib_64 (ApplyDataArchiveAnalyzer)  \nINFO  -----------------------------------------------------\n    AARCH64 ELF PLT Thunks                     0.022 secs\n    ASCII Strings                              0.385 secs\n    Apply Data Archives                        0.671 secs\n    Basic Constant Reference Analyzer          0.070 secs\n    Call Convention ID                         1.127 secs\n    Call-Fixup Installer                       0.001 secs\n    Create Address Tables                      0.006 secs\n    Create Address Tables - One Time           0.002 secs\n    Create Function                            0.000 secs\n    DWARF                                      0.007 secs\n    Data Reference                             0.005 secs\n    Decompiler Switch Analysis                 0.300 secs\n    Demangler GNU                              0.058 secs\n    Disassemble Entry Points                   0.055 secs\n    Embedded Media                             0.002 secs\n    External Entry References                  0.000 secs\n    Function ID                                0.021 secs\n    Function Start Search                      0.014 secs\n    Function Start Search After Code           0.004 secs\n    Function Start Search After Data           0.002 secs\n    Function Start Search delayed - One Time   0.001 secs\n    GCC Exception Handlers                     0.029 secs\n    Non-Returning Functions - Discovered       0.001 secs\n    Non-Returning Functions - Known            0.001 secs\n    Reference                                  0.012 secs\n    Shared Return Calls                        0.005 secs\n    Stack                                      0.063 secs\n    Subroutine References                      0.003 secs\n-----------------------------------------------------\n     Total Time   2 secs\n-----------------------------------------------------\n (AutoAnalysisManager)  \nINFO  REPORT: Analysis succeeded for file: file:///home/apogean/projects/vapt/so_vapt/so_samples/libpwnchat.so (HeadlessAnalyzer)  \nINFO  REPORT: Execute script: DecompileScript.java  (HeadlessAnalyzer)  \nINFO  SCRIPT: /tmp/sdm_ghidra_70iiow77/libpwnchat_AArch64_64bit/scripts/DecompileScript.java (HeadlessAnalyzer)  \nINFO  DecompileScript.java> Starting FIXED decompilation + CFG export process... (GhidraScript)  \nINFO  DecompileScript.java> Current program: libpwnchat.so (GhidraScript)  \nINFO  DecompileScript.java> Program language: AARCH64/little/64/v8A (GhidraScript)  \nINFO  DecompileScript.java> Architecture: AARCH64 (GhidraScript)  \nINFO  DecompileScript.java> Address size: 64 bits (GhidraScript)  \nINFO  DecompileScript.java> Pre-analysis: resolving undefined call targets... (GhidraScript)  \nINFO  DecompileScript.java> Pre-analysis: created 0 missing function stubs. (GhidraScript)  \nINFO  DecompileScript.java> Processing all functions (including thunks)... (GhidraScript)  \nINFO  DecompileScript.java> Processing function 1: _FINI_1 at 00100c0c (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: _FINI_1 (1 blocks, 0 edges) (GhidraScript)  \nINFO  DecompileScript.java> OK: _FINI_1 (GhidraScript)  \nINFO  DecompileScript.java> Processing function 2: FUN_00100c1c at 00100c1c (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: FUN_00100c1c (1 blocks, 0 edges) (GhidraScript)  \nINFO  DecompileScript.java> OK: FUN_00100c1c (GhidraScript)  \nINFO  DecompileScript.java> Processing function 3: _FINI_0 at 00100c24 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: _FINI_0 (1 blocks, 0 edges) [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> OK: _FINI_0 (GhidraScript)  \nINFO  DecompileScript.java> Processing function 4: FUN_00100c2c at 00100c2c (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: FUN_00100c2c (3 blocks, 2 edges) (GhidraScript)  \nINFO  DecompileScript.java> OK: FUN_00100c2c (GhidraScript)  \nINFO  DecompileScript.java> Processing function 5: FUN_00100c40 at 00100c40 (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: FUN_00100c40 (1 blocks, 0 edges) (GhidraScript)  \nINFO  DecompileScript.java> OK: FUN_00100c40 (GhidraScript)  \nINFO  DecompileScript.java> Processing function 6: FUN_00100c5c at 00100c5c (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: FUN_00100c5c (1 blocks, 0 edges) (GhidraScript)  \nINFO  DecompileScript.java> OK: FUN_00100c5c (GhidraScript)  \nINFO  DecompileScript.java> Processing function 7: delete_img at 00100c6c (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: delete_img (1 blocks, 0 edges) (GhidraScript)  \nINFO  DecompileScript.java> OK: delete_img (GhidraScript)  \nINFO  DecompileScript.java> Processing function 8: Java_com_mobilehackinglab_pwnchat_ChatFragment_readId at 00100ca0 (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: Java_com_mobilehackinglab_pwnchat_ChatFragment_readId (12 blocks, 14 edges) (GhidraScript)  \nINFO  DecompileScript.java> OK: Java_com_mobilehackinglab_pwnchat_ChatFragment_readId (GhidraScript)  \nINFO  DecompileScript.java> Processing function 9: GetStringUTFChars at 00100de8 (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: GetStringUTFChars (1 blocks, 0 edges) (GhidraScript)  \nINFO  DecompileScript.java> OK: GetStringUTFChars (GhidraScript)  \nINFO  DecompileScript.java> Processing function 10: NewByteArray at 00100e24 (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: NewByteArray (1 blocks, 0 edges) (GhidraScript)  \nINFO  DecompileScript.java> OK: NewByteArray (GhidraScript)  \nINFO  DecompileScript.java> Processing function 11: SetByteArrayRegion at 00100e58 (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: SetByteArrayRegion (1 blocks, 0 edges) (GhidraScript)  \nINFO  DecompileScript.java> OK: SetByteArrayRegion (GhidraScript)  \nINFO  DecompileScript.java> Processing function 12: Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage at 00100ea4 (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage (18 blocks, 22 edges) (GhidraScript)  \nINFO  DecompileScript.java> OK: Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage (GhidraScript)  \nINFO  DecompileScript.java> Processing function 13: Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage at 00100fd8 (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage (18 blocks, 22 edges) (GhidraScript)  \nINFO  DecompileScript.java> OK: Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage (GhidraScript)  \nINFO  DecompileScript.java> Processing function 14: GetByteArrayElements at 00101234 (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: GetByteArrayElements (1 blocks, 0 edges) (GhidraScript)  \nINFO  DecompileScript.java> OK: GetByteArrayElements (GhidraScript)  \nINFO  DecompileScript.java> Processing function 15: FUN_00101270 at 00101270 (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: FUN_00101270 (1 blocks, 0 edges) (GhidraScript)  \nINFO  DecompileScript.java> OK: FUN_00101270 (GhidraScript)  \nINFO  DecompileScript.java> Processing function 16: __cxa_finalize at 00101290 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: __cxa_finalize (1 blocks, 0 edges) [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> OK: __cxa_finalize (GhidraScript)  \nINFO  DecompileScript.java> Processing function 17: __cxa_atexit at 001012a0 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: __cxa_atexit (1 blocks, 0 edges) [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> OK: __cxa_atexit (GhidraScript)  \nINFO  DecompileScript.java> Processing function 18: __register_atfork at 001012b0 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: __register_atfork (1 blocks, 0 edges) [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> OK: __register_atfork (GhidraScript)  \nINFO  DecompileScript.java> Processing function 19: __android_log_print at 001012c0 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: __android_log_print (1 blocks, 0 edges) [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> OK: __android_log_print (GhidraScript)  \nINFO  DecompileScript.java> Processing function 20: GetStringUTFChars at 001012d0 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: GetStringUTFChars (1 blocks, 0 edges) [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> OK: GetStringUTFChars (GhidraScript)  \nINFO  DecompileScript.java> Processing function 21: strcmp at 001012e0 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: strcmp (1 blocks, 0 edges) [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> OK: strcmp (GhidraScript)  \nINFO  DecompileScript.java> Processing function 22: malloc at 001012f0 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: malloc (1 blocks, 0 edges) [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> OK: malloc (GhidraScript)  \nINFO  DecompileScript.java> Processing function 23: __memcpy_chk at 00101300 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: __memcpy_chk (1 blocks, 0 edges) [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> OK: __memcpy_chk (GhidraScript)  \nINFO  DecompileScript.java> Processing function 24: NewByteArray at 00101310 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: NewByteArray (1 blocks, 0 edges) [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> OK: NewByteArray (GhidraScript)  \nINFO  DecompileScript.java> Processing function 25: SetByteArrayRegion at 00101320 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: SetByteArrayRegion (1 blocks, 0 edges) [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> OK: SetByteArrayRegion (GhidraScript)  \nINFO  DecompileScript.java> Processing function 26: __memset_chk at 00101330 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: __memset_chk (1 blocks, 0 edges) [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> OK: __memset_chk (GhidraScript)  \nINFO  DecompileScript.java> Processing function 27: GetByteArrayElements at 00101340 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: GetByteArrayElements (1 blocks, 0 edges) [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> OK: GetByteArrayElements (GhidraScript)  \nINFO  DecompileScript.java> Processing function 28: __cxa_finalize at 00106000 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: __cxa_finalize (0 blocks, 0 edges) [THUNK] (GhidraScript)  \nWARN  Decompiling 00106000, pcode error at 00106000: Unable to disassemble EXTERNAL block location: 00106000 (DecompileCallback)  \nINFO  DecompileScript.java> OK: __cxa_finalize (GhidraScript)  \nINFO  DecompileScript.java> Processing function 29: __cxa_atexit at 00106008 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: __cxa_atexit (0 blocks, 0 edges) [THUNK] (GhidraScript)  \nWARN  Decompiling 00106008, pcode error at 00106008: Unable to disassemble EXTERNAL block location: 00106008 (DecompileCallback)  \nINFO  DecompileScript.java> OK: __cxa_atexit (GhidraScript)  \nINFO  DecompileScript.java> Processing function 30: __register_atfork at 00106010 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: __register_atfork (0 blocks, 0 edges) [THUNK] (GhidraScript)  \nWARN  Decompiling 00106010, pcode error at 00106010: Unable to disassemble EXTERNAL block location: 00106010 (DecompileCallback)  \nINFO  DecompileScript.java> OK: __register_atfork (GhidraScript)  \nINFO  DecompileScript.java> Processing function 31: __android_log_print at 00106018 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: __android_log_print (0 blocks, 0 edges) [THUNK] (GhidraScript)  \nWARN  Decompiling 00106018, pcode error at 00106018: Unable to disassemble EXTERNAL block location: 00106018 (DecompileCallback)  \nINFO  DecompileScript.java> OK: __android_log_print (GhidraScript)  \nINFO  DecompileScript.java> Processing function 32: strcmp at 00106020 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: strcmp (0 blocks, 0 edges) [THUNK] (GhidraScript)  \nWARN  Decompiling 00106020, pcode error at 00106020: Unable to disassemble EXTERNAL block location: 00106020 (DecompileCallback)  \nINFO  DecompileScript.java> OK: strcmp (GhidraScript)  \nINFO  DecompileScript.java> Processing function 33: malloc at 00106028 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: malloc (0 blocks, 0 edges) [THUNK] (GhidraScript)  \nWARN  Decompiling 00106028, pcode error at 00106028: Unable to disassemble EXTERNAL block location: 00106028 (DecompileCallback)  \nINFO  DecompileScript.java> OK: malloc (GhidraScript)  \nINFO  DecompileScript.java> Processing function 34: __memcpy_chk at 00106030 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: __memcpy_chk (0 blocks, 0 edges) [THUNK] (GhidraScript)  \nWARN  Decompiling 00106030, pcode error at 00106030: Unable to disassemble EXTERNAL block location: 00106030 (DecompileCallback)  \nINFO  DecompileScript.java> OK: __memcpy_chk (GhidraScript)  \nINFO  DecompileScript.java> Processing function 35: __memset_chk at 00106038 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: __memset_chk (0 blocks, 0 edges) [THUNK] (GhidraScript)  \nWARN  Decompiling 00106038, pcode error at 00106038: Unable to disassemble EXTERNAL block location: 00106038 (DecompileCallback)  \nINFO  DecompileScript.java> OK: __memset_chk (GhidraScript)  \nINFO  DecompileScript.java> Processing function 36: remove at 00106040 [THUNK] (GhidraScript)  \nINFO  DecompileScript.java> CFG exported for: remove (0 blocks, 0 edges) [THUNK] (GhidraScript)  \nWARN  Decompiling 00106040, pcode error at 00106040: Unable to disassemble EXTERNAL block location: 00106040 (DecompileCallback)  \nINFO  DecompileScript.java> OK: remove (GhidraScript)  \nINFO  DecompileScript.java> Exporting binary-level call graph... (GhidraScript)  \nINFO  DecompileScript.java> Binary CFG JSON saved: /tmp/sdm_ghidra_70iiow77/libpwnchat_AArch64_64bit/cfg/binary_cfg.json (GhidraScript)  \nINFO  DecompileScript.java> Binary CFG DOT  saved: /tmp/sdm_ghidra_70iiow77/libpwnchat_AArch64_64bit/cfg/binary_cfg.dot (GhidraScript)  \nINFO  DecompileScript.java> Binary CFG: 36 functions, 32 call edges (GhidraScript)  \nINFO  DecompileScript.java> === COMPLETED === (GhidraScript)  \nINFO  DecompileScript.java> Total functions:           36 (GhidraScript)  \nINFO  DecompileScript.java> Successfully decompiled:   36 (GhidraScript)  \nINFO  DecompileScript.java> Thunk decompilations:      22 (GhidraScript)  \nINFO  DecompileScript.java> External (no body) skipped:0 (GhidraScript)  \nINFO  DecompileScript.java> CFGs exported:             36 (GhidraScript)  \nINFO  DecompileScript.java> Binary CFG functions:      36 (GhidraScript)  \nINFO  DecompileScript.java> Binary CFG call edges:     32 (GhidraScript)  \nINFO  ANALYZING changes made by post scripts: file:///home/apogean/projects/vapt/so_vapt/so_samples/libpwnchat.so (HeadlessAnalyzer)  \nINFO  REPORT: Post-analysis succeeded for file: file:///home/apogean/projects/vapt/so_vapt/so_samples/libpwnchat.so (HeadlessAnalyzer)  \nINFO  /libpwnchat.so: file created (root) (LocalFileSystem)  \nINFO  REPORT: Save succeeded for: /libpwnchat.so (libpwnchat_analysis_AArch64:/libpwnchat.so) (HeadlessAnalyzer)  \nINFO  REPORT: Import succeeded (HeadlessAnalyzer)  \n\nGhidra stderr:\nopenjdk version \"21.0.11\" 2026-04-21\nOpenJDK Runtime Environment (build 21.0.11+10-1-24.04.2-Ubuntu)\nOpenJDK 64-Bit Server VM (build 21.0.11+10-1-24.04.2-Ubuntu, mixed mode)\n\n","functions":[{"name":"__memset_chk_00106038","decompiled_code":"/*\n * Function: __memset_chk\n * Address: 00106038\n * Size: 1 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: undefined __memset_chk(void)\n * CFG: cfg/__memset_chk_00106038_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\n/* WARNING: Control flow encountered bad instruction data */\n\nvoid __memset_chk(void)\n\n{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  /* WARN: unreachable / bad instruction sequence */;\n}\n\n\n","metadata":{"functionName":"__memset_chk","address":"00106038","hexBytes":"","assembly":[],"opCodes":[],"instructions":[],"strings":[],"apisImports":[],"exports":["__memset_chk"],"hash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","isThunk":true,"isExternal":false,"signature":"undefined __memset_chk(void)"}},{"name":"__cxa_finalize_00106000","decompiled_code":"/*\n * Function: __cxa_finalize\n * Address: 00106000\n * Size: 1 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: undefined __cxa_finalize(void)\n * CFG: cfg/__cxa_finalize_00106000_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\n/* WARNING: Control flow encountered bad instruction data */\n\nvoid __cxa_finalize(void)\n\n{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  /* WARN: unreachable / bad instruction sequence */;\n}\n\n\n","metadata":{"functionName":"__cxa_finalize","address":"00106000","hexBytes":"","assembly":[],"opCodes":[],"instructions":[],"strings":[],"apisImports":[],"exports":["__cxa_finalize"],"hash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","isThunk":true,"isExternal":false,"signature":"undefined __cxa_finalize(void)"}},{"name":"Java_com_mobilehackinglab_pwnchat_ChatFragment_readId","decompiled_code":"/*\n * Function: Java_com_mobilehackinglab_pwnchat_ChatFragment_readId\n * Address: 00100ca0\n * Size: 328 addresses\n * Architecture: AARCH64\n * IsThunk: false\n * Signature: undefined Java_com_mobilehackinglab_pwnchat_ChatFragment_readId(void)\n * CFG: cfg/Java_com_mobilehackinglab_pwnchat_ChatFragment_readId_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\n_jbyteArray *\nJava_com_mobilehackinglab_pwnchat_ChatFragment_readId\n          (_JNIEnv *param_1,undefined8 param_2,_jstring *param_3)\n\n{\n  int iVar1;\n  char *__s2;\n  signed *psVar2;\n  _jbyteArray *p_Var3;\n  long lVar4;\n  uint local_5c;\n  long local_58;\n  \n  __s2 = (char *)_JNIEnv::GetStringUTFChars(param_1,param_3,(uchar *)0x0);\n  local_58 = 0;\n  for (local_5c = 0; local_5c < count; local_5c = local_5c + 1) {\n    lVar4 = *(long *)(all_msgs + (long)(int)local_5c * 8);\n    if ((lVar4 != 0) && (iVar1 = strcmp((char *)(lVar4 + 0x810),__s2), iVar1 == 0)) {\n      local_58 = lVar4;\n    }\n  }\n  psVar2 = malloc((ulong)*(byte *)(local_58 + 0x800));\n  __memcpy_chk(psVar2,local_58 + 0x810,*(undefined1 *)(local_58 + 0x800),0xffffffffffffffff);\n  p_Var3 = (_jbyteArray *)\n           _JNIEnv::NewByteArray(param_1,(int)(short)(ushort)*(byte *)(local_58 + 0x800));\n  _JNIEnv::SetByteArrayRegion\n            (param_1,p_Var3,0,(int)(short)(ushort)*(byte *)(local_58 + 0x800),psVar2);\n  return p_Var3;\n}\n\n\n","metadata":{"functionName":"Java_com_mobilehackinglab_pwnchat_ChatFragment_readId","address":"00100ca0","hexBytes":"ff0302d1fd7b07a9fdc30191a0831df8a1031df8e21f00f9a0835df8e11f40f9e2031faa83010094e01b00f9ff1700f9ff2700b901000014e82740b9090000d0298942f9290140b90801096b2203005401000014e92780b9080000d0088d42f9087969f8e80f00f9e80f40f9880100b401000014e80f40f900412091e11b40f970010094a000003501000014e80f40f9e81700f9010000140100001401000014e82740b908050011e82700b9e3ffff17e81740f908016039e003082a65010094e00b00f9ea0b40f9e81740f909412091e81740f908016039aa831ff80a008092aa031ff8a9831ef8a8031ef8a0835ff8a1835ef8a2035ef8a3035ff859010094a0835df8e81740f908016039013d001358010094e00700f9a0835df8e10740f9e81740f908016039033d0013e40b40f9e2031f2a53010094e00740f9fd7b47a9ff030291c0035fd6","assembly":["sub sp,sp,#0x80","stp x29,x30,[sp, #0x70]","add x29,sp,#0x70","stur x0,[x29, #-0x28]","stur x1,[x29, #-0x30]","str x2,[sp, #0x38]","ldur x0,[x29, #-0x28]","ldr x1,[sp, #0x38]","mov x2,xzr","bl 0x001012d0","str x0,[sp, #0x30]","str xzr,[sp, #0x28]","str wzr,[sp, #0x24]","b 0x00100cd8","ldr w8,[sp, #0x24]","adrp x9,0x102000","ldr x9,[x9, #0x510]","ldr w9,[x9]","subs w8,w8,w9","b.cs 0x00100d50","b 0x00100cf4","ldrsw x9,[sp, #0x24]","adrp x8,0x102000","ldr x8,[x8, #0x518]","ldr x8,[x8, x9, LSL #0x3]","str x8,[sp, #0x18]","ldr x8,[sp, #0x18]","cbz x8,0x00100d3c","b 0x00100d14","ldr x8,[sp, #0x18]","add x0,x8,#0x810","ldr x1,[sp, #0x30]","bl 0x001012e0","cbnz w0,0x00100d38","b 0x00100d2c","ldr x8,[sp, #0x18]","str x8,[sp, #0x28]","b 0x00100d38","b 0x00100d3c","b 0x00100d40","ldr w8,[sp, #0x24]","add w8,w8,#0x1","str w8,[sp, #0x24]","b 0x00100cd8","ldr x8,[sp, #0x28]","ldrb w8,[x8, #0x800]","mov w0,w8","bl 0x001012f0","str x0,[sp, #0x10]","ldr x10,[sp, #0x10]","ldr x8,[sp, #0x28]","add x9,x8,#0x810","ldr x8,[sp, #0x28]","ldrb w8,[x8, #0x800]","stur x10,[x29, #-0x8]","mov x10,#-0x1","stur x10,[x29, #-0x10]","stur x9,[x29, #-0x18]","stur x8,[x29, #-0x20]","ldur x0,[x29, #-0x8]","ldur x1,[x29, #-0x18]","ldur x2,[x29, #-0x20]","ldur x3,[x29, #-0x10]","bl 0x00101300","ldur x0,[x29, #-0x28]","ldr x8,[sp, #0x28]","ldrb w8,[x8, #0x800]","sxth w1,w8","bl 0x00101310","str x0,[sp, #0x8]","ldur x0,[x29, #-0x28]","ldr x1,[sp, #0x8]","ldr x8,[sp, #0x28]","ldrb w8,[x8, #0x800]","sxth w3,w8","ldr x4,[sp, #0x10]","mov w2,wzr","bl 0x00101320","ldr x0,[sp, #0x8]","ldp x29,x30,[sp, #0x70]","add sp,sp,#0x80","ret "],"opCodes":["ff0302d1","fd7b07a9","fdc30191","a0831df8","a1031df8","e21f00f9","a0835df8","e11f40f9","e2031faa","83010094","e01b00f9","ff1700f9","ff2700b9","01000014","e82740b9","090000d0","298942f9","290140b9","0801096b","22030054","01000014","e92780b9","080000d0","088d42f9","087969f8","e80f00f9","e80f40f9","880100b4","01000014","e80f40f9","00412091","e11b40f9","70010094","a0000035","01000014","e80f40f9","e81700f9","01000014","01000014","01000014","e82740b9","08050011","e82700b9","e3ffff17","e81740f9","08016039","e003082a","65010094","e00b00f9","ea0b40f9","e81740f9","09412091","e81740f9","08016039","aa831ff8","0a008092","aa031ff8","a9831ef8","a8031ef8","a0835ff8","a1835ef8","a2035ef8","a3035ff8","59010094","a0835df8","e81740f9","08016039","013d0013","58010094","e00700f9","a0835df8","e10740f9","e81740f9","08016039","033d0013","e40b40f9","e2031f2a","53010094","e00740f9","fd7b47a9","ff030291","c0035fd6"],"instructions":["sub sp,sp,#0x80","stp x29,x30,[sp, #0x70]","add x29,sp,#0x70","stur x0,[x29, #-0x28]","stur x1,[x29, #-0x30]","str x2,[sp, #0x38]","ldur x0,[x29, #-0x28]","ldr x1,[sp, #0x38]","mov x2,xzr","bl 0x001012d0","str x0,[sp, #0x30]","str xzr,[sp, #0x28]","str wzr,[sp, #0x24]","b 0x00100cd8","ldr w8,[sp, #0x24]","adrp x9,0x102000","ldr x9,[x9, #0x510]","ldr w9,[x9]","subs w8,w8,w9","b.cs 0x00100d50","b 0x00100cf4","ldrsw x9,[sp, #0x24]","adrp x8,0x102000","ldr x8,[x8, #0x518]","ldr x8,[x8, x9, LSL #0x3]","str x8,[sp, #0x18]","ldr x8,[sp, #0x18]","cbz x8,0x00100d3c","b 0x00100d14","ldr x8,[sp, #0x18]","add x0,x8,#0x810","ldr x1,[sp, #0x30]","bl 0x001012e0","cbnz w0,0x00100d38","b 0x00100d2c","ldr x8,[sp, #0x18]","str x8,[sp, #0x28]","b 0x00100d38","b 0x00100d3c","b 0x00100d40","ldr w8,[sp, #0x24]","add w8,w8,#0x1","str w8,[sp, #0x24]","b 0x00100cd8","ldr x8,[sp, #0x28]","ldrb w8,[x8, #0x800]","mov w0,w8","bl 0x001012f0","str x0,[sp, #0x10]","ldr x10,[sp, #0x10]","ldr x8,[sp, #0x28]","add x9,x8,#0x810","ldr x8,[sp, #0x28]","ldrb w8,[x8, #0x800]","stur x10,[x29, #-0x8]","mov x10,#-0x1","stur x10,[x29, #-0x10]","stur x9,[x29, #-0x18]","stur x8,[x29, #-0x20]","ldur x0,[x29, #-0x8]","ldur x1,[x29, #-0x18]","ldur x2,[x29, #-0x20]","ldur x3,[x29, #-0x10]","bl 0x00101300","ldur x0,[x29, #-0x28]","ldr x8,[sp, #0x28]","ldrb w8,[x8, #0x800]","sxth w1,w8","bl 0x00101310","str x0,[sp, #0x8]","ldur x0,[x29, #-0x28]","ldr x1,[sp, #0x8]","ldr x8,[sp, #0x28]","ldrb w8,[x8, #0x800]","sxth w3,w8","ldr x4,[sp, #0x10]","mov w2,wzr","bl 0x00101320","ldr x0,[sp, #0x8]","ldp x29,x30,[sp, #0x70]","add sp,sp,#0x80","ret "],"strings":[],"apisImports":["GetStringUTFChars","strcmp","malloc","__memcpy_chk","NewByteArray","SetByteArrayRegion"],"exports":["Java_com_mobilehackinglab_pwnchat_ChatFragment_readId"],"hash":"69eaf4ad0de7289e3d4a3f1d2e373221e249890c4634f8ab07ffebbeb2a1c2b8","isThunk":false,"isExternal":false,"signature":"undefined Java_com_mobilehackinglab_pwnchat_ChatFragment_readId(void)"}},{"name":"__cxa_atexit","decompiled_code":"/*\n * Function: __cxa_atexit\n * Address: 001012a0\n * Size: 16 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: undefined __cxa_atexit(void)\n * CFG: cfg/__cxa_atexit_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid __cxa_atexit(void)\n\n{\n  __cxa_atexit();\n  return;\n}\n\n\n","metadata":{"functionName":"__cxa_atexit","address":"001012a0","hexBytes":"100000b011aa42f91042159120021fd6","assembly":["adrp x16,0x102000","ldr x17,[x16, #0x550]","add x16,x16,#0x550","br x17"],"opCodes":["100000b0","11aa42f9","10421591","20021fd6"],"instructions":["adrp x16,0x102000","ldr x17,[x16, #0x550]","add x16,x16,#0x550","br x17"],"strings":[],"apisImports":["__cxa_atexit"],"exports":["__cxa_atexit"],"hash":"4451b0b535f6e945669ed2429b2ff9b4aed79d3e4731e5c61c6aaa801019ecd9","isThunk":true,"isExternal":false,"signature":"undefined __cxa_atexit(void)"}},{"name":"_FINI_1","decompiled_code":"/*\n * Function: _FINI_1\n * Address: 00100c0c\n * Size: 16 addresses\n * Architecture: AARCH64\n * IsThunk: false\n * Signature: undefined _FINI_1(void)\n * CFG: cfg/_FINI_1_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid _FINI_1(void)\n\n{\n  __cxa_finalize(&PTR_LOOP_00102350);\n  return;\n}\n\n\n","metadata":{"functionName":"_FINI_1","address":"00100c0c","hexBytes":"5f2403d5000000d000400d919e010014","assembly":["bti c","adrp x0,0x102000","add x0,x0,#0x350","b 0x00101290"],"opCodes":["5f2403d5","000000d0","00400d91","9e010014"],"instructions":["bti c","adrp x0,0x102000","add x0,x0,#0x350","b 0x00101290"],"strings":[],"apisImports":["__cxa_finalize"],"exports":["_FINI_1"],"hash":"118cc9b315f4dd513de84e3e3cf1417efa702f72c9bdbdeeb0ea7ef3adf3f4c7","isThunk":false,"isExternal":false,"signature":"undefined _FINI_1(void)"}},{"name":"FUN_00101270","decompiled_code":"/*\n * Function: FUN_00101270\n * Address: 00101270\n * Size: 20 addresses\n * Architecture: AARCH64\n * IsThunk: false\n * Signature: undefined FUN_00101270(void)\n * CFG: cfg/FUN_00101270_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid FUN_00101270(void)\n\n{\n  (*(code *)(undefined *)0x0)();\n  return;\n}\n\n\n","metadata":{"functionName":"FUN_00101270","address":"00101270","hexBytes":"f07bbfa9100000b011a242f91002159120021fd6","assembly":["stp x16,x30,[sp, #-0x10]!","adrp x16,0x102000","ldr x17,[x16, #0x540]","add x16,x16,#0x540","br x17"],"opCodes":["f07bbfa9","100000b0","11a242f9","10021591","20021fd6"],"instructions":["stp x16,x30,[sp, #-0x10]!","adrp x16,0x102000","ldr x17,[x16, #0x540]","add x16,x16,#0x540","br x17"],"strings":[],"apisImports":[],"exports":["FUN_00101270"],"hash":"c01b03f3604e5da9d9f4756c18f0f4efebfd15cfde48b194a87b4f90282cabd7","isThunk":false,"isExternal":false,"signature":"undefined FUN_00101270(void)"}},{"name":"malloc_00106028","decompiled_code":"/*\n * Function: malloc\n * Address: 00106028\n * Size: 1 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: void * malloc(size_t __size)\n * CFG: cfg/malloc_00106028_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\n/* WARNING: Control flow encountered bad instruction data */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid * malloc(size_t __size)\n\n{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  /* WARN: unreachable / bad instruction sequence */;\n}\n\n\n","metadata":{"functionName":"malloc","address":"00106028","hexBytes":"","assembly":[],"opCodes":[],"instructions":[],"strings":[],"apisImports":[],"exports":["malloc"],"hash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","isThunk":true,"isExternal":false,"signature":"void * malloc(size_t __size)"}},{"name":"GetByteArrayElements","decompiled_code":"/*\n * Function: GetByteArrayElements\n * Address: 00101234\n * Size: 60 addresses\n * Architecture: AARCH64\n * IsThunk: false\n * Signature: undefined __thiscall GetByteArrayElements(_JNIEnv * this, _jbyteArray * param_1, uchar * param_2)\n * Calling Convention: __thiscall\n * CFG: cfg/GetByteArrayElements_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\n/* _JNIEnv::GetByteArrayElements(_jbyteArray*, unsigned char*) */\n\nvoid __thiscall _JNIEnv::GetByteArrayElements(_JNIEnv *this,_jbyteArray *param_1,uchar *param_2)\n\n{\n  (**(code **)(*(long *)this + 0x5c0))(this,param_1,param_2);\n  return;\n}\n\n\n","metadata":{"functionName":"GetByteArrayElements","address":"00101234","hexBytes":"ffc300d1fd7b02a9fd830091a0831ff8e10b00f9e20700f9a0835ff8080040f908e142f9e10b40f9e20740f900013fd6fd7b42a9ffc30091c0035fd6","assembly":["sub sp,sp,#0x30","stp x29,x30,[sp, #0x20]","add x29,sp,#0x20","stur x0,[x29, #-0x8]","str x1,[sp, #0x10]","str x2,[sp, #0x8]","ldur x0,[x29, #-0x8]","ldr x8,[x0]","ldr x8,[x8, #0x5c0]","ldr x1,[sp, #0x10]","ldr x2,[sp, #0x8]","blr x8","ldp x29,x30,[sp, #0x20]","add sp,sp,#0x30","ret "],"opCodes":["ffc300d1","fd7b02a9","fd830091","a0831ff8","e10b00f9","e20700f9","a0835ff8","080040f9","08e142f9","e10b40f9","e20740f9","00013fd6","fd7b42a9","ffc30091","c0035fd6"],"instructions":["sub sp,sp,#0x30","stp x29,x30,[sp, #0x20]","add x29,sp,#0x20","stur x0,[x29, #-0x8]","str x1,[sp, #0x10]","str x2,[sp, #0x8]","ldur x0,[x29, #-0x8]","ldr x8,[x0]","ldr x8,[x8, #0x5c0]","ldr x1,[sp, #0x10]","ldr x2,[sp, #0x8]","blr x8","ldp x29,x30,[sp, #0x20]","add sp,sp,#0x30","ret "],"strings":[],"apisImports":[],"exports":[],"hash":"9d897d67776398f13399f6a538bcb138772d70fa765f8cdbca7a24a702cf97ac","isThunk":false,"isExternal":false,"signature":"undefined __thiscall GetByteArrayElements(_JNIEnv * this, _jbyteArray * param_1, uchar * param_2)"}},{"name":"Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage","decompiled_code":"/*\n * Function: Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage\n * Address: 00100ea4\n * Size: 308 addresses\n * Architecture: AARCH64\n * IsThunk: false\n * Signature: undefined Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage(void)\n * CFG: cfg/Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage\n               (_JNIEnv *param_1,undefined8 param_2,_jstring *param_3)\n\n{\n  int iVar1;\n  char *__s2;\n  long lVar2;\n  uint local_5c;\n  long local_58;\n  \n  __s2 = (char *)_JNIEnv::GetStringUTFChars(param_1,param_3,(uchar *)0x0);\n  if (zeroed == 0) {\n    __memset_chk(all_msgs,0,8000,8000);\n    zeroed = 1;\n  }\n  local_58 = 0;\n  for (local_5c = 0; local_5c < count; local_5c = local_5c + 1) {\n    lVar2 = *(long *)(all_msgs + (long)(int)local_5c * 8);\n    if ((lVar2 != 0) && (iVar1 = strcmp((char *)(lVar2 + 0x810),__s2), iVar1 == 0)) {\n      local_58 = lVar2;\n    }\n  }\n  if (local_58 != 0) {\n    (**(code **)(local_58 + 0x808))(local_58);\n  }\n  return;\n}\n\n\n","metadata":{"functionName":"Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage","address":"00100ea4","hexBytes":"ffc301d1fd7b06a9fd830191a0831df8e11b00f9e21700f9a0835df8e11740f9e2031faa02010094e01300f9080000d0089142f9080140b96802003501000014080000d0088d42f9a8831ff808e883d2a8031ff8bfc31eb8a8031ef8a0835ff8a1c35eb8a2035ef8a3035ff80801009428008052090000d0299142f9280100b901000014ff0f00f9ff1700b901000014e81740b9090000d0298942f9290140b90801096b2203005401000014e91780b9080000d0088d42f9087969f8e80700f9e80740f9880100b401000014e80740f900412091e11340f9d9000094a000003501000014e80740f9e80f00f9010000140100001401000014e81740b908050011e81700b9e3ffff17e80f40f9e80000b401000014e80f40f9080544f9e00f40f900013fd601000014fd7b46a9ffc30191c0035fd6","assembly":["sub sp,sp,#0x70","stp x29,x30,[sp, #0x60]","add x29,sp,#0x60","stur x0,[x29, #-0x28]","str x1,[sp, #0x30]","str x2,[sp, #0x28]","ldur x0,[x29, #-0x28]","ldr x1,[sp, #0x28]","mov x2,xzr","bl 0x001012d0","str x0,[sp, #0x20]","adrp x8,0x102000","ldr x8,[x8, #0x520]","ldr w8,[x8]","cbnz w8,0x00100f28","b 0x00100ee4","adrp x8,0x102000","ldr x8,[x8, #0x518]","stur x8,[x29, #-0x8]","mov x8,#0x1f40","stur x8,[x29, #-0x10]","stur wzr,[x29, #-0x14]","stur x8,[x29, #-0x20]","ldur x0,[x29, #-0x8]","ldur w1,[x29, #-0x14]","ldur x2,[x29, #-0x20]","ldur x3,[x29, #-0x10]","bl 0x00101330","mov w8,#0x1","adrp x9,0x102000","ldr x9,[x9, #0x520]","str w8,[x9]","b 0x00100f28","str xzr,[sp, #0x18]","str wzr,[sp, #0x14]","b 0x00100f34","ldr w8,[sp, #0x14]","adrp x9,0x102000","ldr x9,[x9, #0x510]","ldr w9,[x9]","subs w8,w8,w9","b.cs 0x00100fac","b 0x00100f50","ldrsw x9,[sp, #0x14]","adrp x8,0x102000","ldr x8,[x8, #0x518]","ldr x8,[x8, x9, LSL #0x3]","str x8,[sp, #0x8]","ldr x8,[sp, #0x8]","cbz x8,0x00100f98","b 0x00100f70","ldr x8,[sp, #0x8]","add x0,x8,#0x810","ldr x1,[sp, #0x20]","bl 0x001012e0","cbnz w0,0x00100f94","b 0x00100f88","ldr x8,[sp, #0x8]","str x8,[sp, #0x18]","b 0x00100f94","b 0x00100f98","b 0x00100f9c","ldr w8,[sp, #0x14]","add w8,w8,#0x1","str w8,[sp, #0x14]","b 0x00100f34","ldr x8,[sp, #0x18]","cbz x8,0x00100fcc","b 0x00100fb8","ldr x8,[sp, #0x18]","ldr x8,[x8, #0x808]","ldr x0,[sp, #0x18]","blr x8","b 0x00100fcc","ldp x29,x30,[sp, #0x60]","add sp,sp,#0x70","ret "],"opCodes":["ffc301d1","fd7b06a9","fd830191","a0831df8","e11b00f9","e21700f9","a0835df8","e11740f9","e2031faa","02010094","e01300f9","080000d0","089142f9","080140b9","68020035","01000014","080000d0","088d42f9","a8831ff8","08e883d2","a8031ff8","bfc31eb8","a8031ef8","a0835ff8","a1c35eb8","a2035ef8","a3035ff8","08010094","28008052","090000d0","299142f9","280100b9","01000014","ff0f00f9","ff1700b9","01000014","e81740b9","090000d0","298942f9","290140b9","0801096b","22030054","01000014","e91780b9","080000d0","088d42f9","087969f8","e80700f9","e80740f9","880100b4","01000014","e80740f9","00412091","e11340f9","d9000094","a0000035","01000014","e80740f9","e80f00f9","01000014","01000014","01000014","e81740b9","08050011","e81700b9","e3ffff17","e80f40f9","e80000b4","01000014","e80f40f9","080544f9","e00f40f9","00013fd6","01000014","fd7b46a9","ffc30191","c0035fd6"],"instructions":["sub sp,sp,#0x70","stp x29,x30,[sp, #0x60]","add x29,sp,#0x60","stur x0,[x29, #-0x28]","str x1,[sp, #0x30]","str x2,[sp, #0x28]","ldur x0,[x29, #-0x28]","ldr x1,[sp, #0x28]","mov x2,xzr","bl 0x001012d0","str x0,[sp, #0x20]","adrp x8,0x102000","ldr x8,[x8, #0x520]","ldr w8,[x8]","cbnz w8,0x00100f28","b 0x00100ee4","adrp x8,0x102000","ldr x8,[x8, #0x518]","stur x8,[x29, #-0x8]","mov x8,#0x1f40","stur x8,[x29, #-0x10]","stur wzr,[x29, #-0x14]","stur x8,[x29, #-0x20]","ldur x0,[x29, #-0x8]","ldur w1,[x29, #-0x14]","ldur x2,[x29, #-0x20]","ldur x3,[x29, #-0x10]","bl 0x00101330","mov w8,#0x1","adrp x9,0x102000","ldr x9,[x9, #0x520]","str w8,[x9]","b 0x00100f28","str xzr,[sp, #0x18]","str wzr,[sp, #0x14]","b 0x00100f34","ldr w8,[sp, #0x14]","adrp x9,0x102000","ldr x9,[x9, #0x510]","ldr w9,[x9]","subs w8,w8,w9","b.cs 0x00100fac","b 0x00100f50","ldrsw x9,[sp, #0x14]","adrp x8,0x102000","ldr x8,[x8, #0x518]","ldr x8,[x8, x9, LSL #0x3]","str x8,[sp, #0x8]","ldr x8,[sp, #0x8]","cbz x8,0x00100f98","b 0x00100f70","ldr x8,[sp, #0x8]","add x0,x8,#0x810","ldr x1,[sp, #0x20]","bl 0x001012e0","cbnz w0,0x00100f94","b 0x00100f88","ldr x8,[sp, #0x8]","str x8,[sp, #0x18]","b 0x00100f94","b 0x00100f98","b 0x00100f9c","ldr w8,[sp, #0x14]","add w8,w8,#0x1","str w8,[sp, #0x14]","b 0x00100f34","ldr x8,[sp, #0x18]","cbz x8,0x00100fcc","b 0x00100fb8","ldr x8,[sp, #0x18]","ldr x8,[x8, #0x808]","ldr x0,[sp, #0x18]","blr x8","b 0x00100fcc","ldp x29,x30,[sp, #0x60]","add sp,sp,#0x70","ret "],"strings":[],"apisImports":["GetStringUTFChars","__memset_chk","strcmp"],"exports":["Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage"],"hash":"62516bc8fcc78978af60d4d1568aab0060f760cc03ad8cd1b4d4952d88780e10","isThunk":false,"isExternal":false,"signature":"undefined Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage(void)"}},{"name":"GetStringUTFChars","decompiled_code":"/*\n * Function: GetStringUTFChars\n * Address: 00100de8\n * Size: 60 addresses\n * Architecture: AARCH64\n * IsThunk: false\n * Signature: undefined __thiscall GetStringUTFChars(_JNIEnv * this, _jstring * param_1, uchar * param_2)\n * Calling Convention: __thiscall\n * CFG: cfg/GetStringUTFChars_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\n/* _JNIEnv::GetStringUTFChars(_jstring*, unsigned char*) */\n\nvoid __thiscall _JNIEnv::GetStringUTFChars(_JNIEnv *this,_jstring *param_1,uchar *param_2)\n\n{\n  (**(code **)(*(long *)this + 0x548))(this,param_1,param_2);\n  return;\n}\n\n\n","metadata":{"functionName":"GetStringUTFChars","address":"00100de8","hexBytes":"ffc300d1fd7b02a9fd830091a0831ff8e10b00f9e20700f9a0835ff8080040f908a542f9e10b40f9e20740f900013fd6fd7b42a9ffc30091c0035fd6","assembly":["sub sp,sp,#0x30","stp x29,x30,[sp, #0x20]","add x29,sp,#0x20","stur x0,[x29, #-0x8]","str x1,[sp, #0x10]","str x2,[sp, #0x8]","ldur x0,[x29, #-0x8]","ldr x8,[x0]","ldr x8,[x8, #0x548]","ldr x1,[sp, #0x10]","ldr x2,[sp, #0x8]","blr x8","ldp x29,x30,[sp, #0x20]","add sp,sp,#0x30","ret "],"opCodes":["ffc300d1","fd7b02a9","fd830091","a0831ff8","e10b00f9","e20700f9","a0835ff8","080040f9","08a542f9","e10b40f9","e20740f9","00013fd6","fd7b42a9","ffc30091","c0035fd6"],"instructions":["sub sp,sp,#0x30","stp x29,x30,[sp, #0x20]","add x29,sp,#0x20","stur x0,[x29, #-0x8]","str x1,[sp, #0x10]","str x2,[sp, #0x8]","ldur x0,[x29, #-0x8]","ldr x8,[x0]","ldr x8,[x8, #0x548]","ldr x1,[sp, #0x10]","ldr x2,[sp, #0x8]","blr x8","ldp x29,x30,[sp, #0x20]","add sp,sp,#0x30","ret "],"strings":[],"apisImports":[],"exports":[],"hash":"c4169059e92b61b520354bf5c5244e77ed6cc0f980a23187d0f1ba09de14f075","isThunk":false,"isExternal":false,"signature":"undefined __thiscall GetStringUTFChars(_JNIEnv * this, _jstring * param_1, uchar * param_2)"}},{"name":"GetByteArrayElements_00101340","decompiled_code":"/*\n * Function: GetByteArrayElements\n * Address: 00101340\n * Size: 16 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: undefined __thiscall GetByteArrayElements(_JNIEnv * this, _jbyteArray * param_1, uchar * param_2)\n * Calling Convention: __thiscall\n * CFG: cfg/GetByteArrayElements_00101340_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid __thiscall _JNIEnv::GetByteArrayElements(_JNIEnv *this,_jbyteArray *param_1,uchar *param_2)\n\n{\n  GetByteArrayElements(this,param_1,param_2);\n  return;\n}\n\n\n","metadata":{"functionName":"GetByteArrayElements","address":"00101340","hexBytes":"100000b011d242f91082169120021fd6","assembly":["adrp x16,0x102000","ldr x17,[x16, #0x5a0]","add x16,x16,#0x5a0","br x17"],"opCodes":["100000b0","11d242f9","10821691","20021fd6"],"instructions":["adrp x16,0x102000","ldr x17,[x16, #0x5a0]","add x16,x16,#0x5a0","br x17"],"strings":[],"apisImports":["GetByteArrayElements"],"exports":["GetByteArrayElements"],"hash":"e9ba128e6f939afa33f68de8a9dccabee7eefc74cb6498b7c9740f1c82c6c18c","isThunk":true,"isExternal":false,"signature":"undefined __thiscall GetByteArrayElements(_JNIEnv * this, _jbyteArray * param_1, uchar * param_2)"}},{"name":"strcmp_00106020","decompiled_code":"/*\n * Function: strcmp\n * Address: 00106020\n * Size: 1 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: int strcmp(char * __s1, char * __s2)\n * CFG: cfg/strcmp_00106020_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\n/* WARNING: Control flow encountered bad instruction data */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nint strcmp(char *__s1,char *__s2)\n\n{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  /* WARN: unreachable / bad instruction sequence */;\n}\n\n\n","metadata":{"functionName":"strcmp","address":"00106020","hexBytes":"","assembly":[],"opCodes":[],"instructions":[],"strings":[],"apisImports":[],"exports":["strcmp"],"hash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","isThunk":true,"isExternal":false,"signature":"int strcmp(char * __s1, char * __s2)"}},{"name":"FUN_00100c1c","decompiled_code":"/*\n * Function: FUN_00100c1c\n * Address: 00100c1c\n * Size: 8 addresses\n * Architecture: AARCH64\n * IsThunk: false\n * Signature: undefined FUN_00100c1c(void)\n * CFG: cfg/FUN_00100c1c_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid FUN_00100c1c(void)\n\n{\n  return;\n}\n\n\n","metadata":{"functionName":"FUN_00100c1c","address":"00100c1c","hexBytes":"5f2403d5c0035fd6","assembly":["bti c","ret "],"opCodes":["5f2403d5","c0035fd6"],"instructions":["bti c","ret "],"strings":[],"apisImports":[],"exports":["FUN_00100c1c"],"hash":"d33fdb74881bcff46b1cf4fc3e20479b1882e0e683789e80e6d650554066a1aa","isThunk":false,"isExternal":false,"signature":"undefined FUN_00100c1c(void)"}},{"name":"_FINI_0","decompiled_code":"/*\n * Function: _FINI_0\n * Address: 00100c24\n * Size: 8 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: undefined _FINI_0(void)\n * CFG: cfg/_FINI_0_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid _FINI_0(void)\n\n{\n  FUN_00100c1c();\n  return;\n}\n\n\n","metadata":{"functionName":"_FINI_0","address":"00100c24","hexBytes":"5f2403d5fdffff17","assembly":["bti c","b 0x00100c1c"],"opCodes":["5f2403d5","fdffff17"],"instructions":["bti c","b 0x00100c1c"],"strings":[],"apisImports":["FUN_00100c1c"],"exports":["_FINI_0"],"hash":"0d1d2d7c366db44fbbd2b55c8f75df1d4692a3b7b21745231a963b65330625f4","isThunk":true,"isExternal":false,"signature":"undefined _FINI_0(void)"}},{"name":"__android_log_print","decompiled_code":"/*\n * Function: __android_log_print\n * Address: 001012c0\n * Size: 16 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: undefined __android_log_print(void)\n * CFG: cfg/__android_log_print_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid __android_log_print(void)\n\n{\n  __android_log_print();\n  return;\n}\n\n\n","metadata":{"functionName":"__android_log_print","address":"001012c0","hexBytes":"100000b011b242f91082159120021fd6","assembly":["adrp x16,0x102000","ldr x17,[x16, #0x560]","add x16,x16,#0x560","br x17"],"opCodes":["100000b0","11b242f9","10821591","20021fd6"],"instructions":["adrp x16,0x102000","ldr x17,[x16, #0x560]","add x16,x16,#0x560","br x17"],"strings":[],"apisImports":["__android_log_print"],"exports":["__android_log_print"],"hash":"d156beafc9229e95e3c81de9b7f713c62b8e5d4f18f4298bb168790cfec71fe9","isThunk":true,"isExternal":false,"signature":"undefined __android_log_print(void)"}},{"name":"NewByteArray_00101310","decompiled_code":"/*\n * Function: NewByteArray\n * Address: 00101310\n * Size: 16 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: undefined __thiscall NewByteArray(_JNIEnv * this, int param_1)\n * Calling Convention: __thiscall\n * CFG: cfg/NewByteArray_00101310_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid __thiscall _JNIEnv::NewByteArray(_JNIEnv *this,int param_1)\n\n{\n  NewByteArray(this,param_1);\n  return;\n}\n\n\n","metadata":{"functionName":"NewByteArray","address":"00101310","hexBytes":"100000b011c642f91022169120021fd6","assembly":["adrp x16,0x102000","ldr x17,[x16, #0x588]","add x16,x16,#0x588","br x17"],"opCodes":["100000b0","11c642f9","10221691","20021fd6"],"instructions":["adrp x16,0x102000","ldr x17,[x16, #0x588]","add x16,x16,#0x588","br x17"],"strings":[],"apisImports":["NewByteArray"],"exports":["NewByteArray"],"hash":"4b3a3f66f2c08d94a76eb5ad6fc16823001e43e43d0f4ed8f1195beb9a07a076","isThunk":true,"isExternal":false,"signature":"undefined __thiscall NewByteArray(_JNIEnv * this, int param_1)"}},{"name":"strcmp","decompiled_code":"/*\n * Function: strcmp\n * Address: 001012e0\n * Size: 16 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: int strcmp(char * __s1, char * __s2)\n * CFG: cfg/strcmp_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nint strcmp(char *__s1,char *__s2)\n\n{\n  int iVar1;\n  \n  iVar1 = strcmp(__s1,__s2);\n  return iVar1;\n}\n\n\n","metadata":{"functionName":"strcmp","address":"001012e0","hexBytes":"100000b011ba42f910c2159120021fd6","assembly":["adrp x16,0x102000","ldr x17,[x16, #0x570]","add x16,x16,#0x570","br x17"],"opCodes":["100000b0","11ba42f9","10c21591","20021fd6"],"instructions":["adrp x16,0x102000","ldr x17,[x16, #0x570]","add x16,x16,#0x570","br x17"],"strings":[],"apisImports":["strcmp"],"exports":["strcmp"],"hash":"e6f8456a78bac63cda2ee2b399945c6bf085f2fe54ca414b8d2cb713e798a46a","isThunk":true,"isExternal":false,"signature":"int strcmp(char * __s1, char * __s2)"}},{"name":"SetByteArrayRegion","decompiled_code":"/*\n * Function: SetByteArrayRegion\n * Address: 00100e58\n * Size: 76 addresses\n * Architecture: AARCH64\n * IsThunk: false\n * Signature: undefined __thiscall SetByteArrayRegion(_JNIEnv * this, _jbyteArray * param_1, int param_2, int param_3, signed * param_4)\n * Calling Convention: __thiscall\n * CFG: cfg/SetByteArrayRegion_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\n/* _JNIEnv::SetByteArrayRegion(_jbyteArray*, int, int, signed char const*) */\n\nvoid __thiscall\n_JNIEnv::SetByteArrayRegion\n          (_JNIEnv *this,_jbyteArray *param_1,int param_2,int param_3,signed *param_4)\n\n{\n  (**(code **)(*(long *)this + 0x680))(this,param_1,param_2,param_3,param_4);\n  return;\n}\n\n\n","metadata":{"functionName":"SetByteArrayRegion","address":"00100e58","hexBytes":"ffc300d1fd7b02a9fd830091a0831ff8e10b00f9e20f00b9e30b00b9e40300f9a0835ff8080040f9084143f9e10b40f9e20f40b9e30b40b9e40340f900013fd6fd7b42a9ffc30091c0035fd6","assembly":["sub sp,sp,#0x30","stp x29,x30,[sp, #0x20]","add x29,sp,#0x20","stur x0,[x29, #-0x8]","str x1,[sp, #0x10]","str w2,[sp, #0xc]","str w3,[sp, #0x8]","str x4,[sp]","ldur x0,[x29, #-0x8]","ldr x8,[x0]","ldr x8,[x8, #0x680]","ldr x1,[sp, #0x10]","ldr w2,[sp, #0xc]","ldr w3,[sp, #0x8]","ldr x4,[sp]","blr x8","ldp x29,x30,[sp, #0x20]","add sp,sp,#0x30","ret "],"opCodes":["ffc300d1","fd7b02a9","fd830091","a0831ff8","e10b00f9","e20f00b9","e30b00b9","e40300f9","a0835ff8","080040f9","084143f9","e10b40f9","e20f40b9","e30b40b9","e40340f9","00013fd6","fd7b42a9","ffc30091","c0035fd6"],"instructions":["sub sp,sp,#0x30","stp x29,x30,[sp, #0x20]","add x29,sp,#0x20","stur x0,[x29, #-0x8]","str x1,[sp, #0x10]","str w2,[sp, #0xc]","str w3,[sp, #0x8]","str x4,[sp]","ldur x0,[x29, #-0x8]","ldr x8,[x0]","ldr x8,[x8, #0x680]","ldr x1,[sp, #0x10]","ldr w2,[sp, #0xc]","ldr w3,[sp, #0x8]","ldr x4,[sp]","blr x8","ldp x29,x30,[sp, #0x20]","add sp,sp,#0x30","ret "],"strings":[],"apisImports":[],"exports":[],"hash":"e26d5a1e682c25fce899a6955a32b2a8aeea95e83ce2666fdbd696898943b0d3","isThunk":false,"isExternal":false,"signature":"undefined __thiscall SetByteArrayRegion(_JNIEnv * this, _jbyteArray * param_1, int param_2, int param_3, signed * param_4)"}},{"name":"malloc","decompiled_code":"/*\n * Function: malloc\n * Address: 001012f0\n * Size: 16 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: void * malloc(size_t __size)\n * CFG: cfg/malloc_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid * malloc(size_t __size)\n\n{\n  void *pvVar1;\n  \n  pvVar1 = malloc(__size);\n  return pvVar1;\n}\n\n\n","metadata":{"functionName":"malloc","address":"001012f0","hexBytes":"100000b011be42f910e2159120021fd6","assembly":["adrp x16,0x102000","ldr x17,[x16, #0x578]","add x16,x16,#0x578","br x17"],"opCodes":["100000b0","11be42f9","10e21591","20021fd6"],"instructions":["adrp x16,0x102000","ldr x17,[x16, #0x578]","add x16,x16,#0x578","br x17"],"strings":[],"apisImports":["malloc"],"exports":["malloc"],"hash":"ca5c4d542b3d0ca36f6a550846b75c6f97323a23ba56c15338d7988be1fc3136","isThunk":true,"isExternal":false,"signature":"void * malloc(size_t __size)"}},{"name":"FUN_00100c5c","decompiled_code":"/*\n * Function: FUN_00100c5c\n * Address: 00100c5c\n * Size: 16 addresses\n * Architecture: AARCH64\n * IsThunk: false\n * Signature: undefined FUN_00100c5c(void)\n * CFG: cfg/FUN_00100c5c_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid FUN_00100c5c(void)\n\n{\n  __register_atfork();\n  return;\n}\n\n\n","metadata":{"functionName":"FUN_00100c5c","address":"00100c5c","hexBytes":"5f2403d5030000d063400d9192010014","assembly":["bti c","adrp x3,0x102000","add x3,x3,#0x350","b 0x001012b0"],"opCodes":["5f2403d5","030000d0","63400d91","92010014"],"instructions":["bti c","adrp x3,0x102000","add x3,x3,#0x350","b 0x001012b0"],"strings":[],"apisImports":["__register_atfork"],"exports":["FUN_00100c5c"],"hash":"ca969736a6f9266806e5ae82d30a8b8d3b20617074cb196e602b9e79934aaa10","isThunk":false,"isExternal":false,"signature":"undefined FUN_00100c5c(void)"}},{"name":"__register_atfork","decompiled_code":"/*\n * Function: __register_atfork\n * Address: 001012b0\n * Size: 16 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: undefined __register_atfork(void)\n * CFG: cfg/__register_atfork_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid __register_atfork(void)\n\n{\n  __register_atfork();\n  return;\n}\n\n\n","metadata":{"functionName":"__register_atfork","address":"001012b0","hexBytes":"100000b011ae42f91062159120021fd6","assembly":["adrp x16,0x102000","ldr x17,[x16, #0x558]","add x16,x16,#0x558","br x17"],"opCodes":["100000b0","11ae42f9","10621591","20021fd6"],"instructions":["adrp x16,0x102000","ldr x17,[x16, #0x558]","add x16,x16,#0x558","br x17"],"strings":[],"apisImports":["__register_atfork"],"exports":["__register_atfork"],"hash":"a489f11d1131ef17f1113bbe4d914fe254f4d7b708166d46ce3cef90aa5c0071","isThunk":true,"isExternal":false,"signature":"undefined __register_atfork(void)"}},{"name":"__cxa_finalize","decompiled_code":"/*\n * Function: __cxa_finalize\n * Address: 00101290\n * Size: 16 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: undefined __cxa_finalize(void)\n * CFG: cfg/__cxa_finalize_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid __cxa_finalize(void)\n\n{\n  __cxa_finalize();\n  return;\n}\n\n\n","metadata":{"functionName":"__cxa_finalize","address":"00101290","hexBytes":"100000b011a642f91022159120021fd6","assembly":["adrp x16,0x102000","ldr x17,[x16, #0x548]","add x16,x16,#0x548","br x17"],"opCodes":["100000b0","11a642f9","10221591","20021fd6"],"instructions":["adrp x16,0x102000","ldr x17,[x16, #0x548]","add x16,x16,#0x548","br x17"],"strings":[],"apisImports":["__cxa_finalize"],"exports":["__cxa_finalize"],"hash":"19144fb8d6a48dbd8775f2e4be46edff4f41498b3ab920d65b7cf74a6ddf27d6","isThunk":true,"isExternal":false,"signature":"undefined __cxa_finalize(void)"}},{"name":"SetByteArrayRegion_00101320","decompiled_code":"/*\n * Function: SetByteArrayRegion\n * Address: 00101320\n * Size: 16 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: undefined __thiscall SetByteArrayRegion(_JNIEnv * this, _jbyteArray * param_1, int param_2, int param_3, signed * param_4)\n * Calling Convention: __thiscall\n * CFG: cfg/SetByteArrayRegion_00101320_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid __thiscall\n_JNIEnv::SetByteArrayRegion\n          (_JNIEnv *this,_jbyteArray *param_1,int param_2,int param_3,signed *param_4)\n\n{\n  SetByteArrayRegion(this,param_1,param_2,param_3,param_4);\n  return;\n}\n\n\n","metadata":{"functionName":"SetByteArrayRegion","address":"00101320","hexBytes":"100000b011ca42f91042169120021fd6","assembly":["adrp x16,0x102000","ldr x17,[x16, #0x590]","add x16,x16,#0x590","br x17"],"opCodes":["100000b0","11ca42f9","10421691","20021fd6"],"instructions":["adrp x16,0x102000","ldr x17,[x16, #0x590]","add x16,x16,#0x590","br x17"],"strings":[],"apisImports":["SetByteArrayRegion"],"exports":["SetByteArrayRegion"],"hash":"9614d759bfb25cd218411b427a744de66892bc855f1d41cbbe0e1197b478114a","isThunk":true,"isExternal":false,"signature":"undefined __thiscall SetByteArrayRegion(_JNIEnv * this, _jbyteArray * param_1, int param_2, int param_3, signed * param_4)"}},{"name":"__memcpy_chk","decompiled_code":"/*\n * Function: __memcpy_chk\n * Address: 00101300\n * Size: 16 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: undefined __memcpy_chk(void)\n * CFG: cfg/__memcpy_chk_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid __memcpy_chk(void)\n\n{\n  __memcpy_chk();\n  return;\n}\n\n\n","metadata":{"functionName":"__memcpy_chk","address":"00101300","hexBytes":"100000b011c242f91002169120021fd6","assembly":["adrp x16,0x102000","ldr x17,[x16, #0x580]","add x16,x16,#0x580","br x17"],"opCodes":["100000b0","11c242f9","10021691","20021fd6"],"instructions":["adrp x16,0x102000","ldr x17,[x16, #0x580]","add x16,x16,#0x580","br x17"],"strings":[],"apisImports":["__memcpy_chk"],"exports":["__memcpy_chk"],"hash":"b3d32f5a1be3c833617fac392d01f2c9d464568ddb3ceadc2db783c814942afc","isThunk":true,"isExternal":false,"signature":"undefined __memcpy_chk(void)"}},{"name":"delete_img","decompiled_code":"/*\n * Function: delete_img\n * Address: 00100c6c\n * Size: 52 addresses\n * Architecture: AARCH64\n * IsThunk: false\n * Signature: undefined __cdecl delete_img(msg * param_1)\n * Calling Convention: __cdecl\n * CFG: cfg/delete_img_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\n/* delete_img(msg*) */\n\nvoid delete_img(msg *param_1)\n\n{\n  __android_log_print(2,\"PwnChatDebug\",\"Image Deleted\");\n  return;\n}\n\n\n","metadata":{"functionName":"delete_img","address":"00100c6c","hexBytes":"ff8300d1fd7b01a9fd430091e00700f940008052010000902120279102000090425427918c010094fd7b41a9ff830091c0035fd6","assembly":["sub sp,sp,#0x20","stp x29,x30,[sp, #0x10]","add x29,sp,#0x10","str x0,[sp, #0x8]","mov w0,#0x2","adrp x1,0x100000","add x1,x1,#0x9c8","adrp x2,0x100000","add x2,x2,#0x9d5","bl 0x001012c0","ldp x29,x30,[sp, #0x10]","add sp,sp,#0x20","ret "],"opCodes":["ff8300d1","fd7b01a9","fd430091","e00700f9","40008052","01000090","21202791","02000090","42542791","8c010094","fd7b41a9","ff830091","c0035fd6"],"instructions":["sub sp,sp,#0x20","stp x29,x30,[sp, #0x10]","add x29,sp,#0x10","str x0,[sp, #0x8]","mov w0,#0x2","adrp x1,0x100000","add x1,x1,#0x9c8","adrp x2,0x100000","add x2,x2,#0x9d5","bl 0x001012c0","ldp x29,x30,[sp, #0x10]","add sp,sp,#0x20","ret "],"strings":["PwnChatDebug","Image Deleted"],"apisImports":["__android_log_print"],"exports":["delete_img"],"hash":"d46a33b403c9229c6dab73bc255cc54df975bd437ce679fb9e8e0312b3ddc711","isThunk":false,"isExternal":false,"signature":"undefined __cdecl delete_img(msg * param_1)"}},{"name":"NewByteArray","decompiled_code":"/*\n * Function: NewByteArray\n * Address: 00100e24\n * Size: 52 addresses\n * Architecture: AARCH64\n * IsThunk: false\n * Signature: undefined __thiscall NewByteArray(_JNIEnv * this, int param_1)\n * Calling Convention: __thiscall\n * CFG: cfg/NewByteArray_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\n/* _JNIEnv::NewByteArray(int) */\n\nvoid __thiscall _JNIEnv::NewByteArray(_JNIEnv *this,int param_1)\n\n{\n  (**(code **)(*(long *)this + 0x580))(this,param_1);\n  return;\n}\n\n\n","metadata":{"functionName":"NewByteArray","address":"00100e24","hexBytes":"ff8300d1fd7b01a9fd430091e00700f9e10700b9e00740f9080040f908c142f9e10740b900013fd6fd7b41a9ff830091c0035fd6","assembly":["sub sp,sp,#0x20","stp x29,x30,[sp, #0x10]","add x29,sp,#0x10","str x0,[sp, #0x8]","str w1,[sp, #0x4]","ldr x0,[sp, #0x8]","ldr x8,[x0]","ldr x8,[x8, #0x580]","ldr w1,[sp, #0x4]","blr x8","ldp x29,x30,[sp, #0x10]","add sp,sp,#0x20","ret "],"opCodes":["ff8300d1","fd7b01a9","fd430091","e00700f9","e10700b9","e00740f9","080040f9","08c142f9","e10740b9","00013fd6","fd7b41a9","ff830091","c0035fd6"],"instructions":["sub sp,sp,#0x20","stp x29,x30,[sp, #0x10]","add x29,sp,#0x10","str x0,[sp, #0x8]","str w1,[sp, #0x4]","ldr x0,[sp, #0x8]","ldr x8,[x0]","ldr x8,[x8, #0x580]","ldr w1,[sp, #0x4]","blr x8","ldp x29,x30,[sp, #0x10]","add sp,sp,#0x20","ret "],"strings":[],"apisImports":[],"exports":[],"hash":"e60f8dd39f01e644ed8c367dbf7da2b7f98c17191eeba091320d77abbbefe9be","isThunk":false,"isExternal":false,"signature":"undefined __thiscall NewByteArray(_JNIEnv * this, int param_1)"}},{"name":"__cxa_atexit_00106008","decompiled_code":"/*\n * Function: __cxa_atexit\n * Address: 00106008\n * Size: 1 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: undefined __cxa_atexit(void)\n * CFG: cfg/__cxa_atexit_00106008_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\n/* WARNING: Control flow encountered bad instruction data */\n\nvoid __cxa_atexit(void)\n\n{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  /* WARN: unreachable / bad instruction sequence */;\n}\n\n\n","metadata":{"functionName":"__cxa_atexit","address":"00106008","hexBytes":"","assembly":[],"opCodes":[],"instructions":[],"strings":[],"apisImports":[],"exports":["__cxa_atexit"],"hash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","isThunk":true,"isExternal":false,"signature":"undefined __cxa_atexit(void)"}},{"name":"__register_atfork_00106010","decompiled_code":"/*\n * Function: __register_atfork\n * Address: 00106010\n * Size: 1 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: undefined __register_atfork(void)\n * CFG: cfg/__register_atfork_00106010_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\n/* WARNING: Control flow encountered bad instruction data */\n\nvoid __register_atfork(void)\n\n{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  /* WARN: unreachable / bad instruction sequence */;\n}\n\n\n","metadata":{"functionName":"__register_atfork","address":"00106010","hexBytes":"","assembly":[],"opCodes":[],"instructions":[],"strings":[],"apisImports":[],"exports":["__register_atfork"],"hash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","isThunk":true,"isExternal":false,"signature":"undefined __register_atfork(void)"}},{"name":"GetStringUTFChars_001012d0","decompiled_code":"/*\n * Function: GetStringUTFChars\n * Address: 001012d0\n * Size: 16 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: undefined __thiscall GetStringUTFChars(_JNIEnv * this, _jstring * param_1, uchar * param_2)\n * Calling Convention: __thiscall\n * CFG: cfg/GetStringUTFChars_001012d0_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid __thiscall _JNIEnv::GetStringUTFChars(_JNIEnv *this,_jstring *param_1,uchar *param_2)\n\n{\n  GetStringUTFChars(this,param_1,param_2);\n  return;\n}\n\n\n","metadata":{"functionName":"GetStringUTFChars","address":"001012d0","hexBytes":"100000b011b642f910a2159120021fd6","assembly":["adrp x16,0x102000","ldr x17,[x16, #0x568]","add x16,x16,#0x568","br x17"],"opCodes":["100000b0","11b642f9","10a21591","20021fd6"],"instructions":["adrp x16,0x102000","ldr x17,[x16, #0x568]","add x16,x16,#0x568","br x17"],"strings":[],"apisImports":["GetStringUTFChars"],"exports":["GetStringUTFChars"],"hash":"75e766c6cac18079d48bb788133e64f4b3f990a2b12b5663ab42019603d05926","isThunk":true,"isExternal":false,"signature":"undefined __thiscall GetStringUTFChars(_JNIEnv * this, _jstring * param_1, uchar * param_2)"}},{"name":"FUN_00100c40","decompiled_code":"/*\n * Function: FUN_00100c40\n * Address: 00100c40\n * Size: 28 addresses\n * Architecture: AARCH64\n * IsThunk: false\n * Signature: undefined FUN_00100c40(void)\n * CFG: cfg/FUN_00100c40_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid FUN_00100c40(undefined8 param_1)\n\n{\n  __cxa_atexit(FUN_00100c2c,param_1,&PTR_LOOP_00102350);\n  return;\n}\n\n\n","metadata":{"functionName":"FUN_00100c40","address":"00100c40","hexBytes":"5f2403d5e10300aa00000090020000d000b0309142400d9192010014","assembly":["bti c","mov x1,x0","adrp x0,0x100000","adrp x2,0x102000","add x0,x0,#0xc2c","add x2,x2,#0x350","b 0x001012a0"],"opCodes":["5f2403d5","e10300aa","00000090","020000d0","00b03091","42400d91","92010014"],"instructions":["bti c","mov x1,x0","adrp x0,0x100000","adrp x2,0x102000","add x0,x0,#0xc2c","add x2,x2,#0x350","b 0x001012a0"],"strings":[],"apisImports":["__cxa_atexit"],"exports":["FUN_00100c40"],"hash":"ae74ea8c1e390d800c94e7f50ed0d4285cea8989e57126680e409e2c027e97a8","isThunk":false,"isExternal":false,"signature":"undefined FUN_00100c40(void)"}},{"name":"__android_log_print_00106018","decompiled_code":"/*\n * Function: __android_log_print\n * Address: 00106018\n * Size: 1 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: undefined __android_log_print(void)\n * CFG: cfg/__android_log_print_00106018_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\n/* WARNING: Control flow encountered bad instruction data */\n\nvoid __android_log_print(void)\n\n{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  /* WARN: unreachable / bad instruction sequence */;\n}\n\n\n","metadata":{"functionName":"__android_log_print","address":"00106018","hexBytes":"","assembly":[],"opCodes":[],"instructions":[],"strings":[],"apisImports":[],"exports":["__android_log_print"],"hash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","isThunk":true,"isExternal":false,"signature":"undefined __android_log_print(void)"}},{"name":"FUN_00100c2c","decompiled_code":"/*\n * Function: FUN_00100c2c\n * Address: 00100c2c\n * Size: 20 addresses\n * Architecture: AARCH64\n * IsThunk: false\n * Signature: undefined FUN_00100c2c(void)\n * CFG: cfg/FUN_00100c2c_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid FUN_00100c2c(code *UNRECOVERED_JUMPTABLE)\n\n{\n  if (UNRECOVERED_JUMPTABLE != (code *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00100c38. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  }\n  return;\n}\n\n\n","metadata":{"functionName":"FUN_00100c2c","address":"00100c2c","hexBytes":"5f2403d5600000b4f00300aa00021fd6c0035fd6","assembly":["bti c","cbz x0,0x00100c3c","mov x16,x0","br x16","ret "],"opCodes":["5f2403d5","600000b4","f00300aa","00021fd6","c0035fd6"],"instructions":["bti c","cbz x0,0x00100c3c","mov x16,x0","br x16","ret "],"strings":[],"apisImports":[],"exports":["FUN_00100c2c"],"hash":"b4dad628cee6fc500f48cb715d5429cf638c5db79e598628aac7d2b96f4c12b0","isThunk":false,"isExternal":false,"signature":"undefined FUN_00100c2c(void)"}},{"name":"__memset_chk","decompiled_code":"/*\n * Function: __memset_chk\n * Address: 00101330\n * Size: 16 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: undefined __memset_chk(void)\n * CFG: cfg/__memset_chk_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid __memset_chk(void)\n\n{\n  __memset_chk();\n  return;\n}\n\n\n","metadata":{"functionName":"__memset_chk","address":"00101330","hexBytes":"100000b011ce42f91062169120021fd6","assembly":["adrp x16,0x102000","ldr x17,[x16, #0x598]","add x16,x16,#0x598","br x17"],"opCodes":["100000b0","11ce42f9","10621691","20021fd6"],"instructions":["adrp x16,0x102000","ldr x17,[x16, #0x598]","add x16,x16,#0x598","br x17"],"strings":[],"apisImports":["__memset_chk"],"exports":["__memset_chk"],"hash":"6c6ee60ba9e0e828a5a6a3242be378eb747e297d5492a629af50fe822b011442","isThunk":true,"isExternal":false,"signature":"undefined __memset_chk(void)"}},{"name":"remove","decompiled_code":"/*\n * Function: remove\n * Address: 00106040\n * Size: 1 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: int remove(char * __filename)\n * CFG: cfg/remove_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\n/* WARNING: Control flow encountered bad instruction data */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nint remove(char *__filename)\n\n{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  /* WARN: unreachable / bad instruction sequence */;\n}\n\n\n","metadata":{"functionName":"remove","address":"00106040","hexBytes":"","assembly":[],"opCodes":[],"instructions":[],"strings":[],"apisImports":[],"exports":["remove"],"hash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","isThunk":true,"isExternal":false,"signature":"int remove(char * __filename)"}},{"name":"__memcpy_chk_00106030","decompiled_code":"/*\n * Function: __memcpy_chk\n * Address: 00106030\n * Size: 1 addresses\n * Architecture: AARCH64\n * IsThunk: true\n * Signature: undefined __memcpy_chk(void)\n * CFG: cfg/__memcpy_chk_00106030_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\n/* WARNING: Control flow encountered bad instruction data */\n\nvoid __memcpy_chk(void)\n\n{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  /* WARN: unreachable / bad instruction sequence */;\n}\n\n\n","metadata":{"functionName":"__memcpy_chk","address":"00106030","hexBytes":"","assembly":[],"opCodes":[],"instructions":[],"strings":[],"apisImports":[],"exports":["__memcpy_chk"],"hash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","isThunk":true,"isExternal":false,"signature":"undefined __memcpy_chk(void)"}},{"name":"Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage","decompiled_code":"/*\n * Function: Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage\n * Address: 00100fd8\n * Size: 604 addresses\n * Architecture: AARCH64\n * IsThunk: false\n * Signature: undefined Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage(void)\n * CFG: cfg/Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage_cfg.json\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n\n\nvoid Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage\n               (_JNIEnv *param_1,undefined8 param_2,_jbyteArray *param_3,undefined4 param_4,\n               _jstring *param_5)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  char *__s2;\n  void *pvVar3;\n  uint local_ec;\n  void *local_e8;\n  \n  if (zeroed == 0) {\n    __memset_chk(all_msgs,0,8000,8000);\n    zeroed = 1;\n  }\n  uVar2 = _JNIEnv::GetByteArrayElements(param_1,param_3,(uchar *)0x0);\n  __s2 = (char *)_JNIEnv::GetStringUTFChars(param_1,param_5,(uchar *)0x0);\n  local_e8 = (void *)0x0;\n  for (local_ec = 0; local_ec < count; local_ec = local_ec + 1) {\n    pvVar3 = *(void **)(all_msgs + (long)(int)local_ec * 8);\n    if ((pvVar3 != (void *)0x0) && (iVar1 = strcmp((char *)((long)pvVar3 + 0x810),__s2), iVar1 == 0)\n       ) {\n      local_e8 = pvVar3;\n    }\n  }\n  if (local_e8 == (void *)0x0) {\n    local_e8 = malloc(0x840);\n    __memset_chk(local_e8,0,0x840,0xffffffffffffffff);\n    *(undefined1 *)((long)local_e8 + 0x800) = 0x25;\n    __memcpy_chk((long)local_e8 + 0x810,__s2,0x25,0xffffffffffffffff);\n    *(code **)((long)local_e8 + 0x838) = remove;\n    *(code **)((long)local_e8 + 0x808) = delete_img;\n    *(void **)(all_msgs + (ulong)count * 8) = local_e8;\n    count = count + 1;\n  }\n  __memcpy_chk(local_e8,uVar2,param_4,0xffffffffffffffff);\n  return;\n}\n\n\n","metadata":{"functionName":"Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage","address":"00100fd8","hexBytes":"ff8304d1fd7b10a9fc8b00f9fd030491080000d0088d42f9e80f00f9080000d0088942f9e81300f9e03f00f9e13b00f9e23700f9e36700b9e42f00f9080000b0089142f9080140b94802003501000014e80f40f9a8831ff808e883d2a8031ff8bfc31eb8a8031ef8a0835ff8a1c35eb8a2035ef8a3035ff8b800009428008052090000b0299142f9280100b901000014e03f40f9e13740f9e2031faae20b00f9b2000094e20b40f9e02b00f9e03f40f9e12f40f991000094e02700f9e86740b9e84700b9ff1f00f9ff3700b901000014e91340f9e83740b9290140b90801096b0203005401000014e80f40f9e93780b9087969f8e81700f9e81740f9880100b401000014e81740f900412091e12740f97e000094a000003501000014e81740f9e81f00f9010000140100001401000014e83740b908050011e83700b9e5ffff17e81f40f9a80600b501000014000881d2e00300f971000094e80340f9e01f00f9e91f40f9a9831df809008092e90700f9a9031df8bfc31cb8a8031cf8a0835df8a1c35cb8a2035cf8a3035df873000094e90740f9ea1f40f9a804805248012039e81f40f90a412091e82740f9aa831bf8a9031bf8a8831af8a80480d2a8031af8a0835bf8a1835af8a2035af8a3035bf856000094ea0f40f9e91340f9eb1f40f9080000b0089542f9681d04f9eb1f40f9080000b0088542f9680504f9e81f40f92b0140b948792bf8280140b908050011280100b901000014ea1f40f9e92b40f9e84740b9aa8319f80a008092aa0319f8a98318f8e84300f9a08359f8a18358f8e24340f9a30359f838000094fc8b40f9fd7b50a9ff830491c0035fd6","assembly":["sub sp,sp,#0x120","stp x29,x30,[sp, #0x100]","str x28,[sp, #0x110]","add x29,sp,#0x100","adrp x8,0x102000","ldr x8,[x8, #0x518]","str x8,[sp, #0x18]","adrp x8,0x102000","ldr x8,[x8, #0x510]","str x8,[sp, #0x20]","str x0,[sp, #0x78]","str x1,[sp, #0x70]","str x2,[sp, #0x68]","str w3,[sp, #0x64]","str x4,[sp, #0x58]","adrp x8,0x102000","ldr x8,[x8, #0x520]","ldr w8,[x8]","cbnz w8,0x00101068","b 0x00101028","ldr x8,[sp, #0x18]","stur x8,[x29, #-0x8]","mov x8,#0x1f40","stur x8,[x29, #-0x10]","stur wzr,[x29, #-0x14]","stur x8,[x29, #-0x20]","ldur x0,[x29, #-0x8]","ldur w1,[x29, #-0x14]","ldur x2,[x29, #-0x20]","ldur x3,[x29, #-0x10]","bl 0x00101330","mov w8,#0x1","adrp x9,0x102000","ldr x9,[x9, #0x520]","str w8,[x9]","b 0x00101068","ldr x0,[sp, #0x78]","ldr x1,[sp, #0x68]","mov x2,xzr","str x2,[sp, #0x10]","bl 0x00101340","ldr x2,[sp, #0x10]","str x0,[sp, #0x50]","ldr x0,[sp, #0x78]","ldr x1,[sp, #0x58]","bl 0x001012d0","str x0,[sp, #0x48]","ldr w8,[sp, #0x64]","str w8,[sp, #0x44]","str xzr,[sp, #0x38]","str wzr,[sp, #0x34]","b 0x001010a8","ldr x9,[sp, #0x20]","ldr w8,[sp, #0x34]","ldr w9,[x9]","subs w8,w8,w9","b.cs 0x00101118","b 0x001010c0","ldr x8,[sp, #0x18]","ldrsw x9,[sp, #0x34]","ldr x8,[x8, x9, LSL #0x3]","str x8,[sp, #0x28]","ldr x8,[sp, #0x28]","cbz x8,0x00101104","b 0x001010dc","ldr x8,[sp, #0x28]","add x0,x8,#0x810","ldr x1,[sp, #0x48]","bl 0x001012e0","cbnz w0,0x00101100","b 0x001010f4","ldr x8,[sp, #0x28]","str x8,[sp, #0x38]","b 0x00101100","b 0x00101104","b 0x00101108","ldr w8,[sp, #0x34]","add w8,w8,#0x1","str w8,[sp, #0x34]","b 0x001010a8","ldr x8,[sp, #0x38]","cbnz x8,0x001011f0","b 0x00101124","mov x0,#0x840","str x0,[sp]","bl 0x001012f0","ldr x8,[sp]","str x0,[sp, #0x38]","ldr x9,[sp, #0x38]","stur x9,[x29, #-0x28]","mov x9,#-0x1","str x9,[sp, #0x8]","stur x9,[x29, #-0x30]","stur wzr,[x29, #-0x34]","stur x8,[x29, #-0x40]","ldur x0,[x29, #-0x28]","ldur w1,[x29, #-0x34]","ldur x2,[x29, #-0x40]","ldur x3,[x29, #-0x30]","bl 0x00101330","ldr x9,[sp, #0x8]","ldr x10,[sp, #0x38]","mov w8,#0x25","strb w8,[x10, #0x800]","ldr x8,[sp, #0x38]","add x10,x8,#0x810","ldr x8,[sp, #0x48]","stur x10,[x29, #-0x48]","stur x9,[x29, #-0x50]","stur x8,[x29, #-0x58]","mov x8,#0x25","stur x8,[x29, #-0x60]","ldur x0,[x29, #-0x48]","ldur x1,[x29, #-0x58]","ldur x2,[x29, #-0x60]","ldur x3,[x29, #-0x50]","bl 0x00101300","ldr x10,[sp, #0x18]","ldr x9,[sp, #0x20]","ldr x11,[sp, #0x38]","adrp x8,0x102000","ldr x8,[x8, #0x528]","str x8,[x11, #0x838]","ldr x11,[sp, #0x38]","adrp x8,0x102000","ldr x8,[x8, #0x508]","str x8,[x11, #0x808]","ldr x8,[sp, #0x38]","ldr w11,[x9]","str x8,[x10, x11, LSL #0x3]","ldr w8,[x9]","add w8,w8,#0x1","str w8,[x9]","b 0x001011f0","ldr x10,[sp, #0x38]","ldr x9,[sp, #0x50]","ldr w8,[sp, #0x44]","stur x10,[x29, #-0x68]","mov x10,#-0x1","stur x10,[x29, #-0x70]","stur x9,[x29, #-0x78]","str x8,[sp, #0x80]","ldur x0,[x29, #-0x68]","ldur x1,[x29, #-0x78]","ldr x2,[sp, #0x80]","ldur x3,[x29, #-0x70]","bl 0x00101300","ldr x28,[sp, #0x110]","ldp x29,x30,[sp, #0x100]","add sp,sp,#0x120","ret "],"opCodes":["ff8304d1","fd7b10a9","fc8b00f9","fd030491","080000d0","088d42f9","e80f00f9","080000d0","088942f9","e81300f9","e03f00f9","e13b00f9","e23700f9","e36700b9","e42f00f9","080000b0","089142f9","080140b9","48020035","01000014","e80f40f9","a8831ff8","08e883d2","a8031ff8","bfc31eb8","a8031ef8","a0835ff8","a1c35eb8","a2035ef8","a3035ff8","b8000094","28008052","090000b0","299142f9","280100b9","01000014","e03f40f9","e13740f9","e2031faa","e20b00f9","b2000094","e20b40f9","e02b00f9","e03f40f9","e12f40f9","91000094","e02700f9","e86740b9","e84700b9","ff1f00f9","ff3700b9","01000014","e91340f9","e83740b9","290140b9","0801096b","02030054","01000014","e80f40f9","e93780b9","087969f8","e81700f9","e81740f9","880100b4","01000014","e81740f9","00412091","e12740f9","7e000094","a0000035","01000014","e81740f9","e81f00f9","01000014","01000014","01000014","e83740b9","08050011","e83700b9","e5ffff17","e81f40f9","a80600b5","01000014","000881d2","e00300f9","71000094","e80340f9","e01f00f9","e91f40f9","a9831df8","09008092","e90700f9","a9031df8","bfc31cb8","a8031cf8","a0835df8","a1c35cb8","a2035cf8","a3035df8","73000094","e90740f9","ea1f40f9","a8048052","48012039","e81f40f9","0a412091","e82740f9","aa831bf8","a9031bf8","a8831af8","a80480d2","a8031af8","a0835bf8","a1835af8","a2035af8","a3035bf8","56000094","ea0f40f9","e91340f9","eb1f40f9","080000b0","089542f9","681d04f9","eb1f40f9","080000b0","088542f9","680504f9","e81f40f9","2b0140b9","48792bf8","280140b9","08050011","280100b9","01000014","ea1f40f9","e92b40f9","e84740b9","aa8319f8","0a008092","aa0319f8","a98318f8","e84300f9","a08359f8","a18358f8","e24340f9","a30359f8","38000094","fc8b40f9","fd7b50a9","ff830491","c0035fd6"],"instructions":["sub sp,sp,#0x120","stp x29,x30,[sp, #0x100]","str x28,[sp, #0x110]","add x29,sp,#0x100","adrp x8,0x102000","ldr x8,[x8, #0x518]","str x8,[sp, #0x18]","adrp x8,0x102000","ldr x8,[x8, #0x510]","str x8,[sp, #0x20]","str x0,[sp, #0x78]","str x1,[sp, #0x70]","str x2,[sp, #0x68]","str w3,[sp, #0x64]","str x4,[sp, #0x58]","adrp x8,0x102000","ldr x8,[x8, #0x520]","ldr w8,[x8]","cbnz w8,0x00101068","b 0x00101028","ldr x8,[sp, #0x18]","stur x8,[x29, #-0x8]","mov x8,#0x1f40","stur x8,[x29, #-0x10]","stur wzr,[x29, #-0x14]","stur x8,[x29, #-0x20]","ldur x0,[x29, #-0x8]","ldur w1,[x29, #-0x14]","ldur x2,[x29, #-0x20]","ldur x3,[x29, #-0x10]","bl 0x00101330","mov w8,#0x1","adrp x9,0x102000","ldr x9,[x9, #0x520]","str w8,[x9]","b 0x00101068","ldr x0,[sp, #0x78]","ldr x1,[sp, #0x68]","mov x2,xzr","str x2,[sp, #0x10]","bl 0x00101340","ldr x2,[sp, #0x10]","str x0,[sp, #0x50]","ldr x0,[sp, #0x78]","ldr x1,[sp, #0x58]","bl 0x001012d0","str x0,[sp, #0x48]","ldr w8,[sp, #0x64]","str w8,[sp, #0x44]","str xzr,[sp, #0x38]","str wzr,[sp, #0x34]","b 0x001010a8","ldr x9,[sp, #0x20]","ldr w8,[sp, #0x34]","ldr w9,[x9]","subs w8,w8,w9","b.cs 0x00101118","b 0x001010c0","ldr x8,[sp, #0x18]","ldrsw x9,[sp, #0x34]","ldr x8,[x8, x9, LSL #0x3]","str x8,[sp, #0x28]","ldr x8,[sp, #0x28]","cbz x8,0x00101104","b 0x001010dc","ldr x8,[sp, #0x28]","add x0,x8,#0x810","ldr x1,[sp, #0x48]","bl 0x001012e0","cbnz w0,0x00101100","b 0x001010f4","ldr x8,[sp, #0x28]","str x8,[sp, #0x38]","b 0x00101100","b 0x00101104","b 0x00101108","ldr w8,[sp, #0x34]","add w8,w8,#0x1","str w8,[sp, #0x34]","b 0x001010a8","ldr x8,[sp, #0x38]","cbnz x8,0x001011f0","b 0x00101124","mov x0,#0x840","str x0,[sp]","bl 0x001012f0","ldr x8,[sp]","str x0,[sp, #0x38]","ldr x9,[sp, #0x38]","stur x9,[x29, #-0x28]","mov x9,#-0x1","str x9,[sp, #0x8]","stur x9,[x29, #-0x30]","stur wzr,[x29, #-0x34]","stur x8,[x29, #-0x40]","ldur x0,[x29, #-0x28]","ldur w1,[x29, #-0x34]","ldur x2,[x29, #-0x40]","ldur x3,[x29, #-0x30]","bl 0x00101330","ldr x9,[sp, #0x8]","ldr x10,[sp, #0x38]","mov w8,#0x25","strb w8,[x10, #0x800]","ldr x8,[sp, #0x38]","add x10,x8,#0x810","ldr x8,[sp, #0x48]","stur x10,[x29, #-0x48]","stur x9,[x29, #-0x50]","stur x8,[x29, #-0x58]","mov x8,#0x25","stur x8,[x29, #-0x60]","ldur x0,[x29, #-0x48]","ldur x1,[x29, #-0x58]","ldur x2,[x29, #-0x60]","ldur x3,[x29, #-0x50]","bl 0x00101300","ldr x10,[sp, #0x18]","ldr x9,[sp, #0x20]","ldr x11,[sp, #0x38]","adrp x8,0x102000","ldr x8,[x8, #0x528]","str x8,[x11, #0x838]","ldr x11,[sp, #0x38]","adrp x8,0x102000","ldr x8,[x8, #0x508]","str x8,[x11, #0x808]","ldr x8,[sp, #0x38]","ldr w11,[x9]","str x8,[x10, x11, LSL #0x3]","ldr w8,[x9]","add w8,w8,#0x1","str w8,[x9]","b 0x001011f0","ldr x10,[sp, #0x38]","ldr x9,[sp, #0x50]","ldr w8,[sp, #0x44]","stur x10,[x29, #-0x68]","mov x10,#-0x1","stur x10,[x29, #-0x70]","stur x9,[x29, #-0x78]","str x8,[sp, #0x80]","ldur x0,[x29, #-0x68]","ldur x1,[x29, #-0x78]","ldr x2,[sp, #0x80]","ldur x3,[x29, #-0x70]","bl 0x00101300","ldr x28,[sp, #0x110]","ldp x29,x30,[sp, #0x100]","add sp,sp,#0x120","ret "],"strings":[],"apisImports":["__memset_chk","GetByteArrayElements","GetStringUTFChars","strcmp","malloc","__memset_chk","__memcpy_chk","__memcpy_chk"],"exports":["Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage"],"hash":"7e847e11482308d6c776666814aee2452fb7bb61ccadd5c1591da8fc557577c6","isThunk":false,"isExternal":false,"signature":"undefined Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage(void)"}}],"cfgs":[{"function_name":"strcmp","cfg_json":{"functionName":"strcmp","entryAddress":"001012e0","totalBlocks":1,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[{"id":"001012e0","startAddress":"001012e0","endAddress":"001012ef","size":16,"instructions":["00000000001012e0  adrp x16,0x102000","00000000001012e4  ldr x17,[x16, #0x570]","00000000001012e8  add x16,x16,#0x570","00000000001012ec  br x17"],"successors":[],"predecessors":[],"blockType":"ENTRY"}]},"cfg_dot":"digraph strcmp {\n  graph [label=\"CFG: strcmp @ 001012e0\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_001012e0 [label=\"001012e0\n00000000001012e0  adrp x16,0x102000\n00000000001012e4  ldr x17,[x16, #0x570]\n00000000001012e8  add x16,x16,#0x570\n00000000001012ec  br x17\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"FUN_00101270","cfg_json":{"functionName":"FUN_00101270","entryAddress":"00101270","totalBlocks":1,"totalEdges":0,"isThunk":false,"isExternal":false,"nodes":[{"id":"00101270","startAddress":"00101270","endAddress":"00101283","size":20,"instructions":["0000000000101270  stp x16,x30,[sp, #-0x10]!","0000000000101274  adrp x16,0x102000","0000000000101278  ldr x17,[x16, #0x540]","000000000010127c  add x16,x16,#0x540","0000000000101280  br x17"],"successors":[],"predecessors":[],"blockType":"ENTRY"}]},"cfg_dot":"digraph FUN_00101270 {\n  graph [label=\"CFG: FUN_00101270 @ 00101270\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00101270 [label=\"00101270\n0000000000101270  stp x16,x30,[sp, #-0x10]!\n0000000000101274  adrp x16,0x102000\n0000000000101278  ldr x17,[x16, #0x540]\n000000000010127c  add x16,x16,#0x540\n0000000000101280  br x17\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"FUN_00100c1c","cfg_json":{"functionName":"FUN_00100c1c","entryAddress":"00100c1c","totalBlocks":1,"totalEdges":0,"isThunk":false,"isExternal":false,"nodes":[{"id":"00100c1c","startAddress":"00100c1c","endAddress":"00100c23","size":8,"instructions":["0000000000100c1c  bti c","0000000000100c20  ret"],"successors":[],"predecessors":[],"blockType":"RETURN"}]},"cfg_dot":"digraph FUN_00100c1c {\n  graph [label=\"CFG: FUN_00100c1c @ 00100c1c\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00100c1c [label=\"00100c1c\n0000000000100c1c  bti c\n0000000000100c20  ret\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"__cxa_finalize_00106000","cfg_json":{"functionName":"__cxa_finalize","entryAddress":"00106000","totalBlocks":0,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[]},"cfg_dot":"digraph __cxa_finalize {\n  graph [label=\"CFG: __cxa_finalize @ 00106000\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n\n}\n"},{"function_name":"FUN_00100c40","cfg_json":{"functionName":"FUN_00100c40","entryAddress":"00100c40","totalBlocks":1,"totalEdges":0,"isThunk":false,"isExternal":false,"nodes":[{"id":"00100c40","startAddress":"00100c40","endAddress":"00100c5b","size":28,"instructions":["0000000000100c40  bti c","0000000000100c44  mov x1,x0","0000000000100c48  adrp x0,0x100000","0000000000100c4c  adrp x2,0x102000","0000000000100c50  add x0,x0,#0xc2c","0000000000100c54  add x2,x2,#0x350","0000000000100c58  b 0x001012a0"],"successors":[],"predecessors":[],"blockType":"UNCONDITIONAL_JUMP"}]},"cfg_dot":"digraph FUN_00100c40 {\n  graph [label=\"CFG: FUN_00100c40 @ 00100c40\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00100c40 [label=\"00100c40\n0000000000100c40  bti c\n0000000000100c44  mov x1,x0\n0000000000100c48  adrp x0,0x100000\n0000000000100c4c  adrp x2,0x102000\n0000000000100c50  add x0,x0,#0xc2c\n0000000000100c54  add x2,x2,#0x350\n0000000000100c58  b 0x001012a0\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"__android_log_print_00106018","cfg_json":{"functionName":"__android_log_print","entryAddress":"00106018","totalBlocks":0,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[]},"cfg_dot":"digraph __android_log_print {\n  graph [label=\"CFG: __android_log_print @ 00106018\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n\n}\n"},{"function_name":"Java_com_mobilehackinglab_pwnchat_ChatFragment_readId","cfg_json":{"functionName":"Java_com_mobilehackinglab_pwnchat_ChatFragment_readId","entryAddress":"00100ca0","totalBlocks":12,"totalEdges":14,"isThunk":false,"isExternal":false,"nodes":[{"id":"00100ca0","startAddress":"00100ca0","endAddress":"00100cd7","size":56,"instructions":["0000000000100ca0  sub sp,sp,#0x80","0000000000100ca4  stp x29,x30,[sp, #0x70]","0000000000100ca8  add x29,sp,#0x70","0000000000100cac  stur x0,[x29, #-0x28]","0000000000100cb0  stur x1,[x29, #-0x30]","0000000000100cb4  str x2,[sp, #0x38]","0000000000100cb8  ldur x0,[x29, #-0x28]","0000000000100cbc  ldr x1,[sp, #0x38]","0000000000100cc0  mov x2,xzr","0000000000100cc4  bl 0x001012d0","0000000000100cc8  str x0,[sp, #0x30]","0000000000100ccc  str xzr,[sp, #0x28]","0000000000100cd0  str wzr,[sp, #0x24]","0000000000100cd4  b 0x00100cd8"],"successors":["00100cd8"],"predecessors":[],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100cd8","startAddress":"00100cd8","endAddress":"00100cef","size":24,"instructions":["0000000000100cd8  ldr w8,[sp, #0x24]","0000000000100cdc  adrp x9,0x102000","0000000000100ce0  ldr x9,[x9, #0x510]","0000000000100ce4  ldr w9,[x9]","0000000000100ce8  subs w8,w8,w9","0000000000100cec  b.cs 0x00100d50"],"successors":["00100d50","00100cf0"],"predecessors":["00100ca0","00100d40"],"blockType":"CONDITIONAL_JUMP"},{"id":"00100cf0","startAddress":"00100cf0","endAddress":"00100cf3","size":4,"instructions":["0000000000100cf0  b 0x00100cf4"],"successors":["00100cf4"],"predecessors":["00100cd8"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100cf4","startAddress":"00100cf4","endAddress":"00100d0f","size":28,"instructions":["0000000000100cf4  ldrsw x9,[sp, #0x24]","0000000000100cf8  adrp x8,0x102000","0000000000100cfc  ldr x8,[x8, #0x518]","0000000000100d00  ldr x8,[x8, x9, LSL #0x3]","0000000000100d04  str x8,[sp, #0x18]","0000000000100d08  ldr x8,[sp, #0x18]","0000000000100d0c  cbz x8,0x00100d3c"],"successors":["00100d3c","00100d10"],"predecessors":["00100cf0"],"blockType":"CONDITIONAL_JUMP"},{"id":"00100d10","startAddress":"00100d10","endAddress":"00100d13","size":4,"instructions":["0000000000100d10  b 0x00100d14"],"successors":["00100d14"],"predecessors":["00100cf4"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100d14","startAddress":"00100d14","endAddress":"00100d27","size":20,"instructions":["0000000000100d14  ldr x8,[sp, #0x18]","0000000000100d18  add x0,x8,#0x810","0000000000100d1c  ldr x1,[sp, #0x30]","0000000000100d20  bl 0x001012e0","0000000000100d24  cbnz w0,0x00100d38"],"successors":["00100d38","00100d28"],"predecessors":["00100d10"],"blockType":"CONDITIONAL_JUMP"},{"id":"00100d28","startAddress":"00100d28","endAddress":"00100d2b","size":4,"instructions":["0000000000100d28  b 0x00100d2c"],"successors":["00100d2c"],"predecessors":["00100d14"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100d2c","startAddress":"00100d2c","endAddress":"00100d37","size":12,"instructions":["0000000000100d2c  ldr x8,[sp, #0x18]","0000000000100d30  str x8,[sp, #0x28]","0000000000100d34  b 0x00100d38"],"successors":["00100d38"],"predecessors":["00100d28"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100d38","startAddress":"00100d38","endAddress":"00100d3b","size":4,"instructions":["0000000000100d38  b 0x00100d3c"],"successors":["00100d3c"],"predecessors":["00100d14","00100d2c"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100d3c","startAddress":"00100d3c","endAddress":"00100d3f","size":4,"instructions":["0000000000100d3c  b 0x00100d40"],"successors":["00100d40"],"predecessors":["00100cf4","00100d38"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100d40","startAddress":"00100d40","endAddress":"00100d4f","size":16,"instructions":["0000000000100d40  ldr w8,[sp, #0x24]","0000000000100d44  add w8,w8,#0x1","0000000000100d48  str w8,[sp, #0x24]","0000000000100d4c  b 0x00100cd8"],"successors":["00100cd8"],"predecessors":["00100d3c"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100d50","startAddress":"00100d50","endAddress":"00100de7","size":152,"instructions":["0000000000100d50  ldr x8,[sp, #0x28]","0000000000100d54  ldrb w8,[x8, #0x800]","0000000000100d58  mov w0,w8","0000000000100d5c  bl 0x001012f0","0000000000100d60  str x0,[sp, #0x10]","0000000000100d64  ldr x10,[sp, #0x10]","0000000000100d68  ldr x8,[sp, #0x28]","0000000000100d6c  add x9,x8,#0x810","0000000000100d70  ldr x8,[sp, #0x28]","0000000000100d74  ldrb w8,[x8, #0x800]","0000000000100d78  stur x10,[x29, #-0x8]","0000000000100d7c  mov x10,#-0x1","0000000000100d80  stur x10,[x29, #-0x10]","0000000000100d84  stur x9,[x29, #-0x18]","0000000000100d88  stur x8,[x29, #-0x20]","0000000000100d8c  ldur x0,[x29, #-0x8]","0000000000100d90  ldur x1,[x29, #-0x18]","0000000000100d94  ldur x2,[x29, #-0x20]","0000000000100d98  ldur x3,[x29, #-0x10]","0000000000100d9c  bl 0x00101300","0000000000100da0  ldur x0,[x29, #-0x28]","0000000000100da4  ldr x8,[sp, #0x28]","0000000000100da8  ldrb w8,[x8, #0x800]","0000000000100dac  sxth w1,w8","0000000000100db0  bl 0x00101310","0000000000100db4  str x0,[sp, #0x8]","0000000000100db8  ldur x0,[x29, #-0x28]","0000000000100dbc  ldr x1,[sp, #0x8]","0000000000100dc0  ldr x8,[sp, #0x28]","0000000000100dc4  ldrb w8,[x8, #0x800]","0000000000100dc8  sxth w3,w8","0000000000100dcc  ldr x4,[sp, #0x10]","0000000000100dd0  mov w2,wzr","0000000000100dd4  bl 0x00101320","0000000000100dd8  ldr x0,[sp, #0x8]","0000000000100ddc  ldp x29,x30,[sp, #0x70]","0000000000100de0  add sp,sp,#0x80","0000000000100de4  ret"],"successors":[],"predecessors":["00100cd8"],"blockType":"RETURN"}]},"cfg_dot":"digraph Java_com_mobilehackinglab_pwnchat_ChatFragment_readId {\n  graph [label=\"CFG: Java_com_mobilehackinglab_pwnchat_ChatFragment_readId @ 00100ca0\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00100ca0 [label=\"00100ca0\n0000000000100ca0  sub sp,sp,#0x80\n0000000000100ca4  stp x29,x30,[sp, #0x70]\n0000000000100ca8  add x29,sp,#0x70\n0000000000100cac  stur x0,[x29, #-0x28]\n0000000000100cb0  stur x1,[x29, #-0x30]\n0000000000100cb4  str x2,[sp, #0x38]\n0000000000100cb8  ldur x0,[x29, #-0x28]\n0000000000100cbc  ldr x1,[sp, #0x38]\n0000000000100cc0  mov x2,xzr\n0000000000100cc4  bl 0x001012d0\n0000000000100cc8  str x0,[sp, #0x30]\n0000000000100ccc  str xzr,[sp, #0x28]\n0000000000100cd0  str wzr,[sp, #0x24]\n0000000000100cd4  b 0x00100cd8\n\", style=filled, fillcolor=lightblue];\n  block_00100cd8 [label=\"00100cd8\n0000000000100cd8  ldr w8,[sp, #0x24]\n0000000000100cdc  adrp x9,0x102000\n0000000000100ce0  ldr x9,[x9, #0x510]\n0000000000100ce4  ldr w9,[x9]\n0000000000100ce8  subs w8,w8,w9\n0000000000100cec  b.cs 0x00100d50\n\"];\n  block_00100cf0 [label=\"00100cf0\n0000000000100cf0  b 0x00100cf4\n\"];\n  block_00100cf4 [label=\"00100cf4\n0000000000100cf4  ldrsw x9,[sp, #0x24]\n0000000000100cf8  adrp x8,0x102000\n0000000000100cfc  ldr x8,[x8, #0x518]\n0000000000100d00  ldr x8,[x8, x9, LSL #0x3]\n0000000000100d04  str x8,[sp, #0x18]\n0000000000100d08  ldr x8,[sp, #0x18]\n0000000000100d0c  cbz x8,0x00100d3c\n\"];\n  block_00100d10 [label=\"00100d10\n0000000000100d10  b 0x00100d14\n\"];\n  block_00100d14 [label=\"00100d14\n0000000000100d14  ldr x8,[sp, #0x18]\n0000000000100d18  add x0,x8,#0x810\n0000000000100d1c  ldr x1,[sp, #0x30]\n0000000000100d20  bl 0x001012e0\n0000000000100d24  cbnz w0,0x00100d38\n\"];\n  block_00100d28 [label=\"00100d28\n0000000000100d28  b 0x00100d2c\n\"];\n  block_00100d2c [label=\"00100d2c\n0000000000100d2c  ldr x8,[sp, #0x18]\n0000000000100d30  str x8,[sp, #0x28]\n0000000000100d34  b 0x00100d38\n\"];\n  block_00100d38 [label=\"00100d38\n0000000000100d38  b 0x00100d3c\n\"];\n  block_00100d3c [label=\"00100d3c\n0000000000100d3c  b 0x00100d40\n\"];\n  block_00100d40 [label=\"00100d40\n0000000000100d40  ldr w8,[sp, #0x24]\n0000000000100d44  add w8,w8,#0x1\n0000000000100d48  str w8,[sp, #0x24]\n0000000000100d4c  b 0x00100cd8\n\"];\n  block_00100d50 [label=\"00100d50\n0000000000100d50  ldr x8,[sp, #0x28]\n0000000000100d54  ldrb w8,[x8, #0x800]\n0000000000100d58  mov w0,w8\n0000000000100d5c  bl 0x001012f0\n0000000000100d60  str x0,[sp, #0x10]\n0000000000100d64  ldr x10,[sp, #0x10]\n0000000000100d68  ldr x8,[sp, #0x28]\n0000000000100d6c  add x9,x8,#0x810\n0000000000100d70  ldr x8,[sp, #0x28]\n0000000000100d74  ldrb w8,[x8, #0x800]\n0000000000100d78  stur x10,[x29, #-0x8]\n0000000000100d7c  mov x10,#-0x1\n0000000000100d80  stur x10,[x29, #-0x10]\n0000000000100d84  stur x9,[x29, #-0x18]\n0000000000100d88  stur x8,[x29, #-0x20]\n0000000000100d8c  ldur x0,[x29, #-0x8]\n0000000000100d90  ldur x1,[x29, #-0x18]\n0000000000100d94  ldur x2,[x29, #-0x20]\n0000000000100d98  ldur x3,[x29, #-0x10]\n0000000000100d9c  bl 0x00101300\n... (18 more)\n\", style=filled, fillcolor=lightyellow];\n\n  block_00100ca0 -> block_00100cd8;\n  block_00100cd8 -> block_00100d50;\n  block_00100cd8 -> block_00100cf0;\n  block_00100cf0 -> block_00100cf4;\n  block_00100cf4 -> block_00100d3c;\n  block_00100cf4 -> block_00100d10;\n  block_00100d10 -> block_00100d14;\n  block_00100d14 -> block_00100d38;\n  block_00100d14 -> block_00100d28;\n  block_00100d28 -> block_00100d2c;\n  block_00100d2c -> block_00100d38;\n  block_00100d38 -> block_00100d3c;\n  block_00100d3c -> block_00100d40;\n  block_00100d40 -> block_00100cd8;\n}\n"},{"function_name":"SetByteArrayRegion","cfg_json":{"functionName":"SetByteArrayRegion","entryAddress":"00100e58","totalBlocks":1,"totalEdges":0,"isThunk":false,"isExternal":false,"nodes":[{"id":"00100e58","startAddress":"00100e58","endAddress":"00100ea3","size":76,"instructions":["0000000000100e58  sub sp,sp,#0x30","0000000000100e5c  stp x29,x30,[sp, #0x20]","0000000000100e60  add x29,sp,#0x20","0000000000100e64  stur x0,[x29, #-0x8]","0000000000100e68  str x1,[sp, #0x10]","0000000000100e6c  str w2,[sp, #0xc]","0000000000100e70  str w3,[sp, #0x8]","0000000000100e74  str x4,[sp]","0000000000100e78  ldur x0,[x29, #-0x8]","0000000000100e7c  ldr x8,[x0]","0000000000100e80  ldr x8,[x8, #0x680]","0000000000100e84  ldr x1,[sp, #0x10]","0000000000100e88  ldr w2,[sp, #0xc]","0000000000100e8c  ldr w3,[sp, #0x8]","0000000000100e90  ldr x4,[sp]","0000000000100e94  blr x8","0000000000100e98  ldp x29,x30,[sp, #0x20]","0000000000100e9c  add sp,sp,#0x30","0000000000100ea0  ret"],"successors":[],"predecessors":[],"blockType":"RETURN"}]},"cfg_dot":"digraph SetByteArrayRegion {\n  graph [label=\"CFG: SetByteArrayRegion @ 00100e58\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00100e58 [label=\"00100e58\n0000000000100e58  sub sp,sp,#0x30\n0000000000100e5c  stp x29,x30,[sp, #0x20]\n0000000000100e60  add x29,sp,#0x20\n0000000000100e64  stur x0,[x29, #-0x8]\n0000000000100e68  str x1,[sp, #0x10]\n0000000000100e6c  str w2,[sp, #0xc]\n0000000000100e70  str w3,[sp, #0x8]\n0000000000100e74  str x4,[sp]\n0000000000100e78  ldur x0,[x29, #-0x8]\n0000000000100e7c  ldr x8,[x0]\n0000000000100e80  ldr x8,[x8, #0x680]\n0000000000100e84  ldr x1,[sp, #0x10]\n0000000000100e88  ldr w2,[sp, #0xc]\n0000000000100e8c  ldr w3,[sp, #0x8]\n0000000000100e90  ldr x4,[sp]\n0000000000100e94  blr x8\n0000000000100e98  ldp x29,x30,[sp, #0x20]\n0000000000100e9c  add sp,sp,#0x30\n0000000000100ea0  ret\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"__android_log_print","cfg_json":{"functionName":"__android_log_print","entryAddress":"001012c0","totalBlocks":1,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[{"id":"001012c0","startAddress":"001012c0","endAddress":"001012cf","size":16,"instructions":["00000000001012c0  adrp x16,0x102000","00000000001012c4  ldr x17,[x16, #0x560]","00000000001012c8  add x16,x16,#0x560","00000000001012cc  br x17"],"successors":[],"predecessors":[],"blockType":"ENTRY"}]},"cfg_dot":"digraph __android_log_print {\n  graph [label=\"CFG: __android_log_print @ 001012c0\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_001012c0 [label=\"001012c0\n00000000001012c0  adrp x16,0x102000\n00000000001012c4  ldr x17,[x16, #0x560]\n00000000001012c8  add x16,x16,#0x560\n00000000001012cc  br x17\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"binary","cfg_json":{"programName":"libpwnchat.so","architecture":"AARCH64","imageBase":"00100000","totalFunctions":36,"totalCallEdges":32,"nodes":[{"id":"00100c0c","functionName":"_FINI_1","entryAddress":"00100c0c","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":false,"bodySize":16,"basicBlockCount":1,"callees":["00101290"],"callers":[]},{"id":"00100c1c","functionName":"FUN_00100c1c","entryAddress":"00100c1c","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":false,"bodySize":8,"basicBlockCount":1,"callees":[],"callers":["00100c24"]},{"id":"00100c24","functionName":"_FINI_0","entryAddress":"00100c24","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":true,"bodySize":8,"basicBlockCount":1,"callees":["00100c1c"],"callers":[]},{"id":"00100c2c","functionName":"FUN_00100c2c","entryAddress":"00100c2c","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":false,"bodySize":20,"basicBlockCount":3,"callees":[],"callers":[]},{"id":"00100c40","functionName":"FUN_00100c40","entryAddress":"00100c40","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":false,"bodySize":28,"basicBlockCount":1,"callees":["001012a0"],"callers":[]},{"id":"00100c5c","functionName":"FUN_00100c5c","entryAddress":"00100c5c","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":false,"bodySize":16,"basicBlockCount":1,"callees":["001012b0"],"callers":[]},{"id":"00100c6c","functionName":"delete_img","entryAddress":"00100c6c","returnType":"undefined","callingConvention":"__cdecl","isExternal":false,"isThunk":false,"bodySize":52,"basicBlockCount":1,"callees":["001012c0"],"callers":[]},{"id":"00100ca0","functionName":"Java_com_mobilehackinglab_pwnchat_ChatFragment_readId","entryAddress":"00100ca0","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":false,"bodySize":328,"basicBlockCount":12,"callees":["00101300","001012e0","001012f0","00101310","00101320","001012d0"],"callers":[]},{"id":"00100de8","functionName":"GetStringUTFChars","entryAddress":"00100de8","returnType":"undefined","callingConvention":"__thiscall","isExternal":false,"isThunk":false,"bodySize":60,"basicBlockCount":1,"callees":[],"callers":["001012d0"]},{"id":"00100e24","functionName":"NewByteArray","entryAddress":"00100e24","returnType":"undefined","callingConvention":"__thiscall","isExternal":false,"isThunk":false,"bodySize":52,"basicBlockCount":1,"callees":[],"callers":["00101310"]},{"id":"00100e58","functionName":"SetByteArrayRegion","entryAddress":"00100e58","returnType":"undefined","callingConvention":"__thiscall","isExternal":false,"isThunk":false,"bodySize":76,"basicBlockCount":1,"callees":[],"callers":["00101320"]},{"id":"00100ea4","functionName":"Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage","entryAddress":"00100ea4","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":false,"bodySize":308,"basicBlockCount":18,"callees":["00101330","001012e0","001012d0"],"callers":[]},{"id":"00100fd8","functionName":"Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage","entryAddress":"00100fd8","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":false,"bodySize":604,"basicBlockCount":18,"callees":["00101300","00101330","001012e0","00101340","001012f0","001012d0"],"callers":[]},{"id":"00101234","functionName":"GetByteArrayElements","entryAddress":"00101234","returnType":"undefined","callingConvention":"__thiscall","isExternal":false,"isThunk":false,"bodySize":60,"basicBlockCount":1,"callees":[],"callers":["00101340"]},{"id":"00101270","functionName":"FUN_00101270","entryAddress":"00101270","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":false,"bodySize":20,"basicBlockCount":1,"callees":[],"callers":[]},{"id":"00101290","functionName":"__cxa_finalize","entryAddress":"00101290","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":true,"bodySize":16,"basicBlockCount":1,"callees":["00106000"],"callers":["00100c0c"]},{"id":"001012a0","functionName":"__cxa_atexit","entryAddress":"001012a0","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":true,"bodySize":16,"basicBlockCount":1,"callees":["00106008"],"callers":["00100c40"]},{"id":"001012b0","functionName":"__register_atfork","entryAddress":"001012b0","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":true,"bodySize":16,"basicBlockCount":1,"callees":["00106010"],"callers":["00100c5c"]},{"id":"001012c0","functionName":"__android_log_print","entryAddress":"001012c0","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":true,"bodySize":16,"basicBlockCount":1,"callees":["00106018"],"callers":["00100c6c"]},{"id":"001012d0","functionName":"GetStringUTFChars","entryAddress":"001012d0","returnType":"undefined","callingConvention":"__thiscall","isExternal":false,"isThunk":true,"bodySize":16,"basicBlockCount":1,"callees":["00100de8"],"callers":["00100ca0","00100ea4","00100fd8"]},{"id":"001012e0","functionName":"strcmp","entryAddress":"001012e0","returnType":"int","callingConvention":"unknown","isExternal":false,"isThunk":true,"bodySize":16,"basicBlockCount":1,"callees":["00106020"],"callers":["00100ca0","00100ea4","00100fd8"]},{"id":"001012f0","functionName":"malloc","entryAddress":"001012f0","returnType":"void *","callingConvention":"unknown","isExternal":false,"isThunk":true,"bodySize":16,"basicBlockCount":1,"callees":["00106028"],"callers":["00100ca0","00100fd8"]},{"id":"00101300","functionName":"__memcpy_chk","entryAddress":"00101300","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":true,"bodySize":16,"basicBlockCount":1,"callees":["00106030"],"callers":["00100ca0","00100fd8"]},{"id":"00101310","functionName":"NewByteArray","entryAddress":"00101310","returnType":"undefined","callingConvention":"__thiscall","isExternal":false,"isThunk":true,"bodySize":16,"basicBlockCount":1,"callees":["00100e24"],"callers":["00100ca0"]},{"id":"00101320","functionName":"SetByteArrayRegion","entryAddress":"00101320","returnType":"undefined","callingConvention":"__thiscall","isExternal":false,"isThunk":true,"bodySize":16,"basicBlockCount":1,"callees":["00100e58"],"callers":["00100ca0"]},{"id":"00101330","functionName":"__memset_chk","entryAddress":"00101330","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":true,"bodySize":16,"basicBlockCount":1,"callees":["00106038"],"callers":["00100ea4","00100fd8"]},{"id":"00101340","functionName":"GetByteArrayElements","entryAddress":"00101340","returnType":"undefined","callingConvention":"__thiscall","isExternal":false,"isThunk":true,"bodySize":16,"basicBlockCount":1,"callees":["00101234"],"callers":["00100fd8"]},{"id":"00106000","functionName":"__cxa_finalize","entryAddress":"00106000","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":true,"bodySize":1,"basicBlockCount":0,"callees":[],"callers":["00101290"]},{"id":"00106008","functionName":"__cxa_atexit","entryAddress":"00106008","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":true,"bodySize":1,"basicBlockCount":0,"callees":[],"callers":["001012a0"]},{"id":"00106010","functionName":"__register_atfork","entryAddress":"00106010","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":true,"bodySize":1,"basicBlockCount":0,"callees":[],"callers":["001012b0"]},{"id":"00106018","functionName":"__android_log_print","entryAddress":"00106018","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":true,"bodySize":1,"basicBlockCount":0,"callees":[],"callers":["001012c0"]},{"id":"00106020","functionName":"strcmp","entryAddress":"00106020","returnType":"int","callingConvention":"unknown","isExternal":false,"isThunk":true,"bodySize":1,"basicBlockCount":0,"callees":[],"callers":["001012e0"]},{"id":"00106028","functionName":"malloc","entryAddress":"00106028","returnType":"void *","callingConvention":"unknown","isExternal":false,"isThunk":true,"bodySize":1,"basicBlockCount":0,"callees":[],"callers":["001012f0"]},{"id":"00106030","functionName":"__memcpy_chk","entryAddress":"00106030","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":true,"bodySize":1,"basicBlockCount":0,"callees":[],"callers":["00101300"]},{"id":"00106038","functionName":"__memset_chk","entryAddress":"00106038","returnType":"undefined","callingConvention":"unknown","isExternal":false,"isThunk":true,"bodySize":1,"basicBlockCount":0,"callees":[],"callers":["00101330"]},{"id":"00106040","functionName":"remove","entryAddress":"00106040","returnType":"int","callingConvention":"unknown","isExternal":false,"isThunk":true,"bodySize":1,"basicBlockCount":0,"callees":[],"callers":[]}]},"cfg_dot":"digraph libpwnchat_so_binary_cfg {\n  graph [label=\"Binary CFG: libpwnchat.so\", fontsize=14, rankdir=LR];\n  node [shape=box, fontname=\"Helvetica\", fontsize=10];\n\n  fn_00100c0c [label=\"_FINI_1\n00100c0c\nblocks: 1  size: 16\", style=filled, fillcolor=lightblue];\n  fn_00100c1c [label=\"FUN_00100c1c\n00100c1c\nblocks: 1  size: 8\", style=filled, fillcolor=lightgreen];\n  fn_00100c24 [label=\"_FINI_0\n00100c24\nblocks: 1  size: 8\", style=filled, fillcolor=lightyellow];\n  fn_00100c2c [label=\"FUN_00100c2c\n00100c2c\nblocks: 3  size: 20\", style=filled, fillcolor=lightblue];\n  fn_00100c40 [label=\"FUN_00100c40\n00100c40\nblocks: 1  size: 28\", style=filled, fillcolor=lightblue];\n  fn_00100c5c [label=\"FUN_00100c5c\n00100c5c\nblocks: 1  size: 16\", style=filled, fillcolor=lightblue];\n  fn_00100c6c [label=\"delete_img\n00100c6c\nblocks: 1  size: 52\", style=filled, fillcolor=lightblue];\n  fn_00100ca0 [label=\"Java_com_mobilehackinglab_pwnchat_ChatFragment_readId\n00100ca0\nblocks: 12  size: 328\", style=filled, fillcolor=lightblue];\n  fn_00100de8 [label=\"GetStringUTFChars\n00100de8\nblocks: 1  size: 60\", style=filled, fillcolor=lightgreen];\n  fn_00100e24 [label=\"NewByteArray\n00100e24\nblocks: 1  size: 52\", style=filled, fillcolor=lightgreen];\n  fn_00100e58 [label=\"SetByteArrayRegion\n00100e58\nblocks: 1  size: 76\", style=filled, fillcolor=lightgreen];\n  fn_00100ea4 [label=\"Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage\n00100ea4\nblocks: 18  size: 308\", style=filled, fillcolor=lightblue];\n  fn_00100fd8 [label=\"Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage\n00100fd8\nblocks: 18  size: 604\", style=filled, fillcolor=lightblue];\n  fn_00101234 [label=\"GetByteArrayElements\n00101234\nblocks: 1  size: 60\", style=filled, fillcolor=lightgreen];\n  fn_00101270 [label=\"FUN_00101270\n00101270\nblocks: 1  size: 20\", style=filled, fillcolor=lightblue];\n  fn_00101290 [label=\"__cxa_finalize\n00101290\nblocks: 1  size: 16\", style=filled, fillcolor=lightyellow];\n  fn_001012a0 [label=\"__cxa_atexit\n001012a0\nblocks: 1  size: 16\", style=filled, fillcolor=lightyellow];\n  fn_001012b0 [label=\"__register_atfork\n001012b0\nblocks: 1  size: 16\", style=filled, fillcolor=lightyellow];\n  fn_001012c0 [label=\"__android_log_print\n001012c0\nblocks: 1  size: 16\", style=filled, fillcolor=lightyellow];\n  fn_001012d0 [label=\"GetStringUTFChars\n001012d0\nblocks: 1  size: 16\", style=filled, fillcolor=lightyellow];\n  fn_001012e0 [label=\"strcmp\n001012e0\nblocks: 1  size: 16\", style=filled, fillcolor=lightyellow];\n  fn_001012f0 [label=\"malloc\n001012f0\nblocks: 1  size: 16\", style=filled, fillcolor=lightyellow];\n  fn_00101300 [label=\"__memcpy_chk\n00101300\nblocks: 1  size: 16\", style=filled, fillcolor=lightyellow];\n  fn_00101310 [label=\"NewByteArray\n00101310\nblocks: 1  size: 16\", style=filled, fillcolor=lightyellow];\n  fn_00101320 [label=\"SetByteArrayRegion\n00101320\nblocks: 1  size: 16\", style=filled, fillcolor=lightyellow];\n  fn_00101330 [label=\"__memset_chk\n00101330\nblocks: 1  size: 16\", style=filled, fillcolor=lightyellow];\n  fn_00101340 [label=\"GetByteArrayElements\n00101340\nblocks: 1  size: 16\", style=filled, fillcolor=lightyellow];\n  fn_00106000 [label=\"__cxa_finalize\n00106000\nblocks: 0  size: 1\", style=filled, fillcolor=lightyellow];\n  fn_00106008 [label=\"__cxa_atexit\n00106008\nblocks: 0  size: 1\", style=filled, fillcolor=lightyellow];\n  fn_00106010 [label=\"__register_atfork\n00106010\nblocks: 0  size: 1\", style=filled, fillcolor=lightyellow];\n  fn_00106018 [label=\"__android_log_print\n00106018\nblocks: 0  size: 1\", style=filled, fillcolor=lightyellow];\n  fn_00106020 [label=\"strcmp\n00106020\nblocks: 0  size: 1\", style=filled, fillcolor=lightyellow];\n  fn_00106028 [label=\"malloc\n00106028\nblocks: 0  size: 1\", style=filled, fillcolor=lightyellow];\n  fn_00106030 [label=\"__memcpy_chk\n00106030\nblocks: 0  size: 1\", style=filled, fillcolor=lightyellow];\n  fn_00106038 [label=\"__memset_chk\n00106038\nblocks: 0  size: 1\", style=filled, fillcolor=lightyellow];\n  fn_00106040 [label=\"remove\n00106040\nblocks: 0  size: 1\", style=filled, fillcolor=lightyellow];\n\n  fn_00100c0c -> fn_00101290;\n  fn_00100c24 -> fn_00100c1c;\n  fn_00100c40 -> fn_001012a0;\n  fn_00100c5c -> fn_001012b0;\n  fn_00100c6c -> fn_001012c0;\n  fn_00100ca0 -> fn_00101300;\n  fn_00100ca0 -> fn_001012e0;\n  fn_00100ca0 -> fn_001012f0;\n  fn_00100ca0 -> fn_00101310;\n  fn_00100ca0 -> fn_00101320;\n  fn_00100ca0 -> fn_001012d0;\n  fn_00100ea4 -> fn_00101330;\n  fn_00100ea4 -> fn_001012e0;\n  fn_00100ea4 -> fn_001012d0;\n  fn_00100fd8 -> fn_00101300;\n  fn_00100fd8 -> fn_00101330;\n  fn_00100fd8 -> fn_001012e0;\n  fn_00100fd8 -> fn_00101340;\n  fn_00100fd8 -> fn_001012f0;\n  fn_00100fd8 -> fn_001012d0;\n  fn_00101290 -> fn_00106000;\n  fn_001012a0 -> fn_00106008;\n  fn_001012b0 -> fn_00106010;\n  fn_001012c0 -> fn_00106018;\n  fn_001012d0 -> fn_00100de8;\n  fn_001012e0 -> fn_00106020;\n  fn_001012f0 -> fn_00106028;\n  fn_00101300 -> fn_00106030;\n  fn_00101310 -> fn_00100e24;\n  fn_00101320 -> fn_00100e58;\n  fn_00101330 -> fn_00106038;\n  fn_00101340 -> fn_00101234;\n}\n"},{"function_name":"Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage","cfg_json":{"functionName":"Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage","entryAddress":"00100fd8","totalBlocks":18,"totalEdges":22,"isThunk":false,"isExternal":false,"nodes":[{"id":"00100fd8","startAddress":"00100fd8","endAddress":"00101023","size":76,"instructions":["0000000000100fd8  sub sp,sp,#0x120","0000000000100fdc  stp x29,x30,[sp, #0x100]","0000000000100fe0  str x28,[sp, #0x110]","0000000000100fe4  add x29,sp,#0x100","0000000000100fe8  adrp x8,0x102000","0000000000100fec  ldr x8,[x8, #0x518]","0000000000100ff0  str x8,[sp, #0x18]","0000000000100ff4  adrp x8,0x102000","0000000000100ff8  ldr x8,[x8, #0x510]","0000000000100ffc  str x8,[sp, #0x20]","0000000000101000  str x0,[sp, #0x78]","0000000000101004  str x1,[sp, #0x70]","0000000000101008  str x2,[sp, #0x68]","000000000010100c  str w3,[sp, #0x64]","0000000000101010  str x4,[sp, #0x58]","0000000000101014  adrp x8,0x102000","0000000000101018  ldr x8,[x8, #0x520]","000000000010101c  ldr w8,[x8]","0000000000101020  cbnz w8,0x00101068"],"successors":["00101068","00101024"],"predecessors":[],"blockType":"CONDITIONAL_JUMP"},{"id":"00101024","startAddress":"00101024","endAddress":"00101027","size":4,"instructions":["0000000000101024  b 0x00101028"],"successors":["00101028"],"predecessors":["00100fd8"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00101028","startAddress":"00101028","endAddress":"00101067","size":64,"instructions":["0000000000101028  ldr x8,[sp, #0x18]","000000000010102c  stur x8,[x29, #-0x8]","0000000000101030  mov x8,#0x1f40","0000000000101034  stur x8,[x29, #-0x10]","0000000000101038  stur wzr,[x29, #-0x14]","000000000010103c  stur x8,[x29, #-0x20]","0000000000101040  ldur x0,[x29, #-0x8]","0000000000101044  ldur w1,[x29, #-0x14]","0000000000101048  ldur x2,[x29, #-0x20]","000000000010104c  ldur x3,[x29, #-0x10]","0000000000101050  bl 0x00101330","0000000000101054  mov w8,#0x1","0000000000101058  adrp x9,0x102000","000000000010105c  ldr x9,[x9, #0x520]","0000000000101060  str w8,[x9]","0000000000101064  b 0x00101068"],"successors":["00101068"],"predecessors":["00101024"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00101068","startAddress":"00101068","endAddress":"001010a7","size":64,"instructions":["0000000000101068  ldr x0,[sp, #0x78]","000000000010106c  ldr x1,[sp, #0x68]","0000000000101070  mov x2,xzr","0000000000101074  str x2,[sp, #0x10]","0000000000101078  bl 0x00101340","000000000010107c  ldr x2,[sp, #0x10]","0000000000101080  str x0,[sp, #0x50]","0000000000101084  ldr x0,[sp, #0x78]","0000000000101088  ldr x1,[sp, #0x58]","000000000010108c  bl 0x001012d0","0000000000101090  str x0,[sp, #0x48]","0000000000101094  ldr w8,[sp, #0x64]","0000000000101098  str w8,[sp, #0x44]","000000000010109c  str xzr,[sp, #0x38]","00000000001010a0  str wzr,[sp, #0x34]","00000000001010a4  b 0x001010a8"],"successors":["001010a8"],"predecessors":["00100fd8","00101028"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"001010a8","startAddress":"001010a8","endAddress":"001010bb","size":20,"instructions":["00000000001010a8  ldr x9,[sp, #0x20]","00000000001010ac  ldr w8,[sp, #0x34]","00000000001010b0  ldr w9,[x9]","00000000001010b4  subs w8,w8,w9","00000000001010b8  b.cs 0x00101118"],"successors":["00101118","001010bc"],"predecessors":["00101068","00101108"],"blockType":"CONDITIONAL_JUMP"},{"id":"001010bc","startAddress":"001010bc","endAddress":"001010bf","size":4,"instructions":["00000000001010bc  b 0x001010c0"],"successors":["001010c0"],"predecessors":["001010a8"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"001010c0","startAddress":"001010c0","endAddress":"001010d7","size":24,"instructions":["00000000001010c0  ldr x8,[sp, #0x18]","00000000001010c4  ldrsw x9,[sp, #0x34]","00000000001010c8  ldr x8,[x8, x9, LSL #0x3]","00000000001010cc  str x8,[sp, #0x28]","00000000001010d0  ldr x8,[sp, #0x28]","00000000001010d4  cbz x8,0x00101104"],"successors":["00101104","001010d8"],"predecessors":["001010bc"],"blockType":"CONDITIONAL_JUMP"},{"id":"001010d8","startAddress":"001010d8","endAddress":"001010db","size":4,"instructions":["00000000001010d8  b 0x001010dc"],"successors":["001010dc"],"predecessors":["001010c0"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"001010dc","startAddress":"001010dc","endAddress":"001010ef","size":20,"instructions":["00000000001010dc  ldr x8,[sp, #0x28]","00000000001010e0  add x0,x8,#0x810","00000000001010e4  ldr x1,[sp, #0x48]","00000000001010e8  bl 0x001012e0","00000000001010ec  cbnz w0,0x00101100"],"successors":["00101100","001010f0"],"predecessors":["001010d8"],"blockType":"CONDITIONAL_JUMP"},{"id":"001010f0","startAddress":"001010f0","endAddress":"001010f3","size":4,"instructions":["00000000001010f0  b 0x001010f4"],"successors":["001010f4"],"predecessors":["001010dc"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"001010f4","startAddress":"001010f4","endAddress":"001010ff","size":12,"instructions":["00000000001010f4  ldr x8,[sp, #0x28]","00000000001010f8  str x8,[sp, #0x38]","00000000001010fc  b 0x00101100"],"successors":["00101100"],"predecessors":["001010f0"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00101100","startAddress":"00101100","endAddress":"00101103","size":4,"instructions":["0000000000101100  b 0x00101104"],"successors":["00101104"],"predecessors":["001010dc","001010f4"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00101104","startAddress":"00101104","endAddress":"00101107","size":4,"instructions":["0000000000101104  b 0x00101108"],"successors":["00101108"],"predecessors":["001010c0","00101100"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00101108","startAddress":"00101108","endAddress":"00101117","size":16,"instructions":["0000000000101108  ldr w8,[sp, #0x34]","000000000010110c  add w8,w8,#0x1","0000000000101110  str w8,[sp, #0x34]","0000000000101114  b 0x001010a8"],"successors":["001010a8"],"predecessors":["00101104"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00101118","startAddress":"00101118","endAddress":"0010111f","size":8,"instructions":["0000000000101118  ldr x8,[sp, #0x38]","000000000010111c  cbnz x8,0x001011f0"],"successors":["001011f0","00101120"],"predecessors":["001010a8"],"blockType":"CONDITIONAL_JUMP"},{"id":"00101120","startAddress":"00101120","endAddress":"00101123","size":4,"instructions":["0000000000101120  b 0x00101124"],"successors":["00101124"],"predecessors":["00101118"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00101124","startAddress":"00101124","endAddress":"001011ef","size":204,"instructions":["0000000000101124  mov x0,#0x840","0000000000101128  str x0,[sp]","000000000010112c  bl 0x001012f0","0000000000101130  ldr x8,[sp]","0000000000101134  str x0,[sp, #0x38]","0000000000101138  ldr x9,[sp, #0x38]","000000000010113c  stur x9,[x29, #-0x28]","0000000000101140  mov x9,#-0x1","0000000000101144  str x9,[sp, #0x8]","0000000000101148  stur x9,[x29, #-0x30]","000000000010114c  stur wzr,[x29, #-0x34]","0000000000101150  stur x8,[x29, #-0x40]","0000000000101154  ldur x0,[x29, #-0x28]","0000000000101158  ldur w1,[x29, #-0x34]","000000000010115c  ldur x2,[x29, #-0x40]","0000000000101160  ldur x3,[x29, #-0x30]","0000000000101164  bl 0x00101330","0000000000101168  ldr x9,[sp, #0x8]","000000000010116c  ldr x10,[sp, #0x38]","0000000000101170  mov w8,#0x25","0000000000101174  strb w8,[x10, #0x800]","0000000000101178  ldr x8,[sp, #0x38]","000000000010117c  add x10,x8,#0x810","0000000000101180  ldr x8,[sp, #0x48]","0000000000101184  stur x10,[x29, #-0x48]","0000000000101188  stur x9,[x29, #-0x50]","000000000010118c  stur x8,[x29, #-0x58]","0000000000101190  mov x8,#0x25","0000000000101194  stur x8,[x29, #-0x60]","0000000000101198  ldur x0,[x29, #-0x48]","000000000010119c  ldur x1,[x29, #-0x58]","00000000001011a0  ldur x2,[x29, #-0x60]","00000000001011a4  ldur x3,[x29, #-0x50]","00000000001011a8  bl 0x00101300","00000000001011ac  ldr x10,[sp, #0x18]","00000000001011b0  ldr x9,[sp, #0x20]","00000000001011b4  ldr x11,[sp, #0x38]","00000000001011b8  adrp x8,0x102000","00000000001011bc  ldr x8,[x8, #0x528]","00000000001011c0  str x8,[x11, #0x838]","00000000001011c4  ldr x11,[sp, #0x38]","00000000001011c8  adrp x8,0x102000","00000000001011cc  ldr x8,[x8, #0x508]","00000000001011d0  str x8,[x11, #0x808]","00000000001011d4  ldr x8,[sp, #0x38]","00000000001011d8  ldr w11,[x9]","00000000001011dc  str x8,[x10, x11, LSL #0x3]","00000000001011e0  ldr w8,[x9]","00000000001011e4  add w8,w8,#0x1","00000000001011e8  str w8,[x9]","00000000001011ec  b 0x001011f0"],"successors":["001011f0"],"predecessors":["00101120"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"001011f0","startAddress":"001011f0","endAddress":"00101233","size":68,"instructions":["00000000001011f0  ldr x10,[sp, #0x38]","00000000001011f4  ldr x9,[sp, #0x50]","00000000001011f8  ldr w8,[sp, #0x44]","00000000001011fc  stur x10,[x29, #-0x68]","0000000000101200  mov x10,#-0x1","0000000000101204  stur x10,[x29, #-0x70]","0000000000101208  stur x9,[x29, #-0x78]","000000000010120c  str x8,[sp, #0x80]","0000000000101210  ldur x0,[x29, #-0x68]","0000000000101214  ldur x1,[x29, #-0x78]","0000000000101218  ldr x2,[sp, #0x80]","000000000010121c  ldur x3,[x29, #-0x70]","0000000000101220  bl 0x00101300","0000000000101224  ldr x28,[sp, #0x110]","0000000000101228  ldp x29,x30,[sp, #0x100]","000000000010122c  add sp,sp,#0x120","0000000000101230  ret"],"successors":[],"predecessors":["00101118","00101124"],"blockType":"RETURN"}]},"cfg_dot":"digraph Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage {\n  graph [label=\"CFG: Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_parseImage @ 00100fd8\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00100fd8 [label=\"00100fd8\n0000000000100fd8  sub sp,sp,#0x120\n0000000000100fdc  stp x29,x30,[sp, #0x100]\n0000000000100fe0  str x28,[sp, #0x110]\n0000000000100fe4  add x29,sp,#0x100\n0000000000100fe8  adrp x8,0x102000\n0000000000100fec  ldr x8,[x8, #0x518]\n0000000000100ff0  str x8,[sp, #0x18]\n0000000000100ff4  adrp x8,0x102000\n0000000000100ff8  ldr x8,[x8, #0x510]\n0000000000100ffc  str x8,[sp, #0x20]\n0000000000101000  str x0,[sp, #0x78]\n0000000000101004  str x1,[sp, #0x70]\n0000000000101008  str x2,[sp, #0x68]\n000000000010100c  str w3,[sp, #0x64]\n0000000000101010  str x4,[sp, #0x58]\n0000000000101014  adrp x8,0x102000\n0000000000101018  ldr x8,[x8, #0x520]\n000000000010101c  ldr w8,[x8]\n0000000000101020  cbnz w8,0x00101068\n\", style=filled, fillcolor=lightblue];\n  block_00101024 [label=\"00101024\n0000000000101024  b 0x00101028\n\"];\n  block_00101028 [label=\"00101028\n0000000000101028  ldr x8,[sp, #0x18]\n000000000010102c  stur x8,[x29, #-0x8]\n0000000000101030  mov x8,#0x1f40\n0000000000101034  stur x8,[x29, #-0x10]\n0000000000101038  stur wzr,[x29, #-0x14]\n000000000010103c  stur x8,[x29, #-0x20]\n0000000000101040  ldur x0,[x29, #-0x8]\n0000000000101044  ldur w1,[x29, #-0x14]\n0000000000101048  ldur x2,[x29, #-0x20]\n000000000010104c  ldur x3,[x29, #-0x10]\n0000000000101050  bl 0x00101330\n0000000000101054  mov w8,#0x1\n0000000000101058  adrp x9,0x102000\n000000000010105c  ldr x9,[x9, #0x520]\n0000000000101060  str w8,[x9]\n0000000000101064  b 0x00101068\n\"];\n  block_00101068 [label=\"00101068\n0000000000101068  ldr x0,[sp, #0x78]\n000000000010106c  ldr x1,[sp, #0x68]\n0000000000101070  mov x2,xzr\n0000000000101074  str x2,[sp, #0x10]\n0000000000101078  bl 0x00101340\n000000000010107c  ldr x2,[sp, #0x10]\n0000000000101080  str x0,[sp, #0x50]\n0000000000101084  ldr x0,[sp, #0x78]\n0000000000101088  ldr x1,[sp, #0x58]\n000000000010108c  bl 0x001012d0\n0000000000101090  str x0,[sp, #0x48]\n0000000000101094  ldr w8,[sp, #0x64]\n0000000000101098  str w8,[sp, #0x44]\n000000000010109c  str xzr,[sp, #0x38]\n00000000001010a0  str wzr,[sp, #0x34]\n00000000001010a4  b 0x001010a8\n\"];\n  block_001010a8 [label=\"001010a8\n00000000001010a8  ldr x9,[sp, #0x20]\n00000000001010ac  ldr w8,[sp, #0x34]\n00000000001010b0  ldr w9,[x9]\n00000000001010b4  subs w8,w8,w9\n00000000001010b8  b.cs 0x00101118\n\"];\n  block_001010bc [label=\"001010bc\n00000000001010bc  b 0x001010c0\n\"];\n  block_001010c0 [label=\"001010c0\n00000000001010c0  ldr x8,[sp, #0x18]\n00000000001010c4  ldrsw x9,[sp, #0x34]\n00000000001010c8  ldr x8,[x8, x9, LSL #0x3]\n00000000001010cc  str x8,[sp, #0x28]\n00000000001010d0  ldr x8,[sp, #0x28]\n00000000001010d4  cbz x8,0x00101104\n\"];\n  block_001010d8 [label=\"001010d8\n00000000001010d8  b 0x001010dc\n\"];\n  block_001010dc [label=\"001010dc\n00000000001010dc  ldr x8,[sp, #0x28]\n00000000001010e0  add x0,x8,#0x810\n00000000001010e4  ldr x1,[sp, #0x48]\n00000000001010e8  bl 0x001012e0\n00000000001010ec  cbnz w0,0x00101100\n\"];\n  block_001010f0 [label=\"001010f0\n00000000001010f0  b 0x001010f4\n\"];\n  block_001010f4 [label=\"001010f4\n00000000001010f4  ldr x8,[sp, #0x28]\n00000000001010f8  str x8,[sp, #0x38]\n00000000001010fc  b 0x00101100\n\"];\n  block_00101100 [label=\"00101100\n0000000000101100  b 0x00101104\n\"];\n  block_00101104 [label=\"00101104\n0000000000101104  b 0x00101108\n\"];\n  block_00101108 [label=\"00101108\n0000000000101108  ldr w8,[sp, #0x34]\n000000000010110c  add w8,w8,#0x1\n0000000000101110  str w8,[sp, #0x34]\n0000000000101114  b 0x001010a8\n\"];\n  block_00101118 [label=\"00101118\n0000000000101118  ldr x8,[sp, #0x38]\n000000000010111c  cbnz x8,0x001011f0\n\"];\n  block_00101120 [label=\"00101120\n0000000000101120  b 0x00101124\n\"];\n  block_00101124 [label=\"00101124\n0000000000101124  mov x0,#0x840\n0000000000101128  str x0,[sp]\n000000000010112c  bl 0x001012f0\n0000000000101130  ldr x8,[sp]\n0000000000101134  str x0,[sp, #0x38]\n0000000000101138  ldr x9,[sp, #0x38]\n000000000010113c  stur x9,[x29, #-0x28]\n0000000000101140  mov x9,#-0x1\n0000000000101144  str x9,[sp, #0x8]\n0000000000101148  stur x9,[x29, #-0x30]\n000000000010114c  stur wzr,[x29, #-0x34]\n0000000000101150  stur x8,[x29, #-0x40]\n0000000000101154  ldur x0,[x29, #-0x28]\n0000000000101158  ldur w1,[x29, #-0x34]\n000000000010115c  ldur x2,[x29, #-0x40]\n0000000000101160  ldur x3,[x29, #-0x30]\n0000000000101164  bl 0x00101330\n0000000000101168  ldr x9,[sp, #0x8]\n000000000010116c  ldr x10,[sp, #0x38]\n0000000000101170  mov w8,#0x25\n... (31 more)\n\"];\n  block_001011f0 [label=\"001011f0\n00000000001011f0  ldr x10,[sp, #0x38]\n00000000001011f4  ldr x9,[sp, #0x50]\n00000000001011f8  ldr w8,[sp, #0x44]\n00000000001011fc  stur x10,[x29, #-0x68]\n0000000000101200  mov x10,#-0x1\n0000000000101204  stur x10,[x29, #-0x70]\n0000000000101208  stur x9,[x29, #-0x78]\n000000000010120c  str x8,[sp, #0x80]\n0000000000101210  ldur x0,[x29, #-0x68]\n0000000000101214  ldur x1,[x29, #-0x78]\n0000000000101218  ldr x2,[sp, #0x80]\n000000000010121c  ldur x3,[x29, #-0x70]\n0000000000101220  bl 0x00101300\n0000000000101224  ldr x28,[sp, #0x110]\n0000000000101228  ldp x29,x30,[sp, #0x100]\n000000000010122c  add sp,sp,#0x120\n0000000000101230  ret\n\", style=filled, fillcolor=lightyellow];\n\n  block_00100fd8 -> block_00101068;\n  block_00100fd8 -> block_00101024;\n  block_00101024 -> block_00101028;\n  block_00101028 -> block_00101068;\n  block_00101068 -> block_001010a8;\n  block_001010a8 -> block_00101118;\n  block_001010a8 -> block_001010bc;\n  block_001010bc -> block_001010c0;\n  block_001010c0 -> block_00101104;\n  block_001010c0 -> block_001010d8;\n  block_001010d8 -> block_001010dc;\n  block_001010dc -> block_00101100;\n  block_001010dc -> block_001010f0;\n  block_001010f0 -> block_001010f4;\n  block_001010f4 -> block_00101100;\n  block_00101100 -> block_00101104;\n  block_00101104 -> block_00101108;\n  block_00101108 -> block_001010a8;\n  block_00101118 -> block_001011f0;\n  block_00101118 -> block_00101120;\n  block_00101120 -> block_00101124;\n  block_00101124 -> block_001011f0;\n}\n"},{"function_name":"__memcpy_chk_00106030","cfg_json":{"functionName":"__memcpy_chk","entryAddress":"00106030","totalBlocks":0,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[]},"cfg_dot":"digraph __memcpy_chk {\n  graph [label=\"CFG: __memcpy_chk @ 00106030\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n\n}\n"},{"function_name":"FUN_00100c2c","cfg_json":{"functionName":"FUN_00100c2c","entryAddress":"00100c2c","totalBlocks":3,"totalEdges":2,"isThunk":false,"isExternal":false,"nodes":[{"id":"00100c2c","startAddress":"00100c2c","endAddress":"00100c33","size":8,"instructions":["0000000000100c2c  bti c","0000000000100c30  cbz x0,0x00100c3c"],"successors":["00100c3c","00100c34"],"predecessors":[],"blockType":"CONDITIONAL_JUMP"},{"id":"00100c34","startAddress":"00100c34","endAddress":"00100c3b","size":8,"instructions":["0000000000100c34  mov x16,x0","0000000000100c38  br x16"],"successors":[],"predecessors":["00100c2c"],"blockType":"FALL_THROUGH"},{"id":"00100c3c","startAddress":"00100c3c","endAddress":"00100c3f","size":4,"instructions":["0000000000100c3c  ret"],"successors":[],"predecessors":["00100c2c"],"blockType":"RETURN"}]},"cfg_dot":"digraph FUN_00100c2c {\n  graph [label=\"CFG: FUN_00100c2c @ 00100c2c\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00100c2c [label=\"00100c2c\n0000000000100c2c  bti c\n0000000000100c30  cbz x0,0x00100c3c\n\", style=filled, fillcolor=lightblue];\n  block_00100c34 [label=\"00100c34\n0000000000100c34  mov x16,x0\n0000000000100c38  br x16\n\", style=filled, fillcolor=lightyellow];\n  block_00100c3c [label=\"00100c3c\n0000000000100c3c  ret\n\", style=filled, fillcolor=lightyellow];\n\n  block_00100c2c -> block_00100c3c;\n  block_00100c2c -> block_00100c34;\n}\n"},{"function_name":"SetByteArrayRegion_00101320","cfg_json":{"functionName":"SetByteArrayRegion","entryAddress":"00101320","totalBlocks":1,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[{"id":"00101320","startAddress":"00101320","endAddress":"0010132f","size":16,"instructions":["0000000000101320  adrp x16,0x102000","0000000000101324  ldr x17,[x16, #0x590]","0000000000101328  add x16,x16,#0x590","000000000010132c  br x17"],"successors":[],"predecessors":[],"blockType":"ENTRY"}]},"cfg_dot":"digraph SetByteArrayRegion {\n  graph [label=\"CFG: SetByteArrayRegion @ 00101320\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00101320 [label=\"00101320\n0000000000101320  adrp x16,0x102000\n0000000000101324  ldr x17,[x16, #0x590]\n0000000000101328  add x16,x16,#0x590\n000000000010132c  br x17\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"_FINI_1","cfg_json":{"functionName":"_FINI_1","entryAddress":"00100c0c","totalBlocks":1,"totalEdges":0,"isThunk":false,"isExternal":false,"nodes":[{"id":"00100c0c","startAddress":"00100c0c","endAddress":"00100c1b","size":16,"instructions":["0000000000100c0c  bti c","0000000000100c10  adrp x0,0x102000","0000000000100c14  add x0,x0,#0x350","0000000000100c18  b 0x00101290"],"successors":[],"predecessors":[],"blockType":"UNCONDITIONAL_JUMP"}]},"cfg_dot":"digraph _FINI_1 {\n  graph [label=\"CFG: _FINI_1 @ 00100c0c\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00100c0c [label=\"00100c0c\n0000000000100c0c  bti c\n0000000000100c10  adrp x0,0x102000\n0000000000100c14  add x0,x0,#0x350\n0000000000100c18  b 0x00101290\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage","cfg_json":{"functionName":"Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage","entryAddress":"00100ea4","totalBlocks":18,"totalEdges":22,"isThunk":false,"isExternal":false,"nodes":[{"id":"00100ea4","startAddress":"00100ea4","endAddress":"00100edf","size":60,"instructions":["0000000000100ea4  sub sp,sp,#0x70","0000000000100ea8  stp x29,x30,[sp, #0x60]","0000000000100eac  add x29,sp,#0x60","0000000000100eb0  stur x0,[x29, #-0x28]","0000000000100eb4  str x1,[sp, #0x30]","0000000000100eb8  str x2,[sp, #0x28]","0000000000100ebc  ldur x0,[x29, #-0x28]","0000000000100ec0  ldr x1,[sp, #0x28]","0000000000100ec4  mov x2,xzr","0000000000100ec8  bl 0x001012d0","0000000000100ecc  str x0,[sp, #0x20]","0000000000100ed0  adrp x8,0x102000","0000000000100ed4  ldr x8,[x8, #0x520]","0000000000100ed8  ldr w8,[x8]","0000000000100edc  cbnz w8,0x00100f28"],"successors":["00100f28","00100ee0"],"predecessors":[],"blockType":"CONDITIONAL_JUMP"},{"id":"00100ee0","startAddress":"00100ee0","endAddress":"00100ee3","size":4,"instructions":["0000000000100ee0  b 0x00100ee4"],"successors":["00100ee4"],"predecessors":["00100ea4"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100ee4","startAddress":"00100ee4","endAddress":"00100f27","size":68,"instructions":["0000000000100ee4  adrp x8,0x102000","0000000000100ee8  ldr x8,[x8, #0x518]","0000000000100eec  stur x8,[x29, #-0x8]","0000000000100ef0  mov x8,#0x1f40","0000000000100ef4  stur x8,[x29, #-0x10]","0000000000100ef8  stur wzr,[x29, #-0x14]","0000000000100efc  stur x8,[x29, #-0x20]","0000000000100f00  ldur x0,[x29, #-0x8]","0000000000100f04  ldur w1,[x29, #-0x14]","0000000000100f08  ldur x2,[x29, #-0x20]","0000000000100f0c  ldur x3,[x29, #-0x10]","0000000000100f10  bl 0x00101330","0000000000100f14  mov w8,#0x1","0000000000100f18  adrp x9,0x102000","0000000000100f1c  ldr x9,[x9, #0x520]","0000000000100f20  str w8,[x9]","0000000000100f24  b 0x00100f28"],"successors":["00100f28"],"predecessors":["00100ee0"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100f28","startAddress":"00100f28","endAddress":"00100f33","size":12,"instructions":["0000000000100f28  str xzr,[sp, #0x18]","0000000000100f2c  str wzr,[sp, #0x14]","0000000000100f30  b 0x00100f34"],"successors":["00100f34"],"predecessors":["00100ea4","00100ee4"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100f34","startAddress":"00100f34","endAddress":"00100f4b","size":24,"instructions":["0000000000100f34  ldr w8,[sp, #0x14]","0000000000100f38  adrp x9,0x102000","0000000000100f3c  ldr x9,[x9, #0x510]","0000000000100f40  ldr w9,[x9]","0000000000100f44  subs w8,w8,w9","0000000000100f48  b.cs 0x00100fac"],"successors":["00100fac","00100f4c"],"predecessors":["00100f28","00100f9c"],"blockType":"CONDITIONAL_JUMP"},{"id":"00100f4c","startAddress":"00100f4c","endAddress":"00100f4f","size":4,"instructions":["0000000000100f4c  b 0x00100f50"],"successors":["00100f50"],"predecessors":["00100f34"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100f50","startAddress":"00100f50","endAddress":"00100f6b","size":28,"instructions":["0000000000100f50  ldrsw x9,[sp, #0x14]","0000000000100f54  adrp x8,0x102000","0000000000100f58  ldr x8,[x8, #0x518]","0000000000100f5c  ldr x8,[x8, x9, LSL #0x3]","0000000000100f60  str x8,[sp, #0x8]","0000000000100f64  ldr x8,[sp, #0x8]","0000000000100f68  cbz x8,0x00100f98"],"successors":["00100f98","00100f6c"],"predecessors":["00100f4c"],"blockType":"CONDITIONAL_JUMP"},{"id":"00100f6c","startAddress":"00100f6c","endAddress":"00100f6f","size":4,"instructions":["0000000000100f6c  b 0x00100f70"],"successors":["00100f70"],"predecessors":["00100f50"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100f70","startAddress":"00100f70","endAddress":"00100f83","size":20,"instructions":["0000000000100f70  ldr x8,[sp, #0x8]","0000000000100f74  add x0,x8,#0x810","0000000000100f78  ldr x1,[sp, #0x20]","0000000000100f7c  bl 0x001012e0","0000000000100f80  cbnz w0,0x00100f94"],"successors":["00100f94","00100f84"],"predecessors":["00100f6c"],"blockType":"CONDITIONAL_JUMP"},{"id":"00100f84","startAddress":"00100f84","endAddress":"00100f87","size":4,"instructions":["0000000000100f84  b 0x00100f88"],"successors":["00100f88"],"predecessors":["00100f70"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100f88","startAddress":"00100f88","endAddress":"00100f93","size":12,"instructions":["0000000000100f88  ldr x8,[sp, #0x8]","0000000000100f8c  str x8,[sp, #0x18]","0000000000100f90  b 0x00100f94"],"successors":["00100f94"],"predecessors":["00100f84"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100f94","startAddress":"00100f94","endAddress":"00100f97","size":4,"instructions":["0000000000100f94  b 0x00100f98"],"successors":["00100f98"],"predecessors":["00100f70","00100f88"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100f98","startAddress":"00100f98","endAddress":"00100f9b","size":4,"instructions":["0000000000100f98  b 0x00100f9c"],"successors":["00100f9c"],"predecessors":["00100f50","00100f94"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100f9c","startAddress":"00100f9c","endAddress":"00100fab","size":16,"instructions":["0000000000100f9c  ldr w8,[sp, #0x14]","0000000000100fa0  add w8,w8,#0x1","0000000000100fa4  str w8,[sp, #0x14]","0000000000100fa8  b 0x00100f34"],"successors":["00100f34"],"predecessors":["00100f98"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100fac","startAddress":"00100fac","endAddress":"00100fb3","size":8,"instructions":["0000000000100fac  ldr x8,[sp, #0x18]","0000000000100fb0  cbz x8,0x00100fcc"],"successors":["00100fcc","00100fb4"],"predecessors":["00100f34"],"blockType":"CONDITIONAL_JUMP"},{"id":"00100fb4","startAddress":"00100fb4","endAddress":"00100fb7","size":4,"instructions":["0000000000100fb4  b 0x00100fb8"],"successors":["00100fb8"],"predecessors":["00100fac"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100fb8","startAddress":"00100fb8","endAddress":"00100fcb","size":20,"instructions":["0000000000100fb8  ldr x8,[sp, #0x18]","0000000000100fbc  ldr x8,[x8, #0x808]","0000000000100fc0  ldr x0,[sp, #0x18]","0000000000100fc4  blr x8","0000000000100fc8  b 0x00100fcc"],"successors":["00100fcc"],"predecessors":["00100fb4"],"blockType":"UNCONDITIONAL_JUMP"},{"id":"00100fcc","startAddress":"00100fcc","endAddress":"00100fd7","size":12,"instructions":["0000000000100fcc  ldp x29,x30,[sp, #0x60]","0000000000100fd0  add sp,sp,#0x70","0000000000100fd4  ret"],"successors":[],"predecessors":["00100fac","00100fb8"],"blockType":"RETURN"}]},"cfg_dot":"digraph Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage {\n  graph [label=\"CFG: Java_com_mobilehackinglab_pwnchat_utils_EncodedDataUrlUtil_delImage @ 00100ea4\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00100ea4 [label=\"00100ea4\n0000000000100ea4  sub sp,sp,#0x70\n0000000000100ea8  stp x29,x30,[sp, #0x60]\n0000000000100eac  add x29,sp,#0x60\n0000000000100eb0  stur x0,[x29, #-0x28]\n0000000000100eb4  str x1,[sp, #0x30]\n0000000000100eb8  str x2,[sp, #0x28]\n0000000000100ebc  ldur x0,[x29, #-0x28]\n0000000000100ec0  ldr x1,[sp, #0x28]\n0000000000100ec4  mov x2,xzr\n0000000000100ec8  bl 0x001012d0\n0000000000100ecc  str x0,[sp, #0x20]\n0000000000100ed0  adrp x8,0x102000\n0000000000100ed4  ldr x8,[x8, #0x520]\n0000000000100ed8  ldr w8,[x8]\n0000000000100edc  cbnz w8,0x00100f28\n\", style=filled, fillcolor=lightblue];\n  block_00100ee0 [label=\"00100ee0\n0000000000100ee0  b 0x00100ee4\n\"];\n  block_00100ee4 [label=\"00100ee4\n0000000000100ee4  adrp x8,0x102000\n0000000000100ee8  ldr x8,[x8, #0x518]\n0000000000100eec  stur x8,[x29, #-0x8]\n0000000000100ef0  mov x8,#0x1f40\n0000000000100ef4  stur x8,[x29, #-0x10]\n0000000000100ef8  stur wzr,[x29, #-0x14]\n0000000000100efc  stur x8,[x29, #-0x20]\n0000000000100f00  ldur x0,[x29, #-0x8]\n0000000000100f04  ldur w1,[x29, #-0x14]\n0000000000100f08  ldur x2,[x29, #-0x20]\n0000000000100f0c  ldur x3,[x29, #-0x10]\n0000000000100f10  bl 0x00101330\n0000000000100f14  mov w8,#0x1\n0000000000100f18  adrp x9,0x102000\n0000000000100f1c  ldr x9,[x9, #0x520]\n0000000000100f20  str w8,[x9]\n0000000000100f24  b 0x00100f28\n\"];\n  block_00100f28 [label=\"00100f28\n0000000000100f28  str xzr,[sp, #0x18]\n0000000000100f2c  str wzr,[sp, #0x14]\n0000000000100f30  b 0x00100f34\n\"];\n  block_00100f34 [label=\"00100f34\n0000000000100f34  ldr w8,[sp, #0x14]\n0000000000100f38  adrp x9,0x102000\n0000000000100f3c  ldr x9,[x9, #0x510]\n0000000000100f40  ldr w9,[x9]\n0000000000100f44  subs w8,w8,w9\n0000000000100f48  b.cs 0x00100fac\n\"];\n  block_00100f4c [label=\"00100f4c\n0000000000100f4c  b 0x00100f50\n\"];\n  block_00100f50 [label=\"00100f50\n0000000000100f50  ldrsw x9,[sp, #0x14]\n0000000000100f54  adrp x8,0x102000\n0000000000100f58  ldr x8,[x8, #0x518]\n0000000000100f5c  ldr x8,[x8, x9, LSL #0x3]\n0000000000100f60  str x8,[sp, #0x8]\n0000000000100f64  ldr x8,[sp, #0x8]\n0000000000100f68  cbz x8,0x00100f98\n\"];\n  block_00100f6c [label=\"00100f6c\n0000000000100f6c  b 0x00100f70\n\"];\n  block_00100f70 [label=\"00100f70\n0000000000100f70  ldr x8,[sp, #0x8]\n0000000000100f74  add x0,x8,#0x810\n0000000000100f78  ldr x1,[sp, #0x20]\n0000000000100f7c  bl 0x001012e0\n0000000000100f80  cbnz w0,0x00100f94\n\"];\n  block_00100f84 [label=\"00100f84\n0000000000100f84  b 0x00100f88\n\"];\n  block_00100f88 [label=\"00100f88\n0000000000100f88  ldr x8,[sp, #0x8]\n0000000000100f8c  str x8,[sp, #0x18]\n0000000000100f90  b 0x00100f94\n\"];\n  block_00100f94 [label=\"00100f94\n0000000000100f94  b 0x00100f98\n\"];\n  block_00100f98 [label=\"00100f98\n0000000000100f98  b 0x00100f9c\n\"];\n  block_00100f9c [label=\"00100f9c\n0000000000100f9c  ldr w8,[sp, #0x14]\n0000000000100fa0  add w8,w8,#0x1\n0000000000100fa4  str w8,[sp, #0x14]\n0000000000100fa8  b 0x00100f34\n\"];\n  block_00100fac [label=\"00100fac\n0000000000100fac  ldr x8,[sp, #0x18]\n0000000000100fb0  cbz x8,0x00100fcc\n\"];\n  block_00100fb4 [label=\"00100fb4\n0000000000100fb4  b 0x00100fb8\n\"];\n  block_00100fb8 [label=\"00100fb8\n0000000000100fb8  ldr x8,[sp, #0x18]\n0000000000100fbc  ldr x8,[x8, #0x808]\n0000000000100fc0  ldr x0,[sp, #0x18]\n0000000000100fc4  blr x8\n0000000000100fc8  b 0x00100fcc\n\"];\n  block_00100fcc [label=\"00100fcc\n0000000000100fcc  ldp x29,x30,[sp, #0x60]\n0000000000100fd0  add sp,sp,#0x70\n0000000000100fd4  ret\n\", style=filled, fillcolor=lightyellow];\n\n  block_00100ea4 -> block_00100f28;\n  block_00100ea4 -> block_00100ee0;\n  block_00100ee0 -> block_00100ee4;\n  block_00100ee4 -> block_00100f28;\n  block_00100f28 -> block_00100f34;\n  block_00100f34 -> block_00100fac;\n  block_00100f34 -> block_00100f4c;\n  block_00100f4c -> block_00100f50;\n  block_00100f50 -> block_00100f98;\n  block_00100f50 -> block_00100f6c;\n  block_00100f6c -> block_00100f70;\n  block_00100f70 -> block_00100f94;\n  block_00100f70 -> block_00100f84;\n  block_00100f84 -> block_00100f88;\n  block_00100f88 -> block_00100f94;\n  block_00100f94 -> block_00100f98;\n  block_00100f98 -> block_00100f9c;\n  block_00100f9c -> block_00100f34;\n  block_00100fac -> block_00100fcc;\n  block_00100fac -> block_00100fb4;\n  block_00100fb4 -> block_00100fb8;\n  block_00100fb8 -> block_00100fcc;\n}\n"},{"function_name":"__cxa_atexit_00106008","cfg_json":{"functionName":"__cxa_atexit","entryAddress":"00106008","totalBlocks":0,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[]},"cfg_dot":"digraph __cxa_atexit {\n  graph [label=\"CFG: __cxa_atexit @ 00106008\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n\n}\n"},{"function_name":"GetByteArrayElements","cfg_json":{"functionName":"GetByteArrayElements","entryAddress":"00101234","totalBlocks":1,"totalEdges":0,"isThunk":false,"isExternal":false,"nodes":[{"id":"00101234","startAddress":"00101234","endAddress":"0010126f","size":60,"instructions":["0000000000101234  sub sp,sp,#0x30","0000000000101238  stp x29,x30,[sp, #0x20]","000000000010123c  add x29,sp,#0x20","0000000000101240  stur x0,[x29, #-0x8]","0000000000101244  str x1,[sp, #0x10]","0000000000101248  str x2,[sp, #0x8]","000000000010124c  ldur x0,[x29, #-0x8]","0000000000101250  ldr x8,[x0]","0000000000101254  ldr x8,[x8, #0x5c0]","0000000000101258  ldr x1,[sp, #0x10]","000000000010125c  ldr x2,[sp, #0x8]","0000000000101260  blr x8","0000000000101264  ldp x29,x30,[sp, #0x20]","0000000000101268  add sp,sp,#0x30","000000000010126c  ret"],"successors":[],"predecessors":[],"blockType":"RETURN"}]},"cfg_dot":"digraph GetByteArrayElements {\n  graph [label=\"CFG: GetByteArrayElements @ 00101234\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00101234 [label=\"00101234\n0000000000101234  sub sp,sp,#0x30\n0000000000101238  stp x29,x30,[sp, #0x20]\n000000000010123c  add x29,sp,#0x20\n0000000000101240  stur x0,[x29, #-0x8]\n0000000000101244  str x1,[sp, #0x10]\n0000000000101248  str x2,[sp, #0x8]\n000000000010124c  ldur x0,[x29, #-0x8]\n0000000000101250  ldr x8,[x0]\n0000000000101254  ldr x8,[x8, #0x5c0]\n0000000000101258  ldr x1,[sp, #0x10]\n000000000010125c  ldr x2,[sp, #0x8]\n0000000000101260  blr x8\n0000000000101264  ldp x29,x30,[sp, #0x20]\n0000000000101268  add sp,sp,#0x30\n000000000010126c  ret\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"malloc","cfg_json":{"functionName":"malloc","entryAddress":"001012f0","totalBlocks":1,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[{"id":"001012f0","startAddress":"001012f0","endAddress":"001012ff","size":16,"instructions":["00000000001012f0  adrp x16,0x102000","00000000001012f4  ldr x17,[x16, #0x578]","00000000001012f8  add x16,x16,#0x578","00000000001012fc  br x17"],"successors":[],"predecessors":[],"blockType":"ENTRY"}]},"cfg_dot":"digraph malloc {\n  graph [label=\"CFG: malloc @ 001012f0\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_001012f0 [label=\"001012f0\n00000000001012f0  adrp x16,0x102000\n00000000001012f4  ldr x17,[x16, #0x578]\n00000000001012f8  add x16,x16,#0x578\n00000000001012fc  br x17\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"GetStringUTFChars","cfg_json":{"functionName":"GetStringUTFChars","entryAddress":"00100de8","totalBlocks":1,"totalEdges":0,"isThunk":false,"isExternal":false,"nodes":[{"id":"00100de8","startAddress":"00100de8","endAddress":"00100e23","size":60,"instructions":["0000000000100de8  sub sp,sp,#0x30","0000000000100dec  stp x29,x30,[sp, #0x20]","0000000000100df0  add x29,sp,#0x20","0000000000100df4  stur x0,[x29, #-0x8]","0000000000100df8  str x1,[sp, #0x10]","0000000000100dfc  str x2,[sp, #0x8]","0000000000100e00  ldur x0,[x29, #-0x8]","0000000000100e04  ldr x8,[x0]","0000000000100e08  ldr x8,[x8, #0x548]","0000000000100e0c  ldr x1,[sp, #0x10]","0000000000100e10  ldr x2,[sp, #0x8]","0000000000100e14  blr x8","0000000000100e18  ldp x29,x30,[sp, #0x20]","0000000000100e1c  add sp,sp,#0x30","0000000000100e20  ret"],"successors":[],"predecessors":[],"blockType":"RETURN"}]},"cfg_dot":"digraph GetStringUTFChars {\n  graph [label=\"CFG: GetStringUTFChars @ 00100de8\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00100de8 [label=\"00100de8\n0000000000100de8  sub sp,sp,#0x30\n0000000000100dec  stp x29,x30,[sp, #0x20]\n0000000000100df0  add x29,sp,#0x20\n0000000000100df4  stur x0,[x29, #-0x8]\n0000000000100df8  str x1,[sp, #0x10]\n0000000000100dfc  str x2,[sp, #0x8]\n0000000000100e00  ldur x0,[x29, #-0x8]\n0000000000100e04  ldr x8,[x0]\n0000000000100e08  ldr x8,[x8, #0x548]\n0000000000100e0c  ldr x1,[sp, #0x10]\n0000000000100e10  ldr x2,[sp, #0x8]\n0000000000100e14  blr x8\n0000000000100e18  ldp x29,x30,[sp, #0x20]\n0000000000100e1c  add sp,sp,#0x30\n0000000000100e20  ret\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"GetStringUTFChars_001012d0","cfg_json":{"functionName":"GetStringUTFChars","entryAddress":"001012d0","totalBlocks":1,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[{"id":"001012d0","startAddress":"001012d0","endAddress":"001012df","size":16,"instructions":["00000000001012d0  adrp x16,0x102000","00000000001012d4  ldr x17,[x16, #0x568]","00000000001012d8  add x16,x16,#0x568","00000000001012dc  br x17"],"successors":[],"predecessors":[],"blockType":"ENTRY"}]},"cfg_dot":"digraph GetStringUTFChars {\n  graph [label=\"CFG: GetStringUTFChars @ 001012d0\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_001012d0 [label=\"001012d0\n00000000001012d0  adrp x16,0x102000\n00000000001012d4  ldr x17,[x16, #0x568]\n00000000001012d8  add x16,x16,#0x568\n00000000001012dc  br x17\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"_FINI_0","cfg_json":{"functionName":"_FINI_0","entryAddress":"00100c24","totalBlocks":1,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[{"id":"00100c24","startAddress":"00100c24","endAddress":"00100c2b","size":8,"instructions":["0000000000100c24  bti c","0000000000100c28  b 0x00100c1c"],"successors":[],"predecessors":[],"blockType":"UNCONDITIONAL_JUMP"}]},"cfg_dot":"digraph _FINI_0 {\n  graph [label=\"CFG: _FINI_0 @ 00100c24\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00100c24 [label=\"00100c24\n0000000000100c24  bti c\n0000000000100c28  b 0x00100c1c\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"__memset_chk_00106038","cfg_json":{"functionName":"__memset_chk","entryAddress":"00106038","totalBlocks":0,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[]},"cfg_dot":"digraph __memset_chk {\n  graph [label=\"CFG: __memset_chk @ 00106038\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n\n}\n"},{"function_name":"__register_atfork_00106010","cfg_json":{"functionName":"__register_atfork","entryAddress":"00106010","totalBlocks":0,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[]},"cfg_dot":"digraph __register_atfork {\n  graph [label=\"CFG: __register_atfork @ 00106010\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n\n}\n"},{"function_name":"NewByteArray","cfg_json":{"functionName":"NewByteArray","entryAddress":"00100e24","totalBlocks":1,"totalEdges":0,"isThunk":false,"isExternal":false,"nodes":[{"id":"00100e24","startAddress":"00100e24","endAddress":"00100e57","size":52,"instructions":["0000000000100e24  sub sp,sp,#0x20","0000000000100e28  stp x29,x30,[sp, #0x10]","0000000000100e2c  add x29,sp,#0x10","0000000000100e30  str x0,[sp, #0x8]","0000000000100e34  str w1,[sp, #0x4]","0000000000100e38  ldr x0,[sp, #0x8]","0000000000100e3c  ldr x8,[x0]","0000000000100e40  ldr x8,[x8, #0x580]","0000000000100e44  ldr w1,[sp, #0x4]","0000000000100e48  blr x8","0000000000100e4c  ldp x29,x30,[sp, #0x10]","0000000000100e50  add sp,sp,#0x20","0000000000100e54  ret"],"successors":[],"predecessors":[],"blockType":"RETURN"}]},"cfg_dot":"digraph NewByteArray {\n  graph [label=\"CFG: NewByteArray @ 00100e24\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00100e24 [label=\"00100e24\n0000000000100e24  sub sp,sp,#0x20\n0000000000100e28  stp x29,x30,[sp, #0x10]\n0000000000100e2c  add x29,sp,#0x10\n0000000000100e30  str x0,[sp, #0x8]\n0000000000100e34  str w1,[sp, #0x4]\n0000000000100e38  ldr x0,[sp, #0x8]\n0000000000100e3c  ldr x8,[x0]\n0000000000100e40  ldr x8,[x8, #0x580]\n0000000000100e44  ldr w1,[sp, #0x4]\n0000000000100e48  blr x8\n0000000000100e4c  ldp x29,x30,[sp, #0x10]\n0000000000100e50  add sp,sp,#0x20\n0000000000100e54  ret\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"__register_atfork","cfg_json":{"functionName":"__register_atfork","entryAddress":"001012b0","totalBlocks":1,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[{"id":"001012b0","startAddress":"001012b0","endAddress":"001012bf","size":16,"instructions":["00000000001012b0  adrp x16,0x102000","00000000001012b4  ldr x17,[x16, #0x558]","00000000001012b8  add x16,x16,#0x558","00000000001012bc  br x17"],"successors":[],"predecessors":[],"blockType":"ENTRY"}]},"cfg_dot":"digraph __register_atfork {\n  graph [label=\"CFG: __register_atfork @ 001012b0\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_001012b0 [label=\"001012b0\n00000000001012b0  adrp x16,0x102000\n00000000001012b4  ldr x17,[x16, #0x558]\n00000000001012b8  add x16,x16,#0x558\n00000000001012bc  br x17\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"remove","cfg_json":{"functionName":"remove","entryAddress":"00106040","totalBlocks":0,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[]},"cfg_dot":"digraph remove {\n  graph [label=\"CFG: remove @ 00106040\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n\n}\n"},{"function_name":"FUN_00100c5c","cfg_json":{"functionName":"FUN_00100c5c","entryAddress":"00100c5c","totalBlocks":1,"totalEdges":0,"isThunk":false,"isExternal":false,"nodes":[{"id":"00100c5c","startAddress":"00100c5c","endAddress":"00100c6b","size":16,"instructions":["0000000000100c5c  bti c","0000000000100c60  adrp x3,0x102000","0000000000100c64  add x3,x3,#0x350","0000000000100c68  b 0x001012b0"],"successors":[],"predecessors":[],"blockType":"UNCONDITIONAL_JUMP"}]},"cfg_dot":"digraph FUN_00100c5c {\n  graph [label=\"CFG: FUN_00100c5c @ 00100c5c\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00100c5c [label=\"00100c5c\n0000000000100c5c  bti c\n0000000000100c60  adrp x3,0x102000\n0000000000100c64  add x3,x3,#0x350\n0000000000100c68  b 0x001012b0\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"__cxa_atexit","cfg_json":{"functionName":"__cxa_atexit","entryAddress":"001012a0","totalBlocks":1,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[{"id":"001012a0","startAddress":"001012a0","endAddress":"001012af","size":16,"instructions":["00000000001012a0  adrp x16,0x102000","00000000001012a4  ldr x17,[x16, #0x550]","00000000001012a8  add x16,x16,#0x550","00000000001012ac  br x17"],"successors":[],"predecessors":[],"blockType":"ENTRY"}]},"cfg_dot":"digraph __cxa_atexit {\n  graph [label=\"CFG: __cxa_atexit @ 001012a0\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_001012a0 [label=\"001012a0\n00000000001012a0  adrp x16,0x102000\n00000000001012a4  ldr x17,[x16, #0x550]\n00000000001012a8  add x16,x16,#0x550\n00000000001012ac  br x17\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"NewByteArray_00101310","cfg_json":{"functionName":"NewByteArray","entryAddress":"00101310","totalBlocks":1,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[{"id":"00101310","startAddress":"00101310","endAddress":"0010131f","size":16,"instructions":["0000000000101310  adrp x16,0x102000","0000000000101314  ldr x17,[x16, #0x588]","0000000000101318  add x16,x16,#0x588","000000000010131c  br x17"],"successors":[],"predecessors":[],"blockType":"ENTRY"}]},"cfg_dot":"digraph NewByteArray {\n  graph [label=\"CFG: NewByteArray @ 00101310\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00101310 [label=\"00101310\n0000000000101310  adrp x16,0x102000\n0000000000101314  ldr x17,[x16, #0x588]\n0000000000101318  add x16,x16,#0x588\n000000000010131c  br x17\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"malloc_00106028","cfg_json":{"functionName":"malloc","entryAddress":"00106028","totalBlocks":0,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[]},"cfg_dot":"digraph malloc {\n  graph [label=\"CFG: malloc @ 00106028\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n\n}\n"},{"function_name":"GetByteArrayElements_00101340","cfg_json":{"functionName":"GetByteArrayElements","entryAddress":"00101340","totalBlocks":1,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[{"id":"00101340","startAddress":"00101340","endAddress":"0010134f","size":16,"instructions":["0000000000101340  adrp x16,0x102000","0000000000101344  ldr x17,[x16, #0x5a0]","0000000000101348  add x16,x16,#0x5a0","000000000010134c  br x17"],"successors":[],"predecessors":[],"blockType":"ENTRY"}]},"cfg_dot":"digraph GetByteArrayElements {\n  graph [label=\"CFG: GetByteArrayElements @ 00101340\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00101340 [label=\"00101340\n0000000000101340  adrp x16,0x102000\n0000000000101344  ldr x17,[x16, #0x5a0]\n0000000000101348  add x16,x16,#0x5a0\n000000000010134c  br x17\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"__memset_chk","cfg_json":{"functionName":"__memset_chk","entryAddress":"00101330","totalBlocks":1,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[{"id":"00101330","startAddress":"00101330","endAddress":"0010133f","size":16,"instructions":["0000000000101330  adrp x16,0x102000","0000000000101334  ldr x17,[x16, #0x598]","0000000000101338  add x16,x16,#0x598","000000000010133c  br x17"],"successors":[],"predecessors":[],"blockType":"ENTRY"}]},"cfg_dot":"digraph __memset_chk {\n  graph [label=\"CFG: __memset_chk @ 00101330\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00101330 [label=\"00101330\n0000000000101330  adrp x16,0x102000\n0000000000101334  ldr x17,[x16, #0x598]\n0000000000101338  add x16,x16,#0x598\n000000000010133c  br x17\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"delete_img","cfg_json":{"functionName":"delete_img","entryAddress":"00100c6c","totalBlocks":1,"totalEdges":0,"isThunk":false,"isExternal":false,"nodes":[{"id":"00100c6c","startAddress":"00100c6c","endAddress":"00100c9f","size":52,"instructions":["0000000000100c6c  sub sp,sp,#0x20","0000000000100c70  stp x29,x30,[sp, #0x10]","0000000000100c74  add x29,sp,#0x10","0000000000100c78  str x0,[sp, #0x8]","0000000000100c7c  mov w0,#0x2","0000000000100c80  adrp x1,0x100000","0000000000100c84  add x1,x1,#0x9c8","0000000000100c88  adrp x2,0x100000","0000000000100c8c  add x2,x2,#0x9d5","0000000000100c90  bl 0x001012c0","0000000000100c94  ldp x29,x30,[sp, #0x10]","0000000000100c98  add sp,sp,#0x20","0000000000100c9c  ret"],"successors":[],"predecessors":[],"blockType":"RETURN"}]},"cfg_dot":"digraph delete_img {\n  graph [label=\"CFG: delete_img @ 00100c6c\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00100c6c [label=\"00100c6c\n0000000000100c6c  sub sp,sp,#0x20\n0000000000100c70  stp x29,x30,[sp, #0x10]\n0000000000100c74  add x29,sp,#0x10\n0000000000100c78  str x0,[sp, #0x8]\n0000000000100c7c  mov w0,#0x2\n0000000000100c80  adrp x1,0x100000\n0000000000100c84  add x1,x1,#0x9c8\n0000000000100c88  adrp x2,0x100000\n0000000000100c8c  add x2,x2,#0x9d5\n0000000000100c90  bl 0x001012c0\n0000000000100c94  ldp x29,x30,[sp, #0x10]\n0000000000100c98  add sp,sp,#0x20\n0000000000100c9c  ret\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"__memcpy_chk","cfg_json":{"functionName":"__memcpy_chk","entryAddress":"00101300","totalBlocks":1,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[{"id":"00101300","startAddress":"00101300","endAddress":"0010130f","size":16,"instructions":["0000000000101300  adrp x16,0x102000","0000000000101304  ldr x17,[x16, #0x580]","0000000000101308  add x16,x16,#0x580","000000000010130c  br x17"],"successors":[],"predecessors":[],"blockType":"ENTRY"}]},"cfg_dot":"digraph __memcpy_chk {\n  graph [label=\"CFG: __memcpy_chk @ 00101300\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00101300 [label=\"00101300\n0000000000101300  adrp x16,0x102000\n0000000000101304  ldr x17,[x16, #0x580]\n0000000000101308  add x16,x16,#0x580\n000000000010130c  br x17\n\", style=filled, fillcolor=lightblue];\n\n}\n"},{"function_name":"strcmp_00106020","cfg_json":{"functionName":"strcmp","entryAddress":"00106020","totalBlocks":0,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[]},"cfg_dot":"digraph strcmp {\n  graph [label=\"CFG: strcmp @ 00106020\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n\n}\n"},{"function_name":"__cxa_finalize","cfg_json":{"functionName":"__cxa_finalize","entryAddress":"00101290","totalBlocks":1,"totalEdges":0,"isThunk":true,"isExternal":false,"nodes":[{"id":"00101290","startAddress":"00101290","endAddress":"0010129f","size":16,"instructions":["0000000000101290  adrp x16,0x102000","0000000000101294  ldr x17,[x16, #0x548]","0000000000101298  add x16,x16,#0x548","000000000010129c  br x17"],"successors":[],"predecessors":[],"blockType":"ENTRY"}]},"cfg_dot":"digraph __cxa_finalize {\n  graph [label=\"CFG: __cxa_finalize @ 00101290\", fontsize=12];\n  node [shape=box, fontname=\"Courier\", fontsize=9];\n\n  block_00101290 [label=\"00101290\n0000000000101290  adrp x16,0x102000\n0000000000101294  ldr x17,[x16, #0x548]\n0000000000101298  add x16,x16,#0x548\n000000000010129c  br x17\n\", style=filled, fillcolor=lightblue];\n\n}\n"}],"decompiled_at":{"$date":"2026-06-17T20:02:35.292Z"}},"sha256":"71d97cd679947c7121f62cfc87268b79de2e03336adfe24393f78665a9ac2aad"}]