Git Product home page Git Product logo

mambo's People

Contributors

alirazeen avatar alphadaze avatar guillermocallaghan avatar igwod avatar jkressel avatar lgeek avatar manouchehri avatar mskordal avatar umarcor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mambo's Issues

arm system

Hey,
I figured that you have "arm system" in your prerequisites,
consider to add this to your readme.

How to quickly install an ARM virtual machine

# pip3 install arm_now
$ arm_now start armv5-eabi
Welcome to arm_now
buildroot login: root
# uname -m
armv7l

source: https://github.com/nongiach/arm_now

Inline hash lookup routine should preserve CPSR

There are some internal routines inserted by the compiler (GCC, in my case), that require the CPSR to be kept intact across function calls. Consider the following two routines:

0003f290 <__aeabi_cdcmpeq>:
   3f290:       e92d4001        push    {r0, lr}
   3f294:       ebffffd4        bl      3f1ec <__cmpdf2>
   3f298:       e3500000        cmp     r0, #0
   3f29c:       43700000        cmnmi   r0, #0
   3f2a0:       e8bd8001        pop     {r0, pc}

0003f2a4 <__aeabi_dcmpeq>:
   3f2a4:       e52de008        str     lr, [sp, #-8]!
   3f2a8:       ebfffff8        bl      3f290 <__aeabi_cdcmpeq>
   3f2ac:       03a00001        moveq   r0, #1
   3f2b0:       13a00000        movne   r0, #0
   3f2b4:       e49df008        ldr     pc, [sp], #8

In this example, __aeabi_dcmpeq calls __aeabi_cdcmpeq. After __aeabi_cdcmpeq returns, __aeabi_dcmpeq executes a couple of conditional mov statements. These conditional statements are based on the CPSR flags as updated by the cmp and cmn statements in __aeabi_cdcmpeq.

If MAMBO is compiled with the DBM_D_INLINE_HASH flag, it will insert a hash lookup routine when it counters the pop {r0, pc} statement in 3f2a0. Since the hash lookup implementation uses cmp, too, the CPSR flags are clobbered and the rest of the execution becomes faulty when __aeabi_cdcmpeq returns.

I am using an older version of MAMBO (before commit 9b09670). But I suspect this will be an issue in the current version, too.

Error compiling - cannot find pie/pie-arm

I run into an issue when compiling mambo. It cannot find pie/pie-arm-decoder.h. indeed,the file does not exist:

d@deb:~/mambo$ ls pie/pie-arm-decoder.h
ls: cannot access 'pie/pie-arm-decoder.h': No such file or directory

My full steps to compile:

git clone --recurse-submodules https://github.com/beehive-lab/mambo.git
export LDFLAGS=-L/home/d/armv7-unknown-linux-gnueabihf/usr/lib
export PATH=/home/d/armv7-unknown-linux-gnueabihf/bin/:$PATH
export CC=armv7-unknown-linux-gnueabihf-gcc

Running make

d@deb:~/mambo$ make
MAMBO: detected architecture "armv7"
PIE: detected architecture "armv7"
make --no-print-directory ARCH=arm pie
make[3]: Nothing to be done for 'pie'.
make --no-print-directory ARCH=thumb pie
make[3]: Nothing to be done for 'pie'.
armv7-unknown-linux-gnueabihf-gcc -D_GNU_SOURCE -g -std=gnu99 -O2 -march=armv7-a -mfpu=neon -c -o elf_loader/elf_loader.o elf_loader/elf_loader.c
In file included from elf_loader/elf_loader.c:32:0:
elf_loader/../dbm.h:30:33: fatal error: pie/pie-arm-decoder.h: No such file or directory
 #include "pie/pie-arm-decoder.h"
                                 ^
compilation terminated.
make[1]: *** [makefile:61: elf_loader/elf_loader.o] Error 1
make: *** [makefile:55: all] Error 2

I saw in another post to try this, but it still did not work:

d@deb:~/mambo$ git submodule init
d@deb:~/mambo$ git submodule update
d@deb:~/mambo$ ls pie/pie-arm-decoder.h
ls: cannot access 'pie/pie-arm-decoder.h': No such file or directory

SIGSEGV on up-to-date Arch Linux Arm systems on thread exit

$ ./dbm ./test/signals
Simple signal handler: success
Signal after flushing the code cache: success
Test sigsuspend: success
Test against race conditions between code generation and signals: success
Test for missed signals: Segmentation fault (core dumped)
Thread 2 "dbm" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fb555b080 (LWP 7276)]
0x00000000a801249c in uw_frame_state_for ()
(gdb) info thread
  Id   Target Id         Frame 
  1    Thread 0xa80b1000 (LWP 7509) "dbm" signal_trampoline () at util.S:139
* 2    Thread 0x7fb555b080 (LWP 7522) "dbm" (Exiting) 0x00000000a80156f4 in uw_frame_state_for ()
(gdb) back
#0  0x00000000a80156f4 in uw_frame_state_for ()
#1  0x00000000a8016798 in _Unwind_ForcedUnwind_Phase2 ()
#2  0x00000000a8016e40 in _Unwind_ForcedUnwind ()
#3  0x00000000a8013110 in __pthread_unwind ()
#4  0x00000000a80111cc in pthread_exit ()
#5  0x00000000a8004e30 in syscall_handler_pre (syscall_no=93, args=0x7fb5280920, 
    next_inst=0x7fb5500e3c, thread_data=0x7fb31ad000) at syscalls.c:242
#6  0x0000007fb21ad1e8 in ?? ()
#7  0xf9401ba454ffffa1 in ?? ()

Who should handle the case when a plugin inserts too many instructions?

Suppose that before the scanner calls a plugin, the current block has at least MIN_FSPACE instructions. It is possible for the plugin to insert a large number of instructions, so much so that the instructions spill into the next block. When the plugin returns, arm_check_free_space will allocate a new block, insert a branch to the new block, and update the write pointer (write_p) to the new block. I suspect that there are a number of issues here:

  1. There are no checks in the emit or the helper functions to ensure that the plugin does not insert too many instructions.

  2. There isn't a way for the plugin developer to check what the limit is. That is, there isn't a field in mambo_context or a function that she can call to check if it's all right for her to insert an instruction.

  3. arm_check_free_space assumes that write_p still refers to an address within the current block. But it might well be the case that write_p is now an address in a new block because the instructions inserted by the plugin caused a spillover to the next block. In other words, write_p >= data_p, never mind the write_p + size >= data_p check.

I encountered this issue and I was wondering what the "correct" thing to do is. Clearly I can try to optimize my plugin so that it doesn't insert so many instructions :) But aside from that, is there a more general fix?

A hacky fix that I have now is to call arm_check_free_space with a custom size argument before the plugin is called. This could be made more general by allowing the developer to specify to Mambo that her plugin needs at least MIN_PLUGIN_FSPACE in the current block. But I'm not sure if this might break something else in Mambo.

Any suggestions?

The post-thread callback should be executed for all threads still active when the exit_group syscall is called

This would simplify writing instrumentation which maintains thread-private data collected at the end of execution. Execution of these threads must be stopped before delivering the callback to avoid race conditions. Execution cannot be stopped when arbitrary MAMBO code is executing, otherwise it might cause a deadlock if it holds any locks. Even better, execution should be stopped at safe points, when neither inline instrumentation, nor compiled plugin functions might be executing, to ensure that plugin data is in a consistent state. Reusing the signal delivery points is probably the easiest.

Handling "uncond_reg_arm" in traces

I have encountered the case where the trace scanner prints the message Unknown exit branch type for the branch type uncond_reg_arm. Do I only have to add it to the if and switch statement in create_trace? Is it as simple as commit 236010f or would I have to take into account something else?

Thank you for all the help, by the way!

Need help executing 32bit arm binaries on aarch64

according to this statement from the abstract of your paper it should be possible to achieve in this software:

We present MAMBO-X64, a dynamic binary translator for Linux which executes 32-bit ARM binaries using only the AArch64 instruction set.

My question is, what needs to be done in order to execute an armhf binary on an aarch64 only system using mambo? I can compile mamo on my aarch64 system but attempting to run an armhf binary with ./dbm path_to_binary just results in Error reading the ELF executable header: invalid binary class

for reference this is the elf header of the binary I am trying to execute: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV)

ISPASS 2023 - MAMBO for RISC-V

Recently saw there was paper published using MAMBO for RISC-V DBM! Are there any instructions for how to set this up to profile a RISC-V executable? I am having trouble getting this setup. Any instructions would be much appreciated! Thanks :)

elf_loader fails when trying to execute MAMBO with qemu

When trying to execute MAMBO (compiled for aarch64) in a x86_64 machine with qemu-user and qemu-user-binfmt, I get the following error with any of the test programs in subdir test:

$ ./dbm test/mmap_munmap
dbm: elf_loader/elf_loader.c:127: load_elf: Assertion `tmpmem != MAP_FAILED' failed.
qemu: uncaught target signal 6 (Aborted) - core dumped
Aborted (core dumped)

$ ./dbm test/mprotect_exec
dbm: elf_loader/elf_loader.c:127: load_elf: Assertion `tmpmem != MAP_FAILED' failed.
qemu: uncaught target signal 6 (Aborted) - core dumped
Aborted (core dumped)

$ ./dbm test/self_modifying
dbm: elf_loader/elf_loader.c:127: load_elf: Assertion `tmpmem != MAP_FAILED' failed.
qemu: uncaught target signal 6 (Aborted) - core dumped
Aborted (core dumped)

$ ./dbm test/signals
dbm: elf_loader/elf_loader.c:127: load_elf: Assertion `tmpmem != MAP_FAILED' failed.
qemu: uncaught target signal 6 (Aborted) - core dumped
Aborted (core dumped)

$ ./dbm test/load_store
dbm: elf_loader/elf_loader.c:127: load_elf: Assertion `tmpmem != MAP_FAILED' failed.
qemu: uncaught target signal 6 (Aborted) - core dumped
Aborted (core dumped)
$ file dbm
dbm: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), statically linked, for GNU/Linux 3.7.0, BuildID[sha1]=6fdc5668b8be289035afb34d6b94f8a2073a6f89, with debug_info, not stripped

$ file test/mmap_munmap
test/mmap_munmap: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), statically linked, for GNU/Linux 3.7.0, BuildID[sha1]=f455bb2d4e1611bda4d4208be72e372f78a9fabd, not stripped

$ file test/mprotect_exec
test/mprotect_exec: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), statically linked, for GNU/Linux 3.7.0, BuildID[sha1]=9e04f900f9c66b5a1d44ae05654c9ba28deda6ff, not stripped

$ file test/self_modifying
test/self_modifying: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), statically linked, for GNU/Linux 3.7.0, BuildID[sha1]=38e0550f60883f8c8629968321fb86f935a0ac76, with debug_info, not stripped

$ file test/signals
test/signals: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), statically linked, for GNU/Linux 3.7.0, BuildID[sha1]=26880b03cee6e95beb2ad95c3956b523a51a0a84, with debug_info, not stripped

$ file test/load_store
test/load_store: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), statically linked, for GNU/Linux 3.7.0, BuildID[sha1]=ec50e8372d12854f55cd56989062d16de12a295e, with debug_info, not stripped

If I copy the same binaries to an ARM machine, all of them work as expected.

I tried compiling MAMBO and the tests both natively in an ARM machine and cross-compiling them for aarch64 in a x86_64 host. The results are the same.

Moreover, when trying to run the tests without MAMBO, mmap_munmap produces the same error, but not the others:

$ ./test/mmap_munmap 
mmap_munmap: mmap_munmap.c:33: main: Assertion `alloc == MAP_FAILED' failed.
qemu: uncaught target signal 6 (Aborted) - core dumped
Aborted (core dumped)

$ ./test/mprotect_exec 
main()

$ ./test/self_modifying 
This should be printed
This should also be printed

$ ./test/signals 
Simple signal handler: success
Signal after flushing the code cache: success
Test sigsuspend: success
Test against race conditions between code generation and signals: success
Test for missed signals: success
Test signal handling in fragments containing CB(N)Z: success
Test signal handling in fragments containing TB(N)Z: success
Test handling of a synchronous SIGTRAP signal: success
Test handling of a synchronous SIGILL signal: success
Test receiving SIGILL when no handler is installed
qemu: uncaught target signal 4 (Illegal instruction) - core dumped
Illegal instruction (core dumped)

$ ./test/load_store 
start: a64
end: a64

@lgeek, any hint about how to debug this?

Rationale behind "while" in arm_inline_hash_lookup(...)

The arm_inline_hash_lookup routine has a while loop that spins if registers r0 and r1 are set in the register list: scanner_arm.c#L424. What is the rationale here? I assume the ultimate purpose is to ensure the pop does not clobber the values moved to r0 and r1during runtime. But if that was the intention, why not just change line 425 to arm_pop_regs(reglist & 0x7ffc)?

I ask because in some cases, during ARM block scanning, the scanner silently just fails. I tracked it down to that while loop, which spins on the instruction pop {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} (encoded ase8bd8ffe).

Is there any way to build Mambo as a Dynamic Linked Library?

I'm currently working with this project in order to produce a paper relative to an ARM Accelerator. Is there any ways to build it as a dynamic linked library? It works fine for the far I tested, but it takes much time to compile in my system. I'm using Arch Linux simulated in QEMU.

MAMBO fails to run on kernel 6.5.0

MAMBO cannot process ELF files with kernel version 6.5.0. Issue appears on latest builds of both Ubuntu 23.04 and 22.04.

System: aarch64 Ampere A1 running 64-bit Ubuntu 22.04 with kernel 6.5.0.

command:
./dbm /usr/bin/ls
Output:

Unhandled auxv entry type: 27

I have downgraded to 5.15 as a workaround for now. I have not tested more recent kernels however, they may work.

Unknown A64 instruction

It looks like the aarch64 instruction set not fully handled in Mambo. I got the following error when I run Mambo on an Android device.

$ ./dbm /system/bin/toybox ls

MAMBO: Unknown A64 instruction: 82 (0x78688269) at 0x7e31501dd8
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xb8280008) at 0x7e315007ec
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xb87f8269) at 0x7e314e6b38
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xb87f8289) at 0x7e314e09e8
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xb87f8269) at 0x7e314e0e10
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xf8ec0169) at 0x7e3146a374
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xb8681268) at 0x7e31502c64
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xb8680268) at 0x7e31502c24
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xb8688008) at 0x7e2d367abc
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0x78688269) at 0x7e2d374ff4
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xb8681268) at 0x7e2d376274
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xb87f8269) at 0x7e2d30fffc
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xb8f38100) at 0x7e2d317128
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xb8690108) at 0x7e2d2d6028
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xf8290100) at 0x7e2d2e1ba0
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xf83a0108) at 0x7e2d2df388
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xf8280128) at 0x7e2d2df3d8
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xf8280128) at 0x7e2d2d557c
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xf8280128) at 0x7e2d309a1c
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xb8290108) at 0x7e2d2e1b78
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0x78698269) at 0x7e2d3750c8
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xb8290108) at 0x7e2d2e1b8c
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xf8280128) at 0x7e2d2d5a04
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xf8280128) at 0x7e2d2e0128
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xf8290108) at 0x7e2d2e34c0
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xf8370108) at 0x7e2d2e34cc
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xf8390108) at 0x7e2d2e34e0
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xf82a0128) at 0x7e2d2e34e4
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xf8280128) at 0x7e2d30ac6c
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xb8e90108) at 0x7e2d14a7f8
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xb8280008) at 0x7e2d3733b0
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xf8280128) at 0x7e2d15a410
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0xf8e80128) at 0x7e2d15a428
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0x78698269) at 0x7e31501eac
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo


MAMBO: Unknown A64 instruction: 82 (0x78688269) at 0x7e2d374ff4
Copying it unmodified, but future problems are possible
Report crashes at https://github.com/beehive-lab/mambo

Could you add support for these instructions? Attachment is the binary I tested.
toybox.zip

Mambo on rv32

Is it planed or even WIP to support the Risc-V 32 bit ISA?

Unknown A64 instruction: 82

Hello.
I am trying to use Mambo in an AARCH64 processor (Kupeng 920) with CentOS 8 and Kernel X. After compiling the plugins/cachesim (with the makefile, I remove the static flag), I execute the application and get the following error:

Unknown A64 instruction: 82 at 0xffff8e8048cc (the address change between executions)

This error happens after a minor CentOS update (kernel version and some libraries). Do you have any idea of how to solve it?

Thank you

More information:

  • Processor: Kupeng 920 (TaiShan v110)
  • ISA: ARMv8.2-A
  • O.S.: CentOS 8.4
  • Kernel: kernel-4.18.0-305
  • Exec parameters: ./dbm /usr/bin/ls

Segmentation fault when main thread finishes before its children

Hi,

While running some tests extracted from Valgrind I encountered an interesting issue. Basically if the main thread finishes before its children mambo will crash. Not sure if it is a known limitation of MAMBO, an actual bug, or a corner case that was never accounted for; but I though I would report it here.

An example:

#include <pthread.h>
#include <unistd.h>
#include <stdio.h>

static void *th(void *v)
{
	fprintf(stderr, "Hello from th!\n");

	sleep(1);

	pthread_exit(0);
}

int main()
{
	pthread_t t;

	pthread_create(&t, NULL, th, NULL);

	fprintf(stderr, "Hello main!\n");

	pthread_exit(0);
}

This program crashes with a segmentation fault. When running with gdb it shows the crash happens in util.S:119, and the cause of it is sp being 0.

Adding join before exit from main fixes the problem, as it ensures the child thread finishes before main:

#include <pthread.h>
#include <unistd.h>
#include <stdio.h>

static void *th(void *v)
{
	fprintf(stderr, "Hello from th!\n");

	sleep(1);

	pthread_exit(0);
}

int main()
{
	pthread_t t;

	pthread_create(&t, NULL, th, NULL);

	fprintf(stderr, "Hello main!\n");

	pthread_join(t, NULL);

	pthread_exit(0);
}

Anyway, not sure if mambo should support it, but Stack Overflow suggests such a program is a legitimate use case, so the limitation should either be stated, mambo should have an appropriate check so it does not seg faults, or the support for it should be added.

System configuration:

MAMBO version: f23fc76
OS: Debian GNU/Linux 10 (buster)
Compiler: gcc version 8.3.0 (Debian 8.3.0-6)

Assertion error and Segmentation fault on docker containers

We have successfully built and used branch lgeek/mambo_memcheck#dbhi inside docker containers based on image arm64v8/ubuntu:bionic, on devices such as Pine64, Jetson or Merlin with 64 bit OSs. Precisely, the following script is properly executed on Merlin:

#!/bin/sh

docker build -t mambo-v8 - <<-EOF
FROM arm64v8/ubuntu:bionic
RUN apt update -y && apt install -y git gcc make libelf-dev ruby
EOF

git clone -b dbhi --recurse-submodules https://github.com/lgeek/mambo_memcheck

docker run --rm -t \
  -v $(pwd)/mambo:/src \
  -w /src \
  mambo-v8 bash -c "make clean all && ./dbm /bin/ls"

However, when we try with branch master of this repo, we get the following error:

dbm: elf_loader/elf_loader.c:127: load_elf: Assertion `tmpmem != MAP_FAILED` failed.
bash: line 1: 92 Aborted ./dbm /bin/ls

Now, we are trying to do the same with arm32v7/ubuntu:bionic base image. We are using a RPi3 with raspbian as the host system. We installed docker with curl -fsSL get.docker.com | sh -. Since it is raspbian, we need to prepend make with TEXT_SEGMENT. Apart form that, only the base image is changed:

#!/bin/sh

docker build -t mambo-v7 - <<-EOF
FROM arm32v7/ubuntu:bionic
RUN apt update -y && apt install -y git gcc make libelf-dev ruby
EOF

git clone --recurse-submodules https://github.com/beehive-lab/mambo

docker run --rm -t \
  -v $(pwd)/mambo:/src \
  -w /src \
  mambo-v7 bash -c "\
    make clean all && \
    ./dbm /bin/ls; \
    TEXT_SEGMENT='0x78000000' make clean all && \
    ./dbm /bin/ls
  "

As with the 64 bit variant, lgeek/mambo_memcheck#dbhi works, but branch master fails.

Output with lgeek/mambo_memcheck#dbhi:

$ ./test.sh
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM arm32v7/ubuntu:bionic
 ---> 18c3ad7dcb72
Step 2/2 : RUN apt update -y && apt install -y git gcc make libelf-dev ruby
 ---> Using cache
 ---> 79bebb31bf77
Successfully built 79bebb31bf77
Successfully tagged mambo-v7:latest

rm -f dbm elf/elf_loader.o
MAMBO: detected architecture "arm"
PIE: detected architecture "arm"
make --no-print-directory ARCH=arm pie
make[3]: Nothing to be done for 'pie'.
make --no-print-directory ARCH=thumb pie
make[3]: Nothing to be done for 'pie'.
ruby api/generate_emit_wrapper.rb pie/pie-arm-encoder.c header > api/emit_arm.h
ruby api/generate_emit_wrapper.rb pie/pie-thumb-encoder.c header > api/emit_thumb.h
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -march=armv7-a -mfpu=neon -c -o elf/elf_loader.o elf/elf_loader.c
ruby api/generate_emit_wrapper.rb pie/pie-arm-encoder.c > api/emit_arm.c
ruby api/generate_emit_wrapper.rb pie/pie-thumb-encoder.c > api/emit_thumb.c
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -march=armv7-a -mfpu=neon -static -ldl -Wl,-Ttext-segment=0xa8000000 -DDBM_LINK_UNCOND_IMM -DDBM_INLINE_UNCOND_IMM -DDBM_LINK_COND_IMM -DDBM_LINK_CBZ -DDBM_LINK_TBZ -DDBM_TB_DIRECT  -DLINK_BX_ALT -DDBM_INLINE_HASH -DDBM_TRACES  -I/usr/include/libelf -o dbm dispatcher.S common.c dbm.c traces.c syscalls.c dispatcher.c signals.c util.S api/helpers.c api/plugin_support.c api/branch_decoder_support.c api/load_store.c api/internal.c elf/elf_loader.o elf/symbol_parser.c scanner_thumb.c scanner_arm.c api/emit_arm.c api/emit_thumb.c  pie/pie-arm-encoder.o pie/pie-arm-decoder.o pie/pie-arm-field-decoder.o pie/pie-thumb-encoder.o pie/pie-thumb-decoder.o pie/pie-thumb-field-decoder.o -lelf -lpthread -lz
bash: line 1:   110 Segmentation fault      ./dbm /bin/ls

rm -f dbm elf/elf_loader.o
MAMBO: detected architecture "arm"
PIE: detected architecture "arm"
make --no-print-directory ARCH=arm pie
make[3]: Nothing to be done for 'pie'.
make --no-print-directory ARCH=thumb pie
make[3]: Nothing to be done for 'pie'.
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -march=armv7-a -mfpu=neon -c -o elf/elf_loader.o elf/elf_loader.c
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -march=armv7-a -mfpu=neon -static -ldl -Wl,-Ttext-segment=0x78000000 -DDBM_LINK_UNCOND_IMM -DDBM_INLINE_UNCOND_IMM -DDBM_LINK_COND_IMM -DDBM_LINK_CBZ -DDBM_LINK_TBZ -DDBM_TB_DIRECT  -DLINK_BX_ALT -DDBM_INLINE_HASH -DDBM_TRACES  -I/usr/include/libelf -o dbm dispatcher.S common.c dbm.c traces.c syscalls.c dispatcher.c signals.c util.S api/helpers.c api/plugin_support.c api/branch_decoder_support.c api/load_store.c api/internal.c elf/elf_loader.o elf/symbol_parser.c scanner_thumb.c scanner_arm.c api/emit_arm.c api/emit_thumb.c  pie/pie-arm-encoder.o pie/pie-arm-decoder.o pie/pie-arm-field-decoder.o pie/pie-thumb-encoder.o pie/pie-thumb-decoder.o pie/pie-thumb-field-decoder.o -lelf -lpthread -lz
README.md     dbm           dummy_cc_fragment_plugin.c  makefile       scanner_common.h        syscalls.h
api           dbm.c         elf                         pie            scanner_public.h        test
common.c      dbm.h         elf_loader                  plugins        scanner_thumb.c         traces.c
common.h      dispatcher.S  exec_plugin.c               plugins.h      signals.c               transparency.txt
core          dispatcher.c  ind_b_trace.c               scanner_a64.c  syscall_trace_plugin.c  util.S
count_inst.c  doc           kernel_sigaction.h          scanner_arm.c  syscalls.c              util.h
We're done; exiting with status: 0

Output with master:

$ ./test.sh
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM arm32v7/ubuntu:bionic
 ---> 18c3ad7dcb72
Step 2/2 : RUN apt update -y && apt install -y git gcc make libelf-dev ruby
 ---> Using cache
 ---> 79bebb31bf77
Successfully built 79bebb31bf77
Successfully tagged mambo-v7:latest

rm -f dbm elf_loader/elf_loader.o
MAMBO: detected architecture "arm"
PIE: detected architecture "arm"
make --no-print-directory ARCH=arm pie
ruby generate_decoder.rb arm > pie-arm-decoder.c
ruby generate_decoder.rb arm header > pie-arm-decoder.h
cc -c -Os -Wall -g -std=c99  pie-arm-decoder.c -o pie-arm-decoder.o
ruby generate_encoder.rb arm > pie-arm-encoder.c
ruby generate_encoder.rb arm header > pie-arm-encoder.h
cc -c -Os -Wall -g -std=c99  pie-arm-encoder.c -o pie-arm-encoder.o
ruby generate_field-decoder.rb arm > pie-arm-field-decoder.c
ruby generate_field-decoder.rb arm header > pie-arm-field-decoder.h
cc -c -Os -Wall -g -std=c99  pie-arm-field-decoder.c -o pie-arm-field-decoder.o
make --no-print-directory ARCH=thumb pie
ruby generate_decoder.rb thumb > pie-thumb-decoder.c
ruby generate_decoder.rb thumb header > pie-thumb-decoder.h
cc -c -Os -Wall -g -std=c99  pie-thumb-decoder.c -o pie-thumb-decoder.o
ruby generate_encoder.rb thumb > pie-thumb-encoder.c
ruby generate_encoder.rb thumb header > pie-thumb-encoder.h
cc -c -Os -Wall -g -std=c99  pie-thumb-encoder.c -o pie-thumb-encoder.o
ruby generate_field-decoder.rb thumb > pie-thumb-field-decoder.c
ruby generate_field-decoder.rb thumb header > pie-thumb-field-decoder.h
cc -c -Os -Wall -g -std=c99  pie-thumb-field-decoder.c -o pie-thumb-field-decoder.o
ruby api/generate_emit_wrapper.rb pie/pie-arm-encoder.c header > api/emit_arm.h
ruby api/generate_emit_wrapper.rb pie/pie-thumb-encoder.c header > api/emit_thumb.h
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -march=armv7-a -mfpu=neon -c -o elf_loader/elf_loader.o elf_loader/elf_loader.c
ruby api/generate_emit_wrapper.rb pie/pie-arm-encoder.c > api/emit_arm.c
ruby api/generate_emit_wrapper.rb pie/pie-thumb-encoder.c > api/emit_thumb.c
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -march=armv7-a -mfpu=neon -static -ldl -Wl,-Ttext-segment=0xa8000000 -DDBM_LINK_UNCOND_IMM -DDBM_INLINE_UNCOND_IMM -DDBM_LINK_COND_IMM -DDBM_LINK_CBZ -DDBM_LINK_TBZ -DDBM_TB_DIRECT  -DLINK_BX_ALT -DDBM_INLINE_HASH -DDBM_TRACES  -I/usr/include/libelf -o dbm dispatcher.S common.c dbm.c traces.c syscalls.c dispatcher.c signals.c util.S api/helpers.c api/plugin_support.c api/branch_decoder_support.c api/load_store.c elf_loader/elf_loader.o scanner_thumb.c scanner_arm.c api/emit_arm.c api/emit_thumb.c  pie/pie-arm-encoder.o pie/pie-arm-decoder.o pie/pie-arm-field-decoder.o pie/pie-thumb-encoder.o pie/pie-thumb-decoder.o pie/pie-thumb-field-decoder.o -lelf -lpthread
bash: line 1:   161 Segmentation fault      ./dbm /bin/ls

rm -f dbm elf_loader/elf_loader.o
MAMBO: detected architecture "arm"
PIE: detected architecture "arm"
make --no-print-directory ARCH=arm pie
make[3]: Nothing to be done for 'pie'.
make --no-print-directory ARCH=thumb pie
make[3]: Nothing to be done for 'pie'.
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -march=armv7-a -mfpu=neon -c -o elf_loader/elf_loader.o elf_loader/elf_loader.c
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -march=armv7-a -mfpu=neon -static -ldl -Wl,-Ttext-segment=0x78000000 -DDBM_LINK_UNCOND_IMM -DDBM_INLINE_UNCOND_IMM -DDBM_LINK_COND_IMM -DDBM_LINK_CBZ -DDBM_LINK_TBZ -DDBM_TB_DIRECT  -DLINK_BX_ALT -DDBM_INLINE_HASH -DDBM_TRACES  -I/usr/include/libelf -o dbm dispatcher.S common.c dbm.c traces.c syscalls.c dispatcher.c signals.c util.S api/helpers.c api/plugin_support.c api/branch_decoder_support.c api/load_store.c elf_loader/elf_loader.o scanner_thumb.c scanner_arm.c api/emit_arm.c api/emit_thumb.c  pie/pie-arm-encoder.o pie/pie-arm-decoder.o pie/pie-arm-field-decoder.o pie/pie-thumb-encoder.o pie/pie-thumb-decoder.o pie/pie-thumb-field-decoder.o -lelf -lpthread
bash: line 1:   250 Segmentation fault      (core dumped) ./dbm /bin/ls

Dispatcher trampoline should preserve contents of VFP registers

If VFP registers are present, the dispatcher trampoline should preserve their contents. Otherwise, correctness of execution may not be guaranteed. Consider the following excerpt taken from the objdump output of libjpeg for Android 4.1.1:

   14784:       f2c01012        vmov.i32        d17, #2 ; 0x00000002
   14788:       eddd2b02        vldr    d18, [sp, #8]
   1478c:       ee800b90        vdup.32 d16, r0
   14790:       e088210e        add     r2, r8, lr, lsl #2
   14794:       13a03000        movne   r3, #0
  
   14798:       1a000013        bne     147ec <jinit_d_coef_controller+0x3bc>

   1479c:       f26248a1        vadd.i32        d20, d18, d17
   147a0:       e3a03004        mov     r3, #4
   147a4:       f3c03010        vmov.i32        d19, #128       ; 0x00000080
   147a8:       f5d2f0b8        pld     [r2, #184]      ; 0xb8
   147ac:       f26458a1        vadd.i32        d21, d20, d17
   147b0:       e2822020        add     r2, r2, #32
   147b4:       f26071b0        vorr    d23, d16, d16

In this example, the basic block at the beginning sets a value in d16 at 1478c. If the branch at 14798 is not taken, the dispatcher starts at the target address of 1479c and scans for the next basic block. During this process, the instructions generated by gcc for mambo may make use of VFP registers for scratch space. For example, in my compiled version of mambo, I see register d16 being used in hash_add, mambo_memcpy, and other places. As a result, the values of the VFP registers may be clobbered by mambo when execution resumes at the basic block for 1479c. This causes problems later on in the execution. In my case, I eventually get a segfault.

The fix that I have locally is simple:

diff --git a/dbm.c b/dbm.c
index 503be38..f687908 100644
--- a/dbm.c
+++ b/dbm.c
@@ -304,11 +304,11 @@ void init_thread(dbm_thread *thread_data) {
   memcpy(&thread_data->code_cache->blocks[0], (uint8_t *)dispatcher_trampoline-4, sizeof(dbm_block)*2);
   dispatcher_thread_data = (dbm_thread **)((uint32_t)&thread_data->code_cache->blocks[0] + global_data.disp_thread_data_off);
   *dispatcher_thread_data = thread_data;
-  thread_data->code_cache->blocks[0].words[20] = (uint32_t)thread_data->scratch_regs;
+  thread_data->code_cache->blocks[0].words[24] = (uint32_t)thread_data->scratch_regs;
   debug("*thread_data in dispatcher at: %p\n", dispatcher_thread_data);

 #ifdef DBM_TRACES
-  write_p = (uint16_t *)&thread_data->code_cache->blocks[0].words[23];
+  write_p = (uint16_t *)&thread_data->code_cache->blocks[0].words[27];
   thread_data->trace_head_incr_addr = ((uint32_t)write_p) + 1 - 4;
   copy_to_reg_32bit(&write_p, r1, (uint32_t)thread_data->exec_count);

diff --git a/dispatcher.S b/dispatcher.S
index 3f11229..4a49f4d 100644
--- a/dispatcher.S
+++ b/dispatcher.S
@@ -42,6 +42,8 @@ dispatcher_trampoline:
   PUSH {R1}
   # R0 is target, R1 where to put address
   ADD R1, SP, #24
+  VPUSH {d0-d15}
+  VPUSH {d16-d31}
   LDR R3, disp_thread_data
   LDR R9, dispatcher_addr

@@ -56,6 +58,8 @@ dispatcher_trampoline:
   MSR CPSR, r1
   LDR R0, scratch_space
   LDM R0, {R0-R2}
+  VPOP {d16-d31}
+  VPOP {d0-d15}
   POP {r3, r4, r9, r12, lr, pc}
 ret_addr: .word 0
 dispatcher_addr: .word dispatcher

This will clearly not work in an ARM processor that does not have the VFP extensions implemented, or if it only implements VFPv2/VFPv2-D16 (so registers d16-d31 will not be present). This is why I am not submitting this as a pull request.

Please let me know if you had any questions. Thanks!

Inconsistent use of envvars in the makefiles

In order to cross-compile MAMBO for aarch64 in a x86_64 machine, the gcc executable name must be split in two envvars:

CROSS_COMPILE="aarch64-linux-gnu-"
CC="gcc"

This is because CC is rewritten in pie/makefile#L1. See also makefile#L29.

However, this does not work with the makefile in subdir test. There, target portable defaults to calling $(CC), so CC="aarch64-linux-gnu-gcc" is required and CROSS_COMPILE is not used at all. See test/makefile#L17.

This is also the case for cross-compiling libelf (which is a dependency of mambo): CC="aarch64-linux-gnu-gcc" CFLAGS="-static -O2" ./configure.

What is the rationale behind this difference?

Continuous Integration (CI)

Coming from #45:

  1. we should test both aarch32 and aarch64,
  2. it would be nice to avoid qemu-user-static with its incomplete support and
  3. other projects in beehive-lab regularly use up 100% of the included services

I'm not sure it would be that useful to have CI that regularly stops working and it also means we should avoid inefficient solutions like pulling in mambo-vm which would have been an easy fix. Self-hosted runners seem to be recommended against for public repositories because of security concerns. Any ideas?

Regarding CI, it looks like Travis CI supports ARM natively and they have a free plan for open source projects. It might work better for us.


First, I should clarify that my main motivation to suggest using CI is NOT to test MAMBO. I know that it is regularly built and thoroughly tested on multiple different platforms. Instead, I expect CI to make interaction with users easier:

  • It is a showcase for users unfamiliar with MAMBO. They can see not only the codebase, but also how it is actually used, which output is produced, which are the limitations, the performance, etc.
  • Users can fork, modify and test MAMBO using a browser only. Not an ideal workflow, but useful for really quick tests/proofs.
  • It provides a reproducible environment for users to report bugs/support requests. All they need to do is create a branch and add a step to retrieve/build their tricky binary. In fact, it is possible to implement an Action that retrieves the body of github issues (issue-runner).

Regarding QEMU, as you already know (beehive-lab/mambo-vm), there are qemu-system and qemu-user variants, and the support in the later is incomplete. However, combining qemu-user and Docker allows some interesting use cases:

  • Since 2017, docker-for-win, Docker Desktop for Windews, Docker Desktop, name it whatever... has built-in qemu-user for Arm targets: https://github.com/dbhi/qus/blob/master/docs/refs.md#linuxkitbinfmt--dockerbinfmt. Hence, users can execute the same arm32v7/ubuntu:bionic or arm64v8/ubuntu:bionic docker container on either Windows on amd64, Linux on amd64, or Linux on armhf, aarch32 or aarch64. We have tested this on several workstations, on Pine64, Rock960 and Merlin.
  • As mentioned in dbhi/docker, MAMBO can be built and tested on e.g. an arm32v7/ubuntu:bionic Docker container (on Windows or Linux), and the resulting artifact can be copied to a ZYNQ device running PYNQ. Note that no cross-compilation is involved. The container is used on amd64 as it would on an Arm SBC.
  • It potentially allows to use services such as gitpod or play-with-docker to tinker with MAMBO. Note that, actually, it does not work on play-with-docker. I have not tested on gitpod. However, at some point similar services might exist which support running docker containers for Arm.

Hence, even if all tests cannot be executed using Docker + qemu-user (specially due to missing signal support), I think it is still valuable, since MAMBO can be built and several plugins do work.

we should test both aarch32 and aarch64

Agree.

other projects in beehive-lab regularly use up 100% of the included services

Execution time of MAMBO's CI would be mostly negligible; it's so fast. Anyway, GHA workflows don't need to be executed for each push. They can be scheduled, executed only on tagged commits, whatever. I belive that it is important to have the infrastructure set up. Then, it is trivial for any user to fork and change CI triggering conditions. We can explicitly document how to do it.

I'm not sure it would be that useful to have CI that regularly stops working

My proposal is that only failing builds of MAMBO produce a failing run. Tests are executed, but results do not change the state of the run.

Of course, I think it would be much better to have any other complementary solution which allows to properly evaluate all the tests. Having some "test runner" that provides a nicer output would also be interesting.

it also means we should avoid inefficient solutions like pulling in mambo-vm which would have been an easy fix.

Both GHA and Travis support caching. Hence, pulling in mambo-vm should not be much of an issue. It would only be pulled from "external" resources when it is updated. Furthermore:

  • mambo-vm can be built/updated and/or released as a conditional step in the same workflow, or in a separate workflow in its own repo.
  • https://github.com/features/packages is free for open source public projects.

From a performance point of view, I don't think there is much difference between retrieving a release asset from a repo or a package from a registry.

Anyway, the main reason I didn't use mambo-vm is because I don't know how to start the VM, share a folder from the host and execute some script non-interactively. Does it need to be done with scp + ssh?

Self-hosted runners seem to be recommended against for public repositories because of security concerns. Any ideas?

Yes. However, I think that self-hosted runners can be useful for your own use case. Since you have multiple boards, you can use GitHub Actions to trigger a test in all of them at the same time, and have the results displayed. Optionally, assets can be uploaded. If you limit self-hosted runners to workflows that are not triggered by PRs, you should be good. I believe that forks cannot use self-hosted runners of the parent.

Naturally, you can achieve the same result without GHA, using a self-hosted GitLab o Jenkins in some spare workstation; which I would recommend.

Regarding CI, it looks like Travis CI supports ARM natively and they have a free plan for open source projects. It might work better for us.

I'd like to provide working and ready-to-use solutions for users on amd64 laptops or wokstations which don't have an ARM board at hand. I'm thinking about trips, tutorials, workshops, etc.

The only issue with Travis is that it is an external service:

  • On the one hand, users need to register and enable it. This is so fast and easy, but it needs to be done. I don't know whether it changed, but some time ago Travis requested a lot of permissions. Using a machine account is recommended.
    • Releasing assets requires generating a token. Conversely, in GHA a default token is provided which has the scope limited to the repo.
  • On the other hand, during the last couple of years Microsoft bought GitHub, Actions were launched and I think that Travis was bought. I don't know whether these had any direct impact, but I've seen Travis' integration with GitHub getting worse. When workflows need to interact with GitHub's API to clone, get releases, upload artifacts... I get errors and denials regularly. Restarting the jobs fixes it, but it requires some care.

Hence, I'd like to keep qemu-user (which is just two lines), I'd like to add mambo-vm (I can take care of caching, etc. should you help with using it non-interactively) and we can use Travis for completeness too. Tests in GHA + mambo-vm and Travis should be equivalent, while tests in GHA + qemu-user would be a subset.

A64_BR etc are undeclared on aarch64

A64_* undeclared in files scanner.c and scanner_a64.c
Also
Also a64_decode is not defined:

grep -rnw . -e 'a64_decode'

./signals.c:129:  decoder = (inst_decoder)a64_decode;
./signals.c:188:      decoder = (inst_decoder)a64_decode;
./scanner_a64.c:349:    a64_instruction instruction = a64_decode(read_address);
./scanner_a64.c:501:    a64_instruction inst = a64_decode(read_address);

Building on Android

I know Android is not officially supported (#17), but figured I'd document my progress in an open ticket until I finish it.

Using Termux (and clang, see #27):

apt install libelf-dev git ruby make clang-6.0
$ make
MAMBO: detected architecture "arm"
PIE: detected architecture "arm"
make --no-print-directory ARCH=arm pie
ruby generate_decoder.rb arm > pie-arm-decoder.c
ruby generate_decoder.rb arm header > pie-arm-decoder.h
cc -c -Os -Wall -g -std=c99  pie-arm-decoder.c -o pie-arm-decoder.o
ruby generate_encoder.rb arm > pie-arm-encoder.c
ruby generate_encoder.rb arm header > pie-arm-encoder.h
cc -c -Os -Wall -g -std=c99  pie-arm-encoder.c -o pie-arm-encoder.o
ruby generate_field-decoder.rb arm > pie-arm-field-decoder.c
ruby generate_field-decoder.rb arm header > pie-arm-field-decoder.h
cc -c -Os -Wall -g -std=c99  pie-arm-field-decoder.c -o pie-arm-field-decoder.o
make --no-print-directory ARCH=thumb pie
ruby generate_decoder.rb thumb > pie-thumb-decoder.c
ruby generate_decoder.rb thumb header > pie-thumb-decoder.h
cc -c -Os -Wall -g -std=c99  pie-thumb-decoder.c -o pie-thumb-decoder.o
ruby generate_encoder.rb thumb > pie-thumb-encoder.c
ruby generate_encoder.rb thumb header > pie-thumb-encoder.h
cc -c -Os -Wall -g -std=c99  pie-thumb-encoder.c -o pie-thumb-encoder.o
ruby generate_field-decoder.rb thumb > pie-thumb-field-decoder.c
ruby generate_field-decoder.rb thumb header > pie-thumb-field-decoder.h
cc -c -Os -Wall -g -std=c99  pie-thumb-field-decoder.c -o pie-thumb-field-decoder.o
ruby api/generate_emit_wrapper.rb pie/pie-arm-encoder.c header > api/emit_arm.h
ruby api/generate_emit_wrapper.rb pie/pie-thumb-encoder.c header > api/emit_thumb.h
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -fno-integrated-as -mfpu=neon -DPLUGINS_NEW -c -o elf_loader/elf_loader.o elf_loader/elf_loader.c
In file included from elf_loader/elf_loader.c:32:
elf_loader/../api/../dbm.h:363:9: warning: 'PAGE_SIZE' macro redefined [-Wmacro-redefined]
#define PAGE_SIZE (page_size)
        ^
/data/data/com.termux/files/usr/include/sys/user.h:38:9: note: previous definition is here
#define PAGE_SIZE 4096
        ^
elf_loader/elf_loader.c:269:1: warning: control may reach end of non-void function [-Wreturn-type]
}
^
2 warnings generated.
ruby api/generate_emit_wrapper.rb pie/pie-arm-encoder.c > api/emit_arm.c
ruby api/generate_emit_wrapper.rb pie/pie-thumb-encoder.c > api/emit_thumb.c
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -fno-integrated-as -mfpu=neon -DPLUGINS_NEW -static -ldl -Wl,-Ttext-segment=0xa8000000 -fno-integrated-as -DDBM_LINK_UNCOND_IMM -DDBM_INLINE_UNCOND_IMM -DDBM_LINK_COND_IMM -DDBM_LINK_CBZ -DDBM_LINK_TBZ -DDBM_TB_DIRECT  -DLINK_BX_ALT -DDBM_INLINE_HASH -DDBM_TRACES  -I/usr/include/libelf -o dbm dispatcher.S common.c dbm.c traces.c syscalls.c dispatcher.c signals.c util.S api/helpers.c api/plugin_support.c api/branch_decoder_support.c api/load_store.c elf_loader/elf_loader.o scanner_thumb.c scanner_arm.c api/emit_arm.c api/emit_thumb.c plugins/branch_count.c pie/pie-arm-encoder.o pie/pie-arm-decoder.o pie/pie-arm-field-decoder.o pie/pie-thumb-encoder.o pie/pie-thumb-decoder.o pie/pie-thumb-field-decoder.o -lelf -lpthread
/data/data/com.termux/files/usr/tmp/dispatcher-59fa24.s: Assembler messages:
/data/data/com.termux/files/usr/tmp/dispatcher-59fa24.s: Warning: end of file in comment; newline inserted
In file included from common.c:30:
./api/../dbm.h:363:9: warning: 'PAGE_SIZE' macro redefined [-Wmacro-redefined]
#define PAGE_SIZE (page_size)
        ^
/data/data/com.termux/files/usr/include/sys/user.h:38:9: note: previous definition is here
#define PAGE_SIZE 4096
        ^
1 warning generated.
In file included from dbm.c:35:
./api/../dbm.h:363:9: warning: 'PAGE_SIZE' macro redefined [-Wmacro-redefined]
#define PAGE_SIZE (page_size)
        ^
/data/data/com.termux/files/usr/include/sys/user.h:38:9: note: previous definition is here
#define PAGE_SIZE 4096
        ^
dbm.c:624:1: warning: return type of 'main' is not 'int' [-Wmain-return-type]
void main(int argc, char **argv, char **envp) {
^
dbm.c:624:1: note: change return type to 'int'
void main(int argc, char **argv, char **envp) {
^~~~
int
2 warnings generated.
In file included from traces.c:28:
./api/../dbm.h:363:9: warning: 'PAGE_SIZE' macro redefined [-Wmacro-redefined]
#define PAGE_SIZE (page_size)
        ^
/data/data/com.termux/files/usr/include/sys/user.h:38:9: note: previous definition is here
#define PAGE_SIZE 4096
        ^
traces.c:321:12: warning: 21 enumeration values not handled in switch: 'unknown', 'stub', 'uncond_b_to_bl_thumb'... [-Wswitch]
    switch(thread_data->code_cache_meta[trace_id].exit_branch_type) {
           ^
traces.c:543:10: warning: 19 enumeration values not handled in switch: 'unknown', 'stub', 'uncond_b_to_bl_thumb'... [-Wswitch]
  switch(thread_data->code_cache_meta[fragment_id].exit_branch_type) {
         ^
3 warnings generated.
In file included from syscalls.c:32:
./api/../dbm.h:363:9: warning: 'PAGE_SIZE' macro redefined [-Wmacro-redefined]
#define PAGE_SIZE (page_size)
        ^
/data/data/com.termux/files/usr/include/sys/user.h:38:9: note: previous definition is here
#define PAGE_SIZE 4096
        ^
syscalls.c:113:3: warning: implicit declaration of function 'pthread_attr_setinheritsched' is invalid in C99 [-Wimplicit-function-declaration]
  pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED);
  ^
2 warnings generated.
/data/data/com.termux/files/usr/tmp/syscalls-53fc5f.s: Assembler messages:
/data/data/com.termux/files/usr/tmp/syscalls-53fc5f.s:170: Error: selected processor does not support `dmb SY' in ARM mode
/data/data/com.termux/files/usr/tmp/syscalls-53fc5f.s:1789: Error: selected processor does not support `dmb SY' in ARM mode
In file included from dispatcher.c:25:
./api/../dbm.h:363:9: warning: 'PAGE_SIZE' macro redefined [-Wmacro-redefined]
#define PAGE_SIZE (page_size)
        ^
/data/data/com.termux/files/usr/include/sys/user.h:38:9: note: previous definition is here
#define PAGE_SIZE 4096
        ^
dispatcher.c:142:11: warning: 17 enumeration values not handled in switch: 'unknown', 'stub', 'trace_inline_max'... [-Wswitch]
  switch (source_branch_type) {
          ^
2 warnings generated.
In file included from signals.c:27:
./api/../dbm.h:363:9: warning: 'PAGE_SIZE' macro redefined [-Wmacro-redefined]
#define PAGE_SIZE (page_size)
        ^
/data/data/com.termux/files/usr/include/sys/user.h:38:9: note: previous definition is here
#define PAGE_SIZE 4096
        ^
1 warning generated.
/data/data/com.termux/files/usr/tmp/util-8c1fb3.s: Assembler messages:
/data/data/com.termux/files/usr/tmp/util-8c1fb3.s: Warning: end of file in comment; newline inserted
In file included from api/helpers.c:25:
In file included from api/../plugins.h:20:
api/../dbm.h:363:9: warning: 'PAGE_SIZE' macro redefined [-Wmacro-redefined]
#define PAGE_SIZE (page_size)
        ^
/data/data/com.termux/files/usr/include/sys/user.h:38:9: note: previous definition is here
#define PAGE_SIZE 4096
        ^
api/helpers.c:135:35: warning: implicit conversion from enumeration type 'enum reg_alt' to different enumeration type 'enum reg' [-Wenum-conversion]
  emit_arm_copy_to_reg_32bit(ctx, lr, (uint32_t)function_ptr);
  ~~~~~~~~~~~~~~~~~~~~~~~~~~      ^~
api/helpers.c:140:37: warning: implicit conversion from enumeration type 'enum reg_alt' to different enumeration type 'enum reg' [-Wenum-conversion]
  emit_thumb_copy_to_reg_32bit(ctx, lr, (uint32_t)function_ptr);
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~      ^~
api/helpers.c:339:21: warning: implicit conversion from enumeration type 'enum reg_alt' to different enumeration type 'enum reg' [-Wenum-conversion]
  emit_set_reg(ctx, lr, (uintptr_t)function_ptr);
  ~~~~~~~~~~~~      ^~
api/helpers.c:619:10: warning: enumeration value 'A64_INST' not handled in switch [-Wswitch]
  switch(mambo_get_inst_type(ctx)) {
         ^
5 warnings generated.
In file included from api/plugin_support.c:26:
api/../dbm.h:363:9: warning: 'PAGE_SIZE' macro redefined [-Wmacro-redefined]
#define PAGE_SIZE (page_size)
        ^
/data/data/com.termux/files/usr/include/sys/user.h:38:9: note: previous definition is here
#define PAGE_SIZE 4096
        ^
1 warning generated.
In file included from api/branch_decoder_support.c:23:
api/../dbm.h:363:9: warning: 'PAGE_SIZE' macro redefined [-Wmacro-redefined]
#define PAGE_SIZE (page_size)
        ^
/data/data/com.termux/files/usr/include/sys/user.h:38:9: note: previous definition is here
#define PAGE_SIZE 4096
        ^
1 warning generated.
In file included from api/load_store.c:26:
In file included from api/../plugins.h:20:
api/../dbm.h:363:9: warning: 'PAGE_SIZE' macro redefined [-Wmacro-redefined]
#define PAGE_SIZE (page_size)
        ^
/data/data/com.termux/files/usr/include/sys/user.h:38:9: note: previous definition is here
#define PAGE_SIZE 4096
        ^
api/load_store.c:609:49: warning: passing 'int *' to parameter of type 'uint32_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign
      [-Wpointer-sign]
      _decode_arm(i == IMM_LDR, p, u, operand2, &rm, &imm);
                                                ^~~
api/load_store.c:574:79: note: passing argument to parameter 'rm' here
void _decode_arm(bool is_imm, uint32_t p, uint32_t u, uint32_t op2, uint32_t *rm, int *imm) {
                                                                              ^
api/load_store.c:627:53: warning: passing 'int *' to parameter of type 'uint32_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign
      [-Wpointer-sign]
      _decode_arm(i, p, u, (imm4h << 4) | rm_imm4l, &rm, &imm);
                                                    ^~~
api/load_store.c:574:79: note: passing argument to parameter 'rm' here
void _decode_arm(bool is_imm, uint32_t p, uint32_t u, uint32_t op2, uint32_t *rm, int *imm) {
                                                                              ^
3 warnings generated.
In file included from scanner_thumb.c:30:
./api/../dbm.h:363:9: warning: 'PAGE_SIZE' macro redefined [-Wmacro-redefined]
#define PAGE_SIZE (page_size)
        ^
/data/data/com.termux/files/usr/include/sys/user.h:38:9: note: previous definition is here
#define PAGE_SIZE 4096
        ^
scanner_thumb.c:150:19: warning: '&' within '|' [-Wbitwise-op-parentheses]
      mask = mask & 0x8 | 0x4;
             ~~~~~^~~~~ ~
scanner_thumb.c:150:19: note: place parentheses around the '&' expression to silence this warning
      mask = mask & 0x8 | 0x4;
                  ^
             (         )
scanner_thumb.c:153:19: warning: '&' within '|' [-Wbitwise-op-parentheses]
      mask = mask & 0xc | 0x2;
             ~~~~~^~~~~ ~
scanner_thumb.c:153:19: note: place parentheses around the '&' expression to silence this warning
      mask = mask & 0xc | 0x2;
                  ^
             (         )
scanner_thumb.c:156:19: warning: '&' within '|' [-Wbitwise-op-parentheses]
      mask = mask & 0xe | 0x1;
             ~~~~~^~~~~ ~
scanner_thumb.c:156:19: note: place parentheses around the '&' expression to silence this warning
      mask = mask & 0xe | 0x1;
                  ^
             (         )
scanner_thumb.c:568:33: warning: passing 'uint16_t *' (aka 'unsigned short *') to parameter of type 'int16_t *' (aka 'short *') converts between pointers to integer types with
      different sign [-Wpointer-sign]
  set_cc_imm_links(thread_data, *o_write_p, basic_block, address_taken, address_skipped, taken_in_cache, skipped_in_cache);
                                ^~~~~~~~~~
scanner_thumb.c:463:35: note: passing argument to parameter 'write_p' here
                         int16_t *write_p,
                                  ^
scanner_thumb.c:647:33: warning: passing 'uint16_t *' (aka 'unsigned short *') to parameter of type 'int16_t *' (aka 'short *') converts between pointers to integer types with
      different sign [-Wpointer-sign]
  set_cc_imm_links(thread_data, *o_write_p, basic_block, address_taken, address_skipped, taken_in_cache, skipped_in_cache);
                                ^~~~~~~~~~
scanner_thumb.c:463:35: note: passing argument to parameter 'write_p' here
                         int16_t *write_p,
                                  ^
scanner_thumb.c:767:12: warning: 494 enumeration values not handled in switch: 'THUMB_ADC16', 'THUMB_ADD16', 'THUMB_ADD_FROM_PC16'... [-Wswitch]
    switch(inst) {
           ^
scanner_thumb.c:1289:18: warning: 515 enumeration values not handled in switch: 'THUMB_ADC16', 'THUMB_ADD16', 'THUMB_ADD_FROM_PC16'... [-Wswitch]
          switch(inst) {
                 ^
scanner_thumb.c:1412:39: warning: implicit conversion from enumeration type 'enum reg_alt' to different enumeration type 'enum reg' [-Wenum-conversion]
          copy_to_reg_32bit(&write_p, lr, ((uint32_t)read_address) + 2 + 1);
          ~~~~~~~~~~~~~~~~~           ^~
scanner_thumb.c:2403:39: warning: implicit conversion from enumeration type 'enum reg_alt' to different enumeration type 'enum reg' [-Wenum-conversion]
          copy_to_reg_32bit(&write_p, lr, ((uint32_t)read_address) + 4 + 1);
          ~~~~~~~~~~~~~~~~~           ^~
scanner_thumb.c:2564:16: warning: 516 enumeration values not handled in switch: 'THUMB_ADC16', 'THUMB_ADD16', 'THUMB_ADD_FROM_PC16'... [-Wswitch]
        switch(inst) {
               ^
11 warnings generated.
In file included from scanner_arm.c:30:
./api/../dbm.h:363:9: warning: 'PAGE_SIZE' macro redefined [-Wmacro-redefined]
#define PAGE_SIZE (page_size)
        ^
/data/data/com.termux/files/usr/include/sys/user.h:38:9: note: previous definition is here
#define PAGE_SIZE 4096
        ^
scanner_arm.c:318:12: warning: 370 enumeration values not handled in switch: 'ARM_AND', 'ARM_BFC', 'ARM_BFI'... [-Wswitch]
    switch(inst) {
           ^
scanner_arm.c:680:43: warning: implicit conversion from enumeration type 'enum reg_alt' to different enumeration type 'enum reg' [-Wenum-conversion]
          arm_copy_to_reg_32bit(&write_p, lr, (uint32_t)read_address + 4);
          ~~~~~~~~~~~~~~~~~~~~~           ^~
scanner_arm.c:733:43: warning: implicit conversion from enumeration type 'enum reg_alt' to different enumeration type 'enum reg' [-Wenum-conversion]
          arm_copy_to_reg_32bit(&write_p, lr, (uint32_t)read_address + 4);
          ~~~~~~~~~~~~~~~~~~~~~           ^~
scanner_arm.c:773:41: warning: implicit conversion from enumeration type 'enum reg_alt' to different enumeration type 'enum reg' [-Wenum-conversion]
        arm_copy_to_reg_32bit(&write_p, lr, (uint32_t)read_address + 4);
        ~~~~~~~~~~~~~~~~~~~~~           ^~
scanner_arm.c:859:17: warning: 383 enumeration values not handled in switch: 'ARM_ADC', 'ARM_ADD', 'ARM_AND'... [-Wswitch]
        switch (inst) {
                ^
scanner_arm.c:959:19: warning: 383 enumeration values not handled in switch: 'ARM_ADC', 'ARM_ADD', 'ARM_AND'... [-Wswitch]
          switch (inst) {
                  ^
scanner_arm.c:1061:17: warning: 383 enumeration values not handled in switch: 'ARM_ADC', 'ARM_ADD', 'ARM_AND'... [-Wswitch]
        switch (inst) {
                ^
scanner_arm.c:1073:51: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
          assert(condition_code == AL && rn == sp & prepostindex && !updown && writeback); // PUSH {PC}
                                         ~~~~~~~~~^
/data/data/com.termux/files/usr/include/assert.h:51:23: note: expanded from macro 'assert'
#  define assert(e) ((e) ? __assert_no_op : __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, #e))
                      ^
scanner_arm.c:1073:51: note: place parentheses around the '==' expression to silence this warning
          assert(condition_code == AL && rn == sp & prepostindex && !updown && writeback); // PUSH {PC}
                                         ~~~~~~~~ ^
/data/data/com.termux/files/usr/include/assert.h:51:23: note: expanded from macro 'assert'
#  define assert(e) ((e) ? __assert_no_op : __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, #e))
                      ^
scanner_arm.c:1073:51: note: place parentheses around the & expression to evaluate it first
          assert(condition_code == AL && rn == sp & prepostindex && !updown && writeback); // PUSH {PC}
                                               ~~~^~~~~~~~~~~~~~
/data/data/com.termux/files/usr/include/assert.h:51:23: note: expanded from macro 'assert'
#  define assert(e) ((e) ? __assert_no_op : __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, #e))
                      ^
scanner_arm.c:1076:40: warning: implicit conversion from enumeration type 'enum reg_alt' to different enumeration type 'enum reg' [-Wenum-conversion]
          arm_add_sub_32_bit(&write_p, sp, sp, -8);
          ~~~~~~~~~~~~~~~~~~           ^~
scanner_arm.c:1076:44: warning: implicit conversion from enumeration type 'enum reg_alt' to different enumeration type 'enum reg' [-Wenum-conversion]
          arm_add_sub_32_bit(&write_p, sp, sp, -8);
          ~~~~~~~~~~~~~~~~~~               ^~
scanner_arm.c:1102:19: warning: 383 enumeration values not handled in switch: 'ARM_ADC', 'ARM_ADD', 'ARM_AND'... [-Wswitch]
          switch (inst) {
                  ^
12 warnings generated.
In file included from api/emit_arm.c:2:
api/../dbm.h:363:9: warning: 'PAGE_SIZE' macro redefined [-Wmacro-redefined]
#define PAGE_SIZE (page_size)
        ^
/data/data/com.termux/files/usr/include/sys/user.h:38:9: note: previous definition is here
#define PAGE_SIZE 4096
        ^
1 warning generated.
In file included from api/emit_thumb.c:2:
api/../dbm.h:363:9: warning: 'PAGE_SIZE' macro redefined [-Wmacro-redefined]
#define PAGE_SIZE (page_size)
        ^
/data/data/com.termux/files/usr/include/sys/user.h:38:9: note: previous definition is here
#define PAGE_SIZE 4096
        ^
1 warning generated.
In file included from plugins/branch_count.c:27:
In file included from plugins/../plugins.h:20:
plugins/../api/../dbm.h:363:9: warning: 'PAGE_SIZE' macro redefined [-Wmacro-redefined]
#define PAGE_SIZE (page_size)
        ^
/data/data/com.termux/files/usr/include/sys/user.h:38:9: note: previous definition is here
#define PAGE_SIZE 4096
        ^
plugins/branch_count.c:45:1: warning: control may reach end of non-void function [-Wreturn-type]
}
^
plugins/branch_count.c:65:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
plugins/branch_count.c:70:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
plugins/branch_count.c:88:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
5 warnings generated.
clang-7: error: assembler command failed with exit code 1 (use -v to see invocation)
make[1]: *** [makefile:65: dbm] Error 1
make: *** [makefile:56: all] Error 2

MAMBO fails to build on Arch Linux

It looks like MAMBO fails to build on the recent versions of Arch Linux. The problem has been initially reported by @ijan1.

The compilation error can be seen below:

MAMBO: detected architecture "aarch64"
PIE: detected architecture "aarch64"
make --no-print-directory ARCH=a64 pie
ruby generate_decoder.rb a64  > pie-a64-decoder.c
ruby generate_decoder.rb a64 header  > pie-a64-decoder.h
cc -c -Os -Wall -g -std=c99  pie-a64-decoder.c -o pie-a64-decoder.o
ruby generate_encoder.rb a64  > pie-a64-encoder.c
ruby generate_encoder.rb a64 header  > pie-a64-encoder.h
cc -c -Os -Wall -g -std=c99  pie-a64-encoder.c -o pie-a64-encoder.o
ruby generate_field-decoder.rb a64  > pie-a64-field-decoder.c
ruby generate_field-decoder.rb a64 header  > pie-a64-field-decoder.h
cc -c -Os -Wall -g -std=c99  pie-a64-field-decoder.c -o pie-a64-field-decoder.o
ruby api/generate_emit_wrapper.rb pie/pie-a64-encoder.c header > api/emit_a64.h
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -Wunused-variable -DVERSION=\"583f3b7e-dirty\" -c -o elf/elf_loader.o elf/elf_loader.c
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -Wunused-variable -DVERSION=\"583f3b7e-dirty\"   -c -o elf/symbol_parser.o elf/symbol_parser.c
ruby api/generate_emit_wrapper.rb pie/pie-a64-encoder.c > api/emit_a64.c
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -Wunused-variable -DVERSION=\"583f3b7e-dirty\" -static -ldl -Wl,-Ttext-segment=0x7000000000 -DDBM_LINK_UNCOND_IMM -DDBM_INLINE_UNCOND_IMM -DDBM_LINK_COND_IMM -DDBM_LINK_CBZ -DDBM_LINK_TBZ -DDBM_TB_DIRECT  -DLINK_BX_ALT -DDBM_INLINE_HASH -DDBM_TRACES  -I/usr/include/libelf -I. -o dbm common.c dbm.c traces.c syscalls.c dispatcher.c signals.c util.S api/helpers.c api/plugin_support.c api/branch_decoder_support.c api/load_store.c api/internal.c api/hash_table.c elf/elf_loader.o elf/symbol_parser.o arch/aarch64/dispatcher_aarch64.S arch/aarch64/dispatcher_aarch64.c arch/aarch64/scanner_a64.c api/emit_a64.c  pie/pie-a64-field-decoder.o pie/pie-a64-encoder.o pie/pie-a64-decoder.o -lelf -lz -pthread 
/sbin/ld: /usr/lib/gcc/aarch64-unknown-linux-gnu/12.1.0/../../../../lib/libelf.a(elf_compress.o): in function `__libelf_compress':
(.text+0xe8): undefined reference to `ZSTD_createCCtx'
/sbin/ld: (.text+0xec): undefined reference to `ZSTD_createCCtx'
/sbin/ld: (.text+0xf4): undefined reference to `ZSTD_isError'
/sbin/ld: (.text+0xf8): undefined reference to `ZSTD_isError'
/sbin/ld: (.text+0x118): undefined reference to `ZSTD_compressStream2'
/sbin/ld: (.text+0x11c): undefined reference to `ZSTD_compressStream2'
/sbin/ld: (.text+0x424): undefined reference to `ZSTD_freeCCtx'
/sbin/ld: (.text+0x428): undefined reference to `ZSTD_freeCCtx'
/sbin/ld: (.text+0x4f4): undefined reference to `ZSTD_freeCCtx'
/sbin/ld: (.text+0x4f8): undefined reference to `ZSTD_freeCCtx'
/sbin/ld: (.text+0x520): undefined reference to `ZSTD_freeCCtx'
/sbin/ld: /usr/lib/gcc/aarch64-unknown-linux-gnu/12.1.0/../../../../lib/libelf.a(elf_compress.o):(.text+0x524): more undefined references to `ZSTD_freeCCtx' follow
/sbin/ld: /usr/lib/gcc/aarch64-unknown-linux-gnu/12.1.0/../../../../lib/libelf.a(elf_compress.o): in function `__libelf_decompress':
(.text+0x9c8): undefined reference to `ZSTD_decompress'
/sbin/ld: (.text+0x9cc): undefined reference to `ZSTD_decompress'
/sbin/ld: (.text+0x9e0): undefined reference to `ZSTD_isError'
/sbin/ld: (.text+0x9e4): undefined reference to `ZSTD_isError'
collect2: error: ld returned 1 exit status
make[1]: *** [makefile:73: dbm] Error 1
make: *** [makefile:64: all] Error 2

To fix this problem, we first need to add libzstd to the makefile:

-LIBS=-lelf -lpthread -lz
+LIBS=-lelf -lz -lzstd -pthread

However, this still fails, as static libzstd cannot be found. The root cause of it is that Arch Linux removed the static version of libzstd from its packages: https://bugs.archlinux.org/task/78526.

To get it to work, libzstd has to be built locally (https://github.com/facebook/zstd), and libzstd.a installed in /usr/lib. This enables MAMBO to build and run.

Since MAMBO relies on libelf, that relies on libz and libzstd, removing the dependency is not simple.

We need to discuss it, how to handle it properly. Any suggestions are welcome! (cc @jkressel @GuillermoCallaghan)

EDIT:

Tested in chroot on Zenfone 9 with following Arch Linux configuration:

NAME="Arch Linux ARM"
PRETTY_NAME="Arch Linux ARM"
ID=archarm
ID_LIKE=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinuxarm.org/"
DOCUMENTATION_URL="https://archlinuxarm.org/wiki"
SUPPORT_URL="https://archlinuxarm.org/forum"
BUG_REPORT_URL="https://github.com/archlinuxarm/PKGBUILDs/issues"
LOGO=archlinux-logo

Simple multithreaded program hangs on RISC-V

Hi,

I am trying to use MAMBO on RISC-V. It works just fine for single-threaded applications.
However, when I try running multithreaded applications through it it just hangs right at the moment a thread is created.

I reproduced the issue on simple program which creates a thread that prints something.
Here's the reproducer:

$ cat mt_test.c

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>

void *thread2(void *vargp)
{
        sleep(1);
        printf("Hello world from thread2\n");
        return NULL;
}

int main()
{
        pthread_t thread_id;
        printf("Before starting thread 2\n");
        int error = pthread_create(&thread_id, NULL, thread2, NULL);
        if (error != 0) {
                fprintf(stderr, "pthread_create: %s\n", strerror(error));
                return 1;
        }
        error = pthread_join(thread_id, NULL);
        if (error != 0) {
                fprintf(stderr, "pthread_join: %s\n", strerror(error));
                return 1;
        }
        printf("After joining thread 2\n");
        return 0;
}

Compile with:

$ gcc mt_test.c -pthread -o riscv-mt-dummy-bin

Then run it without MAMBO:

$ ./riscv-mt-dummy-bin
Before starting thread 2
Hello world from thread2
After joining thread 2

Works fine.
Running through MAMBO:

$ ./dbm ./riscv-mt-dummy-bin
Before starting thread 2
^C^ZKilled

The program just hangs and doesn't seem to respond to SIGINT. Sending SIGKILL kills it.
No mambo plugins are enabled.

Also I get the following output when running through gdb:

$ gdb --args ./dbm ./riscv-mt-dummy-bin
GNU gdb (Ubuntu 12.1-0ubuntu1~22.04) 12.1
Copyright (C) 2022 Free Software Foundation, Inc.
...
Reading symbols from ./dbm...
(gdb) r
Starting program: /home/ubuntu/work/projects/mambo/dbm ./riscv-mt-dummy-bin
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/riscv64-linux-gnu/libthread_db.so.1".
Before starting thread 2
[New Thread 0x7ffff7fd5480 (LWP 1851)]
[Thread 0x7ffff7fd5480 (LWP 1851) exited]

<gdb hangs>

The newly created thread exits instantly.

My configuration:
Ubuntu 22.04.3 LTS inside QEMU v8.1.0.
CPU architecture is rv64imafdch.

My question is - Is it expected? Does MAMBO support multithreading? If it does, what could have gone wrong here?

vcvtp instruction not handled

MAMBO failed to translate this instruction I encountered in Android 9's dynamic linker.

disassembly : vcvtp.u32.f32 s0, s0
t32 encoding : 0x40,0x0a,0xbe,0xfe

cannot stop main thread when running on android

hello, sorry to disturb.
i use the dbm to run multi-threads app on android, but when the created threads exit, the main thread hanged on a basic_block loop all the time,. Then i use strace to see the syscall, found that the main thread last syscall_no is 98, which is futex, so, how to solve the problem, need your help, thanks.

Segmentation fault on RPi 3 B (2018-11-13-raspbian-stretch)

I downloaded Raspbian Stretch with desktop from raspberrypi.org/downloads/raspbian, flashed a SD card, powered the RPi, and after the initial setup I installed the dependencies for MAMBO:

$ sudo apt install libelf-dev ruby gcc

I then cloned MAMBO and built it:

$ git clone --recurse-submodules https://github.com/beehive-lab/mambo.git
$ cd mambo
$ make
MAMBO: detected architecture "arm"
PIE: detected architecture "arm"
make --no-print-directory ARCH=arm pie
ruby generate_decoder.rb arm > pie-arm-decoder.c
ruby generate_decoder.rb arm header > pie-arm-decoder.h
cc -c -Os -Wall -g -std=c99  pie-arm-decoder.c -o pie-arm-decoder.o
ruby generate_encoder.rb arm > pie-arm-encoder.c
ruby generate_encoder.rb arm header > pie-arm-encoder.h
cc -c -Os -Wall -g -std=c99  pie-arm-encoder.c -o pie-arm-encoder.o
ruby generate_field-decoder.rb arm > pie-arm-field-decoder.c
ruby generate_field-decoder.rb arm header > pie-arm-field-decoder.h
cc -c -Os -Wall -g -std=c99  pie-arm-field-decoder.c -o pie-arm-field-decoder.o
make --no-print-directory ARCH=thumb pie
ruby generate_decoder.rb thumb > pie-thumb-decoder.c
ruby generate_decoder.rb thumb header > pie-thumb-decoder.h
cc -c -Os -Wall -g -std=c99  pie-thumb-decoder.c -o pie-thumb-decoder.o
ruby generate_encoder.rb thumb > pie-thumb-encoder.c
ruby generate_encoder.rb thumb header > pie-thumb-encoder.h
cc -c -Os -Wall -g -std=c99  pie-thumb-encoder.c -o pie-thumb-encoder.o
ruby generate_field-decoder.rb thumb > pie-thumb-field-decoder.c
ruby generate_field-decoder.rb thumb header > pie-thumb-field-decoder.h
cc -c -Os -Wall -g -std=c99  pie-thumb-field-decoder.c -o pie-thumb-field-decoder.o
ruby api/generate_emit_wrapper.rb pie/pie-arm-encoder.c header > api/emit_arm.h
ruby api/generate_emit_wrapper.rb pie/pie-thumb-encoder.c header > api/emit_thumb.h
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -mfpu=neon -c -o elf_loader/elf_loader.o elf_loader/elf_loader.c
ruby api/generate_emit_wrapper.rb pie/pie-arm-encoder.c > api/emit_arm.c
ruby api/generate_emit_wrapper.rb pie/pie-thumb-encoder.c > api/emit_thumb.c
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -mfpu=neon -static -ldl -Wl,-Ttext-segment=0xa8000000 -DDBM_LINK_UNCOND_IMM -DDBM_INLINE_UNCOND_IMM -DDBM_LINK_COND_IMM -DDBM_LINK_CBZ -DDBM_LINK_TBZ -DDBM_TB_DIRECT  -DLINK_BX_ALT -DDBM_INLINE_HASH -DDBM_TRACES  -I/usr/include/libelf -o dbm dispatcher.S common.c dbm.c traces.c syscalls.c dispatcher.c signals.c util.S api/helpers.c api/plugin_support.c api/branch_decoder_support.c api/load_store.c elf_loader/elf_loader.o scanner_thumb.c scanner_arm.c api/emit_arm.c api/emit_thumb.c  pie/pie-arm-encoder.o pie/pie-arm-decoder.o pie/pie-arm-field-decoder.o pie/pie-thumb-encoder.o pie/pie-thumb-decoder.o pie/pie-thumb-field-decoder.o -lelf -lpthread
dispatcher.S: Assembler messages:
dispatcher.S:202: Error: cannot honor width suffix -- `str LR,[SP,#16]'
dispatcher.S:208: Error: selected processor does not support `subw R2,R2,#1' in Thumb mode
dispatcher.S:210: Error: selected processor does not support `cbz R2,create_trace_trampoline' in Thumb mode
dispatcher.S:211: Error: cannot honor width suffix -- `pop {R0-R2,LR}'
dispatcher.S:212: Error: cannot honor width suffix -- `ldr PC,[SP],#8'
dispatcher.S:450: Error: selected processor does not support `cbz R0,gotocc' in Thumb mode
dispatcher.S:454: Error: cannot honor width suffix -- `ldr PC,[SP],#8'
dispatcher.S:459: Error: cannot honor width suffix -- `push {r3-r6,r9,r12,lr}'
dispatcher.S:461: Error: selected processor does not support `vpush {d16-d31}' in Thumb mode
dispatcher.S:462: Error: selected processor does not support `vpush {d0-d7}' in Thumb mode
dispatcher.S:464: Error: selected processor does not support `mrs r5,CPSR' in Thumb mode
dispatcher.S:465: Error: selected processor does not support `vmrs r6,FPSCR' in Thumb mode
dispatcher.S:467: Error: cannot honor width suffix -- `ldr R9,=deliver_signals'
dispatcher.S:471: Error: cannot honor width suffix -- `bic R2,r4,#0x7'
dispatcher.S:476: Error: selected processor does not support `msr CPSR,r5' in Thumb mode
dispatcher.S:477: Error: selected processor does not support `vmsr FPSCR,r6' in Thumb mode
dispatcher.S:479: Error: selected processor does not support `vpop {d0-d7}' in Thumb mode
dispatcher.S:480: Error: selected processor does not support `vpop {d16-d31}' in Thumb mode
dispatcher.S:481: Error: cannot honor width suffix -- `pop {r3-r6,r9,r12,lr}'
dispatcher.S:493: Error: selected processor does not support `cbz R0,abort_self_signal' in Thumb mode
dispatcher.S:499: Error: cannot honor width suffix -- `mov R7,#268'
dispatcher.S:507: Error: cannot honor width suffix -- `ldr PC,[SP],#8'
dispatcher.S:448: Error: invalid offset, target not word aligned (0x0000017E)
dispatcher.S:448: Error: invalid offset, value too big (0x00000026)
/tmp/ccln0oo4.s: Assembler messages:
/tmp/ccln0oo4.s:105: Error: selected processor does not support `dmb SY' in ARM mode
/tmp/ccln0oo4.s:659: Error: selected processor does not support `dmb SY' in ARM mode
util.S: Assembler messages:
util.S:62: Error: cannot honor width suffix -- `pop {R0-R12,R14}'
util.S:94: Error: cannot honor width suffix -- `push {R4-R12,LR}'
util.S:114: Error: cannot honor width suffix -- `pop {R4-R12,PC}'
util.S:139: Error: cannot honor width suffix -- `ldm R12,{R3-R6}'
util.S:165: Error: cannot honor width suffix -- `push {r0-r3,r9,r12,lr}'
util.S:167: Error: selected processor does not support `cbz R0,sigret' in Thumb mode
util.S:169: Error: cannot honor width suffix -- `pop {r0-r3,r9,r12,lr}'
util.S:173: Error: cannot honor width suffix -- `mov R7,#173'
util.S:222: Error: selected processor does not support `ldrexd R4,R5,[R0]' in Thumb mode
util.S:224: Error: cannot honor width suffix -- `adc R5,R3'
util.S:225: Error: selected processor does not support `strexd R1,R4,R5,[R0]' in Thumb mode
util.S:251: Error: selected processor does not support `ldrex R2,[R0]' in Thumb mode
util.S:252: Error: cannot honor width suffix -- `add R2,R1'
util.S:253: Error: selected processor does not support `strex R3,R2,[R0]' in Thumb mode
util.S:276: Error: selected processor does not support `ldrex R2,[R0]' in Thumb mode
util.S:279: Error: cannot honor width suffix -- `sub R2,R2,R1'
util.S:280: Error: selected processor does not support `strex R3,R2,[R0]' in Thumb mode
util.S:286: Error: selected processor does not support `clrex' in Thumb mode
util.S:287: Error: cannot honor width suffix -- `mov R0,#-1'
util.S:314: Error: cannot honor width suffix -- `push {R5-R7,R9,R12,LR}'
util.S:315: Error: selected processor does not support `vpush {d16-d31}' in Thumb mode
util.S:316: Error: selected processor does not support `vpush {d0-d7}' in Thumb mode
util.S:319: Error: cannot honor width suffix -- `bic R6,R7,#7'
util.S:322: Error: selected processor does not support `mrs R5,CPSR' in Thumb mode
util.S:323: Error: selected processor does not support `vmrs R6,FPSCR' in Thumb mode
util.S:329: Error: selected processor does not support `msr CPSR,R5' in Thumb mode
util.S:330: Error: selected processor does not support `vmsr FPSCR,R6' in Thumb mode
util.S:332: Error: selected processor does not support `vpop {d0-d7}' in Thumb mode
util.S:333: Error: selected processor does not support `vpop {d16-d31}' in Thumb mode
util.S:334: Error: cannot honor width suffix -- `pop {R5-R7,R9,R12,PC}'
makefile:64: recipe for target 'dbm' failed
make[1]: *** [dbm] Error 1
makefile:54: recipe for target 'all' failed
make: *** [all] Error 2

@GuillermoCallaghan suggested me to edit the makefile and replace #CFLAGS+=-mcpu=native with CFLAGS+=-mcpu=cortex-a53. Certainly, it is built succesfully:

$ make clean all
rm -f dbm elf_loader/elf_loader.o
MAMBO: detected architecture "arm"
PIE: detected architecture "arm"
make --no-print-directory ARCH=arm pie
make[3]: Nothing to be done for 'pie'.
make --no-print-directory ARCH=thumb pie
make[3]: Nothing to be done for 'pie'.
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -mcpu=cortex-a53 -mfpu=neon -c -o elf_loader/elf_loader.o elf_loader/elf_loader.c
cc -D_GNU_SOURCE -g -std=gnu99 -O2 -mcpu=cortex-a53 -mfpu=neon -static -ldl -Wl,-Ttext-segment=0xa8000000 -DDBM_LINK_UNCOND_IMM -DDBM_INLINE_UNCOND_IMM -DDBM_LINK_COND_IMM -DDBM_LINK_CBZ -DDBM_LINK_TBZ -DDBM_TB_DIRECT  -DLINK_BX_ALT -DDBM_INLINE_HASH -DDBM_TRACES  -I/usr/include/libelf -o dbm dispatcher.S common.c dbm.c traces.c syscalls.c dispatcher.c signals.c util.S api/helpers.c api/plugin_support.c api/branch_decoder_support.c api/load_store.c elf_loader/elf_loader.o scanner_thumb.c scanner_arm.c api/emit_arm.c api/emit_thumb.c  pie/pie-arm-encoder.o pie/pie-arm-decoder.o pie/pie-arm-field-decoder.o pie/pie-thumb-encoder.o pie/pie-thumb-decoder.o pie/pie-thumb-field-decoder.o -lelf -lpthread

But the execution produces a Segmentation fault. It does neither start with gdb:

$ ./dbm /bin/ls
Segmentation fault

$ gdb --args ./dbm /bin/ls
GNU gdb (Raspbian 7.12-6) 7.12.0.20161007-git
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./dbm...done.
(gdb) r
Starting program: /home/pi/mambo/dbm /bin/ls
During startup program terminated with signal SIGSEGV, Segmentation fault.
(gdb) q

$ gdb ./dbm
GNU gdb (Raspbian 7.12-6) 7.12.0.20161007-git
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./dbm...done.
(gdb) r
Starting program: /home/pi/mambo/dbm
During startup program terminated with signal SIGSEGV, Segmentation fault.
(gdb) q

dbm scaner code error!

/*
Sorry, my English is bad ...

I compiled the dbm project to run on android and found the bug in android's /system/bin/linker ,
__dl__ZN6soinfoC2EPKcPK4statx This function should return to .text:00003528 in __dl___linker_init.

The error may appear in the __dl_memset "BX LR" instruction, which breaks the stack.
*/

//++++++++++++++++++++++++++++++++++++

.text:00000A94
.text:00000A94 0D 00 A0 E1 MOV R0, SP ; Alternative name is '_dl$a'
.text:00000A98 83 0A 00 FA BLX __dl___linker_init
.text:00000A9C 00 F0 A0 E1 MOV PC, R0
.text:00000A9C ; } // starts at A70
.text:00000A9C ; End of function _start

.text:000034AC __dl___linker_init ; CODE XREF: _start+4↑p
.text:000034AC
.text:000034AC var_19C = -0x19C
.text:000034AC var_194 = -0x194
.text:000034AC var_18C = -0x18C
.text:000034AC var_188 = -0x188
.text:000034AC var_184 = -0x184
.text:000034AC var_180 = -0x180
.text:000034AC var_17C = -0x17C
.text:000034AC var_178 = -0x178
.text:000034AC anonymous_5 = -0x170
.text:000034AC anonymous_6 = -0x16C
.text:000034AC anonymous_1 = -0x168
.text:000034AC anonymous_0 = -0x164
.text:000034AC anonymous_2 = -0x160
.text:000034AC anonymous_3 = -0x15C
.text:000034AC anonymous_4 = -0x158
.text:000034AC var_D4 = -0xD4
.text:000034AC var_D0 = -0xD0
.text:000034AC var_C8 = -0xC8
.text:000034AC var_C4 = -0xC4
.text:000034AC var_BC = -0xBC
.text:000034AC var_AC = -0xAC
.text:000034AC var_38 = -0x38
.text:000034AC
.text:000034AC ; __unwind {
.text:000034AC 2D E9 F0 4F PUSH.W {R4-R11,LR}
.text:000034B0 E7 B0 SUB SP, SP, #0x19C
.text:000034B2 04 AF ADD R7, SP, #0x10
.text:000034B4 DF F8 84 66 LDR.W R6, =(_dl__GLOBAL_OFFSET_TABLE - 0x34C4)
.text:000034B8 50 F8 04 3B LDR.W R3, [R0],#4
.text:000034BC 07 F1 24 0B ADD.W R11, R7, #0x24 ; '$'
.text:000034C0 7E 44 ADD R6, PC ; _dl__GLOBAL_OFFSET_TABLE
.text:000034C2 59 1C ADDS R1, R3, #1
.text:000034C4 CB F8 04 00 STR.W R0, [R11,#4]
.text:000034C8 00 EB 81 00 ADD.W R0, R0, R1,LSL#2
.text:000034CC CB F8 00 30 STR.W R3, [R11]
.text:000034D0 CB F8 08 00 STR.W R0, [R11,#8]
.text:000034D4
.text:000034D4 loc_34D4 ; CODE XREF: __dl___linker_init+30↓j
.text:000034D4 02 46 MOV R2, R0
.text:000034D6 04 30 ADDS R0, #4
.text:000034D8 14 68 LDR R4, [R2]
.text:000034DA 00 2C CMP R4, #0
.text:000034DC FA D1 BNE loc_34D4
.text:000034DE 03 46 MOV R3, R0
.text:000034E0 01 46 MOV R1, R0
.text:000034E2 CB F8 0C 00 STR.W R0, [R11,#0xC]
.text:000034E6
.text:000034E6 loc_34E6 ; CODE XREF: __dl___linker_init+48↓j
.text:000034E6 0D 68 LDR R5, [R1]
.text:000034E8 35 B1 CBZ R5, loc_34F8
.text:000034EA 07 2D CMP R5, #7
.text:000034EC 01 D1 BNE loc_34F2
.text:000034EE 4D 68 LDR R5, [R1,#4]
.text:000034F0 02 E0 B loc_34F8
.text:000034F2 ; ---------------------------------------------------------------------------
.text:000034F2
.text:000034F2 loc_34F2 ; CODE XREF: __dl___linker_init+40↑j
.text:000034F2 08 31 ADDS R1, #8
.text:000034F4 F7 E7 B loc_34E6
.text:000034F6 ; ---------------------------------------------------------------------------
.text:000034F6
.text:000034F6 loc_34F6 ; CODE XREF: __dl___linker_init+52↓j
.text:000034F6 08 33 ADDS R3, #8
.text:000034F8
.text:000034F8 loc_34F8 ; CODE XREF: __dl___linker_init+3C↑j
.text:000034F8 ; __dl___linker_init+44↑j
.text:000034F8 1A 68 LDR R2, [R3]
.text:000034FA 22 B1 CBZ R2, loc_3506
.text:000034FC 09 2A CMP R2, #9
.text:000034FE FA D1 BNE loc_34F6
.text:00003500 D3 F8 04 90 LDR.W R9, [R3,#4]
.text:00003504 00 E0 B loc_3508
.text:00003506 ; ---------------------------------------------------------------------------
.text:00003506
.text:00003506 loc_3506 ; CODE XREF: __dl___linker_init+4E↑j
.text:00003506 91 46 MOV R9, R2
.text:00003508
.text:00003508 loc_3508 ; CODE XREF: __dl___linker_init+58↑j
.text:00003508 C0 EF 10 00 VMOV.I32 D16, #0
.text:0000350C E8 69 LDR R0, [R5,#0x1C]
.text:0000350E 07 F1 38 0A ADD.W R10, R7, #0x38 ; '8'
.text:00003512 DF F8 2C 16 LDR.W R1, =(aDynamicLinker - 0x3522)
.text:00003516 00 22 MOVS R2, #0
.text:00003518 05 EB 00 08 ADD.W R8, R5, R0
.text:0000351C 50 46 MOV R0, R10
.text:0000351E 79 44 ADD R1, PC ; "[dynamic linker]"
.text:00003520 CD ED 00 0B VSTR D16, [SP,#0x19C+var_19C]
.text:00003524 FD F7 44 FF BL __dl__ZN6soinfoC2EPKcPK4statx
.text:00003528 DF F8 18 16 LDR.W R1, =(_start_ptr - 0xEFE8)
.text:0000352C 76 58 LDR R6, [R6,R1] ; _start
.text:0000352E B1 45 CMP R9, R6
.text:00003530 07 D1 BNE loc_3542
.text:00003532 DB F8 04 10 LDR.W R1, [R11,#4]

.text:000013B0 __dl__ZN6soinfoC2EPKcPK4statx ; CODE XREF: __dl__GLOBAL__sub_I_dlerror+16↑p
.text:000013B0 ; __dl__GLOBAL__sub_I_g_ld_debug_verbosity+44↑p ...
.text:000013B0 ; __unwind {
.text:000013B0 F8 B5 PUSH {R3-R7,LR} ; Alternative name is '_dl$t'
.text:000013B2 00 25 MOVS R5, #0
.text:000013B4 04 46 MOV R4, R0
.text:000013B6 0F 46 MOV R7, R1
.text:000013B8 16 46 MOV R6, R2
.text:000013BA 29 46 MOV R1, R5
.text:000013BC C0 F8 30 51 STR.W R5, [R0,#0x130]
.text:000013C0 4F F4 A8 72 MOV.W R2, #0x150
.text:000013C4 C0 F8 34 51 STR.W R5, [R0,#0x134]
.text:000013C8 C0 F8 38 51 STR.W R5, [R0,#0x138]
.text:000013CC C0 F8 3C 51 STR.W R5, [R0,#0x13C]
.text:000013D0 03 F0 54 ED BLX __dl_memset
.text:000013D4 20 46 MOV R0, R4
.text:000013D6 39 46 MOV R1, R7
.text:000013D8 80 22 MOVS R2, #0x80
.text:000013DA 05 F0 46 FF BL __dl_strlcpy
.text:000013DE 4F F0 80 43 MOV.W R3, #0x40000000
.text:000013E2 C4 F8 24 51 STR.W R5, [R4,#0x124]
.text:000013E6 C4 F8 A8 30 STR.W R3, [R4,#0xA8]
.text:000013EA 4E B1 CBZ R6, loc_1400
.text:000013EC 30 68 LDR R0, [R6]
.text:000013EE DD E9 06 23 LDRD.W R2, R3, [SP,#0x18]
.text:000013F2 C4 F8 28 01 STR.W R0, [R4,#0x128]
.text:000013F6 31 6E LDR R1, [R6,#0x60]
.text:000013F8 C4 E9 50 23 STRD.W R2, R3, [R4,#0x140]
.text:000013FC C4 F8 2C 11 STR.W R1, [R4,#0x12C]
.text:00001400
.text:00001400 loc_1400 ; CODE XREF: __dl__ZN6soinfoC2EPKcPK4statx+3A↑j
.text:00001400 20 46 MOV R0, R4
.text:00001402 F8 BD POP {R3-R7,PC}
.text:00001402 ; } // starts at 13B0
.text:00001402 ; End of function __dl__ZN6soinfoC2EPKcPK4statx
.text:00001402
.text:00001404

.text:00004E7C __dl_memset ; CODE XREF: __dl__ZL24debuggerd_signal_handleriP7siginfoPv+16↑p
.text:00004E7C ; __dl__ZL24debuggerd_signal_handleriP7siginfoPv+194↑p ...
.text:00004E7C 01 00 2D E9 STMFD SP!, {R0}
.text:00004E80 10 1B E0 EE VDUP.8 Q0, R1
.text:00004E84 20 20 52 E2 SUBS R2, R2, #0x20 ; ' '
.text:00004E88 03 00 00 3A BCC loc_4E9C
.text:00004E8C 50 21 20 F2 VMOV Q1, Q0
.text:00004E90
.text:00004E90 loc_4E90 ; CODE XREF: __dl_memset+1C↓j
.text:00004E90 20 20 52 E2 SUBS R2, R2, #0x20 ; ' '
.text:00004E94 0D 02 00 F4 VST1.8 {D0-D3}, [R0]!
.text:00004E98 FC FF FF 2A BCS loc_4E90
.text:00004E9C
.text:00004E9C loc_4E9C ; CODE XREF: __dl_memset+C↑j
.text:00004E9C 20 20 82 E2 ADD R2, R2, #0x20 ; ' '
.text:00004EA0 10 00 12 E3 TST R2, #0x10
.text:00004EA4 00 00 00 0A BEQ loc_4EAC
.text:00004EA8 0D 0A 00 F4 VST1.8 {D0-D1}, [R0]!
.text:00004EAC
.text:00004EAC loc_4EAC ; CODE XREF: __dl_memset+28↑j
.text:00004EAC 82 CE B0 E1 MOVS R12, R2,LSL#29
.text:00004EB0 00 00 00 3A BCC loc_4EB8
.text:00004EB4 0D 07 00 F4 VST1.8 {D0}, [R0]!
.text:00004EB8
.text:00004EB8 loc_4EB8 ; CODE XREF: __dl_memset+34↑j
.text:00004EB8 00 00 00 AA BGE loc_4EC0
.text:00004EBC 0D 08 80 F4 VST1.32 {D0[0]}, [R0]!
.text:00004EC0
.text:00004EC0 loc_4EC0 ; CODE XREF: __dl_memset:loc_4EB8↑j
.text:00004EC0 82 CF B0 E1 MOVS R12, R2,LSL#31
.text:00004EC4 01 10 C0 44 STRMIB R1, [R0],#1
.text:00004EC8 01 10 C0 24 STRCSB R1, [R0],#1
.text:00004ECC 01 10 C0 24 STRCSB R1, [R0],#1
.text:00004ED0 01 00 BD E8 LDMFD SP!, {R0}
.text:00004ED4 1E FF 2F E1 BX LR
.text:00004ED4 ; End of function __dl_memset

//+++++++++++++++++++++++++++++++++++++++++++++++++++++

shell@hammerhead:/ $ /data/local/tmp/dbm /data/local/tmp/execve
[load_elf] : /data/local/tmp/execve
[load_elf] mmap base_addr:0xb6fa3000
[load_elf] : /system/bin/linker
[main] entry address: 0xb6f92a94
[main] load_elf:
[scan] bb 0 : b55d8000


Platform: Thumb-mixed
Code:0x78 0x47 0x00 0x00
Disasm:
0xb55d8000: bx pc
0xb55d8002: movs r0, r0
0xb55d8004:


Platform: ARM
Code:0x04 0x00 0x03 0xe5 0x03 0x00 0xa0 0xe1 0xf8 0x5f 0x2d 0xe9 0x08 0x20 0x43 0xe2 0x20 0x0b 0x6d 0xed 0x10 0x0b 0x2d 0xed 0x00 0x50 0x0f 0xe1 0x10 0x6a 0xf1 0xee 0x38 0x31 0x9f 0xe5 0x34 0x90 0x9f 0xe5 0x0d 0x40 0xa0 0xe1 0x39 0xff 0x2f 0xe1 0x04 0xd0 0xa0 0xe1 0x05 0xf0 0x29 0xe1 0x10 0x6a 0xe1 0xee 0x10 0x0b 0xbd 0xec 0x20 0x0b 0xfd 0xec 0xf8 0x5f 0xbd 0xe8 0x0c 0x10 0x9d 0xe5 0x0c 0x10 0x03 0xe5 0x07 0x00 0xbd 0xe8 0x0c 0xd0 0x43 0xe2 0x04 0x30 0x9d 0xe4 0x40 0x00 0x00 0xea 0x61 0x9b 0x00 0x00 0x03 0xf0 0x4f 0xe2 0xcd 0xf8 0x10 0xe0 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x0a 0x5c 0xa2 0xf2 0x01 0x02 0x0a 0x54 0x22 0xb1 0xbd 0xe8 0x07 0x40 0x5d 0xf8 0x08 0xfb 0x00 0xbf 0x78 0x47 0x00 0xbf 0x10 0x20 0x8d 0xe2 0x78 0x12 0x2d 0xe9 0x20 0x0b 0x6d 0xed 0x10 0x0b 0x2d 0xed 0x00 0x50 0x0f 0xe1 0x10 0x6a 0xf1 0xee 0x00 0x10 0xa0 0xe1 0xb0 0x00 0x9f 0xe5 0x24 0x31 0x9f 0xe5 0x0d 0x40 0xa0 0xe1 0x07 0xd0 0xcd 0xe3 0x33 0xff 0x2f 0xe1 0x04 0xd0 0xa0 0xe1 0x05 0xf0 0x29 0xe1 0x10 0x6a 0xe1 0xee 0x10 0x0b 0xbd 0xec 0x20 0x0b 0xfd 0xec 0x78 0x12 0xbd 0xe8 0x07 0x40 0xbd 0xe8 0x21 0x00 0x00 0xea 0x38 0xe0 0x8d 0xe5 0x3c 0x80 0x8d 0xe5 0x07 0x00 0xa0 0xe1 0x0d 0x10 0xa0 0xe1 0x08 0x20 0xa0 0xe1 0x68 0x30 0x9f 0xe5 0x5c 0x40 0x9f 0xe5 0x0d 0x50 0xa0 0xe1 0x07 0xd0 0xcd 0xe3 0x34 0xff 0x2f 0xe1 0x05 0xd0 0xa0 0xe1 0x00 0x00 0x50 0xe3 0x0f 0x00 0x00 0x0a 0xff 0x00 0x9d 0xe8 0x77 0x00 0x57 0xe3 0x40 0xd0 0x8d 0x02 0xad 0x00 0x57 0xe3 0x40 0xd0 0x8d 0x02 0x00 0x00 0x00 0xef 0xff 0x00 0x8d 0xe8 0x07 0x00 0xa0 0xe1 0x0d 0x10 0xa0 0xe1 0x08 0x20 0xa0 0xe1 0x20 0x30 0x9f 0xe5 0x18 0x40 0x9f 0xe5 0x0d 0x50 0xa0 0xe1 0x07 0xd0 0xcd 0xe3 0x34 0xff 0x2f 0xe1 0x05 0xd0 0xa0 0xe1 0xff 0x5f 0xbd 0xe8 0x02 0x00 0x00 0xea 0xd9 0x95 0x00 0x00 0x45 0x9a 0x00 0x00 0x00 0x80 0x5d 0xb6 0x03 0xf0 0x4f 0xe2 0x01 0xb4 0xdf 0xf8 0x68 0x00 0x00 0x68 0x00 0xb1 0x02 0xe0 0x01 0xbc 0x5d 0xf8 0x08 0xfb 0x02 0x98 0x83 0xb0 0x06 0xb4 0x2d 0xe9 0x78 0x52 0x09 0xa9 0x6d 0xed 0x20 0x0b 0x2d 0xed 0x10 0x0b 0xef 0xf3 0x00 0x85 0xf1 0xee 0x10 0x6a 0xdf 0xf8 0x44 0x90 0x6c 0x46 0x24 0xf0 0x07 0x02 0x95 0x46 0xc8 0x47 0xa5 0x46 0x85 0xf3 0x00 0x89 0xe1 0xee 0x10 0x6a 0xbd 0xec 0x10 0x0b 0xfd 0xec 0x20 0x0b 0xbd 0xe8 0x78 0x52 0x30 0xb1 0x80 0xb4 0x03 0xaa 0x07 0xca 0x4f 0xf4 0x86 0x77 0x00 0xdf 0x80 0xbc 0x06 0xbc 0x03 0xb0 0x01 0xbc 0x5d 0xf8 0x08 0xfb 0x14 0x0f 0xf9 0xb6 0xd1 0x92 0x00 0x00 0x91 0x9d 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Disasm:
0xb55d8004: str r0, [r3, #-4]
0xb55d8008: mov r0, r3
0xb55d800c: push {r3, r4, r5, r6, r7, r8, sb, sl, fp, ip, lr}
0xb55d8010: sub r2, r3, #8
0xb55d8014: vpush {d16, d17, d18, d19, d20, d21, d22, d23, d24, d25, d26, d27, d28, d29, d30, d31}
0xb55d8018: vpush {d0, d1, d2, d3, d4, d5, d6, d7}
0xb55d801c: mrs r5, apsr
0xb55d8020: vmrs r6, fpscr
0xb55d8024: ldr r3, [pc, #0x138]
0xb55d8028: ldr sb, [pc, #0x34]
0xb55d802c: mov r4, sp
0xb55d8030: blx sb
0xb55d8034: mov sp, r4
0xb55d8038: msr cpsr_fc, r5
0xb55d803c: vmsr fpscr, r6
0xb55d8040: vpop {d0, d1, d2, d3, d4, d5, d6, d7}
0xb55d8044: vpop {d16, d17, d18, d19, d20, d21, d22, d23, d24, d25, d26, d27, d28, d29, d30, d31}
0xb55d8048: pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, ip, lr}
0xb55d804c: ldr r1, [sp, #0xc]
0xb55d8050: str r1, [r3, #-0xc]
0xb55d8054: pop {r0, r1, r2}
0xb55d8058: sub sp, r3, #0xc
0xb55d805c: pop {r3}
0xb55d8060: b #b55d8168
0xb55d8064: andeq sb, r0, r1, ror #16
0xb55d8068: sub pc, pc, #3
0xb55d806c: ands pc, r0, sp, asr #11
0xb55d8070: svclt #0xbf00
0xb55d8074: svclt #0xbf00
0xb55d8078:

[scan] scan(0xb6f92a94): 0xb55d8200 (bb 2)
[scan] ++++++++++++++++++++++++++++++++++
[scan_arm] :


Platform: ARM
Code:0x0d 0x00 0xa0 0xe1
Disasm:
0xb6f92a94: mov r0, sp
0xb6f92a98:


Platform: ARM
Code:0x83 0x0a 0x00 0xfa
Disasm:
0xb6f92a98: blx #b6f954ac
0xb6f92a9c:


Platform: ARM
Code:0x60 0x00 0xbd 0xe8 0x0d 0x00 0xa0 0xe1 0x9c 0xea 0x02 0xe3 0xf9 0xe6 0x4b 0xe3 0x0c 0xd0 0x4d 0xe2 0x0f 0x00 0x2d 0xe9 0x1c 0x30 0x8d 0xe2 0xad 0x04 0x05 0xe3 0xf9 0x06 0x4b 0xe3 0x02 0x10 0x00 0xe3 0x00 0x10 0x40 0xe3 0x74 0xff 0xff 0xea 0x00 0x00 0x00 0x00
Disasm:
0xb55d8200: pop {r5, r6}
0xb55d8204: mov r0, sp
0xb55d8208: movw lr, #0x2a9c
0xb55d820c: movt lr, #0xb6f9
0xb55d8210: sub sp, sp, #0xc
0xb55d8214: push {r0, r1, r2, r3}
0xb55d8218: add r3, sp, #0x1c
0xb55d821c: movw r0, #0x54ad
0xb55d8220: movt r0, #0xb6f9
0xb55d8224: movw r1, #2
0xb55d8228: movt r1, #0
0xb55d822c: b #b55d8004
0xb55d8230: andeq r0, r0, r0
0xb55d8234:

[main] Address of first basic block is: 0xb55d8204
[dispatcher] addr: 0x9b61 target:b6f954ad source_index:2 next_addr:0xbe8e5690
[dispatcher] 1:0 2:b6f954ad 3:1[scan] scan(0xb6f954ad): 0xb55d8300 (bb 3)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x2d 0xe9
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xe7 0xb0
Disasm:
0xb6f954b0: sub sp, #0x19c
0xb6f954b2:


Platform: Thumb-mixed
Code:0x04 0xaf
Disasm:
0xb6f954b2: add r7, sp, #0x10
0xb6f954b4:


Platform: Thumb-mixed
Code:0xdf 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x50 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x07 0xf1
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x7e 0x44
Disasm:
0xb6f954c0: add r6, pc
0xb6f954c2:


Platform: Thumb-mixed
Code:0x59 0x1c
Disasm:
0xb6f954c2: adds r1, r3, #1
0xb6f954c4:


Platform: Thumb-mixed
Code:0xcb 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x00 0xeb
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xcb 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xcb 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x02 0x46
Disasm:
0xb6f954d4: mov r2, r0
0xb6f954d6:


Platform: Thumb-mixed
Code:0x04 0x30
Disasm:
0xb6f954d6: adds r0, #4
0xb6f954d8:


Platform: Thumb-mixed
Code:0x14 0x68
Disasm:
0xb6f954d8: ldr r4, [r2]
0xb6f954da:


Platform: Thumb-mixed
Code:0x00 0x2c
Disasm:
0xb6f954da: cmp r4, #0
0xb6f954dc:


Platform: Thumb-mixed
Code:0xfa 0xd1
Disasm:
0xb6f954dc: bne #b6f954d4
0xb6f954de:


Platform: Thumb-mixed
Code:0x60 0xbc 0x2d 0xe9 0xf0 0x4f 0xe7 0xb0 0x04 0xaf 0x45 0xf6 0x3c 0x36 0xcb 0xf2 0xf9 0x66 0xd6 0xf8 0x00 0x60 0x50 0xf8 0x04 0x3b 0x07 0xf1 0x24 0x0b 0x01 0xb4 0x45 0xf2 0xc4 0x40 0xcb 0xf2 0xf9 0x60 0x06 0x44 0x01 0xbc 0x59 0x1c 0xcb 0xf8 0x04 0x00 0x00 0xeb 0x81 0x00 0xcb 0xf8 0x00 0x30 0xcb 0xf8 0x08 0x00 0x02 0x46 0x04 0x30 0x14 0x68 0x00 0x2c 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x03 0x01 0xc0 0xf2 0x00 0x01 0x05 0xd1 0x45 0xf2 0xdf 0x40 0xcb 0xf2 0xf9 0x60 0xff 0xf7 0x4b 0xbe 0x45 0xf2 0xd5 0x40 0xcb 0xf2 0xf9 0x60 0xff 0xf7 0x45 0xbe 0x00 0x00 0x00 0x00
Disasm:
0xb55d8300: pop {r5, r6}
0xb55d8302: push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
0xb55d8306: sub sp, #0x19c
0xb55d8308: add r7, sp, #0x10
0xb55d830a: movw r6, #0x5b3c
0xb55d830e: movt r6, #0xb6f9
0xb55d8312: ldr.w r6, [r6]
0xb55d8316: ldr r3, [r0], #4
0xb55d831a: add.w fp, r7, #0x24
0xb55d831e: push {r0}
0xb55d8320: movw r0, #0x54c4
0xb55d8324: movt r0, #0xb6f9
0xb55d8328: add r6, r0
0xb55d832a: pop {r0}
0xb55d832c: adds r1, r3, #1
0xb55d832e: str.w r0, [fp, #4]
0xb55d8332: add.w r0, r0, r1, lsl #2
0xb55d8336: str.w r3, [fp]
0xb55d833a: str.w r0, [fp, #8]
0xb55d833e: mov r2, r0
0xb55d8340: adds r0, #4
0xb55d8342: ldr r4, [r2]
0xb55d8344: cmp r4, #0
0xb55d8346: nop
0xb55d8348: nop
0xb55d834a: nop
0xb55d834c: sub sp, #0xc
0xb55d834e: push {r0, r1, r2, r3}
0xb55d8350: add.w r3, sp, #0x1c
0xb55d8354: movw r1, #3
0xb55d8358: movt r1, #0
0xb55d835c: bne #b55d836a
0xb55d835e: movw r0, #0x54df
0xb55d8362: movt r0, #0xb6f9
0xb55d8366: b.w #b55d8000
0xb55d836a: movw r0, #0x54d5
0xb55d836e: movt r0, #0xb6f9
0xb55d8372: b.w #b55d8000
0xb55d8376: movs r0, r0
0xb55d8378: movs r0, r0
0xb55d837a:

[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:3 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8376 2:b6f954d5 3:3b[scan] scan(0xb6f954d5): 0xb55d8400 (bb 4)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x02 0x46
Disasm:
0xb6f954d4: mov r2, r0
0xb6f954d6:


Platform: Thumb-mixed
Code:0x04 0x30
Disasm:
0xb6f954d6: adds r0, #4
0xb6f954d8:


Platform: Thumb-mixed
Code:0x14 0x68
Disasm:
0xb6f954d8: ldr r4, [r2]
0xb6f954da:


Platform: Thumb-mixed
Code:0x00 0x2c
Disasm:
0xb6f954da: cmp r4, #0
0xb6f954dc:


Platform: Thumb-mixed
Code:0xfa 0xd1
Disasm:
0xb6f954dc: bne #b6f954d4
0xb6f954de:


Platform: Thumb-mixed
Code:0x60 0xbc 0x02 0x46 0x04 0x30 0x14 0x68 0x00 0x2c 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x04 0x01 0xc0 0xf2 0x00 0x01 0x05 0xd1 0x45 0xf2 0xdf 0x40 0xcb 0xf2 0xf9 0x60 0xff 0xf7 0xe9 0xbd 0x45 0xf2 0xd5 0x40 0xcb 0xf2 0xf9 0x60 0xff 0xf7 0xe3 0xbd 0x00 0x00 0x00 0x00
Disasm:
0xb55d8400: pop {r5, r6}
0xb55d8402: mov r2, r0
0xb55d8404: adds r0, #4
0xb55d8406: ldr r4, [r2]
0xb55d8408: cmp r4, #0
0xb55d840a: nop
0xb55d840c: nop
0xb55d840e: nop
0xb55d8410: sub sp, #0xc
0xb55d8412: push {r0, r1, r2, r3}
0xb55d8414: add.w r3, sp, #0x1c
0xb55d8418: movw r1, #4
0xb55d841c: movt r1, #0
0xb55d8420: bne #b55d842e
0xb55d8422: movw r0, #0x54df
0xb55d8426: movt r0, #0xb6f9
0xb55d842a: b.w #b55d8000
0xb55d842e: movw r0, #0x54d5
0xb55d8432: movt r0, #0xb6f9
0xb55d8436: b.w #b55d8000
0xb55d843a: movs r0, r0
0xb55d843c: movs r0, r0
0xb55d843e:

[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954d5 source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954d5 3:3b[dispatcher] addr: 0x9b61 target:b6f954df source_index:4 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8403 2:b6f954df 3:3b[scan] scan(0xb6f954df): 0xb55d8500 (bb 5)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x03 0x46
Disasm:
0xb6f954de: mov r3, r0
0xb6f954e0:


Platform: Thumb-mixed
Code:0x01 0x46
Disasm:
0xb6f954e0: mov r1, r0
0xb6f954e2:


Platform: Thumb-mixed
Code:0xcb 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x0d 0x68
Disasm:
0xb6f954e6: ldr r5, [r1]
0xb6f954e8:


Platform: Thumb-mixed
Code:0x35 0xb1
Disasm:
0xb6f954e8: cbz r5, #b6f954f8
0xb6f954ea:


Platform: Thumb-mixed
Code:0x60 0xbc 0x03 0x46 0x01 0x46 0xcb 0xf8 0x0c 0x00 0x0d 0x68 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x5d 0xb1 0x40 0xf2 0x05 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0xeb 0x40 0xcb 0xf2 0xf9 0x60 0x0d 0xf1 0x1c 0x03 0xff 0xf7 0x68 0xbd 0x40 0xf2 0x05 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0xf9 0x40 0xcb 0xf2 0xf9 0x60 0x0d 0xf1 0x1c 0x03 0xff 0xf7 0x5c 0xbd 0x00 0x00 0x00 0x00
Disasm:
0xb55d8500: pop {r5, r6}
0xb55d8502: mov r3, r0
0xb55d8504: mov r1, r0
0xb55d8506: str.w r0, [fp, #0xc]
0xb55d850a: ldr r5, [r1]
0xb55d850c: nop
0xb55d850e: nop
0xb55d8510: nop
0xb55d8512: sub sp, #0xc
0xb55d8514: push {r0, r1, r2, r3}
0xb55d8516: cbz r5, #b55d8530
0xb55d8518: movw r1, #5
0xb55d851c: movt r1, #0
0xb55d8520: movw r0, #0x54eb
0xb55d8524: movt r0, #0xb6f9
0xb55d8528: add.w r3, sp, #0x1c
0xb55d852c: b.w #b55d8000
0xb55d8530: movw r1, #5
0xb55d8534: movt r1, #0
0xb55d8538: movw r0, #0x54f9
0xb55d853c: movt r0, #0xb6f9
0xb55d8540: add.w r3, sp, #0x1c
0xb55d8544: b.w #b55d8000
0xb55d8548: movs r0, r0
0xb55d854a: movs r0, r0
0xb55d854c:

[dispatcher] addr: 0x9b61 target:b6f954eb source_index:5 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8503 2:b6f954eb 3:3b[scan] scan(0xb6f954eb): 0xb55d8600 (bb 6)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x07 0x2d
Disasm:
0xb6f954ea: cmp r5, #7
0xb6f954ec:


Platform: Thumb-mixed
Code:0x01 0xd1
Disasm:
0xb6f954ec: bne #b6f954f2
0xb6f954ee:


Platform: Thumb-mixed
Code:0x60 0xbc 0x07 0x2d 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x06 0x01 0xc0 0xf2 0x00 0x01 0x05 0xd1 0x45 0xf2 0xef 0x40 0xcb 0xf2 0xf9 0x60 0xff 0xf7 0xec 0xbc 0x45 0xf2 0xf3 0x40 0xcb 0xf2 0xf9 0x60 0xff 0xf7 0xe6 0xbc 0x00 0x00 0x00 0x00
Disasm:
0xb55d8600: pop {r5, r6}
0xb55d8602: cmp r5, #7
0xb55d8604: nop
0xb55d8606: nop
0xb55d8608: nop
0xb55d860a: sub sp, #0xc
0xb55d860c: push {r0, r1, r2, r3}
0xb55d860e: add.w r3, sp, #0x1c
0xb55d8612: movw r1, #6
0xb55d8616: movt r1, #0
0xb55d861a: bne #b55d8628
0xb55d861c: movw r0, #0x54ef
0xb55d8620: movt r0, #0xb6f9
0xb55d8624: b.w #b55d8000
0xb55d8628: movw r0, #0x54f3
0xb55d862c: movt r0, #0xb6f9
0xb55d8630: b.w #b55d8000
0xb55d8634: movs r0, r0
0xb55d8636: movs r0, r0
0xb55d8638:

[dispatcher] addr: 0x9b61 target:b6f954f3 source_index:6 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8603 2:b6f954f3 3:3b[scan] scan(0xb6f954f3): 0xb55d8700 (bb 7)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x08 0x31
Disasm:
0xb6f954f2: adds r1, #8
0xb6f954f4:


Platform: Thumb-mixed
Code:0xf7 0xe7
Disasm:
0xb6f954f4: b #b6f954e6
0xb6f954f6:


Platform: Thumb-mixed
Code:0x60 0xbc 0x08 0x31 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x07 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0xe7 0x40 0xcb 0xf2 0xf9 0x60 0xff 0xf7 0x70 0xbc 0x00 0x00 0x00 0x00
Disasm:
0xb55d8700: pop {r5, r6}
0xb55d8702: adds r1, #8
0xb55d8704: sub sp, #0xc
0xb55d8706: push {r0, r1, r2, r3}
0xb55d8708: add.w r3, sp, #0x1c
0xb55d870c: movw r1, #7
0xb55d8710: movt r1, #0
0xb55d8714: movw r0, #0x54e7
0xb55d8718: movt r0, #0xb6f9
0xb55d871c: b.w #b55d8000
0xb55d8720: movs r0, r0
0xb55d8722: movs r0, r0
0xb55d8724:

[dispatcher] addr: 0x9b61 target:b6f954e7 source_index:7 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8703 2:b6f954e7 3:3b[scan] scan(0xb6f954e7): 0xb55d8800 (bb 8)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x0d 0x68
Disasm:
0xb6f954e6: ldr r5, [r1]
0xb6f954e8:


Platform: Thumb-mixed
Code:0x35 0xb1
Disasm:
0xb6f954e8: cbz r5, #b6f954f8
0xb6f954ea:


Platform: Thumb-mixed
Code:0x60 0xbc 0x0d 0x68 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x5d 0xb1 0x40 0xf2 0x08 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0xeb 0x40 0xcb 0xf2 0xf9 0x60 0x0d 0xf1 0x1c 0x03 0xff 0xf7 0xec 0xbb 0x40 0xf2 0x08 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0xf9 0x40 0xcb 0xf2 0xf9 0x60 0x0d 0xf1 0x1c 0x03 0xff 0xf7 0xe0 0xbb 0x00 0x00 0x00 0x00
Disasm:
0xb55d8800: pop {r5, r6}
0xb55d8802: ldr r5, [r1]
0xb55d8804: nop
0xb55d8806: nop
0xb55d8808: nop
0xb55d880a: sub sp, #0xc
0xb55d880c: push {r0, r1, r2, r3}
0xb55d880e: cbz r5, #b55d8828
0xb55d8810: movw r1, #8
0xb55d8814: movt r1, #0
0xb55d8818: movw r0, #0x54eb
0xb55d881c: movt r0, #0xb6f9
0xb55d8820: add.w r3, sp, #0x1c
0xb55d8824: b.w #b55d8000
0xb55d8828: movw r1, #8
0xb55d882c: movt r1, #0
0xb55d8830: movw r0, #0x54f9
0xb55d8834: movt r0, #0xb6f9
0xb55d8838: add.w r3, sp, #0x1c
0xb55d883c: b.w #b55d8000
0xb55d8840: movs r0, r0
0xb55d8842: movs r0, r0
0xb55d8844:

[dispatcher] addr: 0x9b61 target:b6f954eb source_index:8 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8803 2:b6f954eb 3:3b[dispatcher] addr: 0x9b61 target:b6f954f3 source_index:6 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8603 2:b6f954f3 3:3b[dispatcher] addr: 0x9b61 target:b6f954e7 source_index:7 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8703 2:b6f954e7 3:3b[dispatcher] addr: 0x9b61 target:b6f954eb source_index:8 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8803 2:b6f954eb 3:3b[dispatcher] addr: 0x9b61 target:b6f954f3 source_index:6 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8603 2:b6f954f3 3:3b[dispatcher] addr: 0x9b61 target:b6f954e7 source_index:7 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8703 2:b6f954e7 3:3b[dispatcher] addr: 0x9b61 target:b6f954eb source_index:8 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8803 2:b6f954eb 3:3b[dispatcher] addr: 0x9b61 target:b6f954f3 source_index:6 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8603 2:b6f954f3 3:3b[dispatcher] addr: 0x9b61 target:b6f954e7 source_index:7 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8703 2:b6f954e7 3:3b[dispatcher] addr: 0x9b61 target:b6f954eb source_index:8 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8803 2:b6f954eb 3:3b[dispatcher] addr: 0x9b61 target:b6f954f3 source_index:6 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8603 2:b6f954f3 3:3b[dispatcher] addr: 0x9b61 target:b6f954e7 source_index:7 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8703 2:b6f954e7 3:3b[dispatcher] addr: 0x9b61 target:b6f954eb source_index:8 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8803 2:b6f954eb 3:3b[dispatcher] addr: 0x9b61 target:b6f954f3 source_index:6 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8603 2:b6f954f3 3:3b[dispatcher] addr: 0x9b61 target:b6f954e7 source_index:7 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8703 2:b6f954e7 3:3b[dispatcher] addr: 0x9b61 target:b6f954eb source_index:8 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8803 2:b6f954eb 3:3b[dispatcher] addr: 0x9b61 target:b6f954ef source_index:6 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8603 2:b6f954ef 3:3b[scan] scan(0xb6f954ef): 0xb55d8900 (bb 9)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x4d 0x68
Disasm:
0xb6f954ee: ldr r5, [r1, #4]
0xb6f954f0:


Platform: Thumb-mixed
Code:0x02 0xe0
Disasm:
0xb6f954f0: b #b6f954f8
0xb6f954f2:


Platform: Thumb-mixed
Code:0x60 0xbc 0x4d 0x68 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x09 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0xf9 0x40 0xcb 0xf2 0xf9 0x60 0xff 0xf7 0x70 0xbb 0x00 0x00 0x00 0x00
Disasm:
0xb55d8900: pop {r5, r6}
0xb55d8902: ldr r5, [r1, #4]
0xb55d8904: sub sp, #0xc
0xb55d8906: push {r0, r1, r2, r3}
0xb55d8908: add.w r3, sp, #0x1c
0xb55d890c: movw r1, #9
0xb55d8910: movt r1, #0
0xb55d8914: movw r0, #0x54f9
0xb55d8918: movt r0, #0xb6f9
0xb55d891c: b.w #b55d8000
0xb55d8920: movs r0, r0
0xb55d8922: movs r0, r0
0xb55d8924:

[dispatcher] addr: 0x9b61 target:b6f954f9 source_index:9 next_addr:0xbe8e54d0
[dispatcher] 1:b55d8903 2:b6f954f9 3:3b[scan] scan(0xb6f954f9): 0xb55d8a00 (bb 10)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x1a 0x68
Disasm:
0xb6f954f8: ldr r2, [r3]
0xb6f954fa:


Platform: Thumb-mixed
Code:0x22 0xb1
Disasm:
0xb6f954fa: cbz r2, #b6f95506
0xb6f954fc:


Platform: Thumb-mixed
Code:0x60 0xbc 0x1a 0x68 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x5a 0xb1 0x40 0xf2 0x0a 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0xfd 0x40 0xcb 0xf2 0xf9 0x60 0x0d 0xf1 0x1c 0x03 0xff 0xf7 0xec 0xba 0x40 0xf2 0x0a 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0x07 0x50 0xcb 0xf2 0xf9 0x60 0x0d 0xf1 0x1c 0x03 0xff 0xf7 0xe0 0xba 0x00 0x00 0x00 0x00
Disasm:
0xb55d8a00: pop {r5, r6}
0xb55d8a02: ldr r2, [r3]
0xb55d8a04: nop
0xb55d8a06: nop
0xb55d8a08: nop
0xb55d8a0a: sub sp, #0xc
0xb55d8a0c: push {r0, r1, r2, r3}
0xb55d8a0e: cbz r2, #b55d8a28
0xb55d8a10: movw r1, #0xa
0xb55d8a14: movt r1, #0
0xb55d8a18: movw r0, #0x54fd
0xb55d8a1c: movt r0, #0xb6f9
0xb55d8a20: add.w r3, sp, #0x1c
0xb55d8a24: b.w #b55d8000
0xb55d8a28: movw r1, #0xa
0xb55d8a2c: movt r1, #0
0xb55d8a30: movw r0, #0x5507
0xb55d8a34: movt r0, #0xb6f9
0xb55d8a38: add.w r3, sp, #0x1c
0xb55d8a3c: b.w #b55d8000
0xb55d8a40: movs r0, r0
0xb55d8a42: movs r0, r0
0xb55d8a44:

[dispatcher] addr: 0x9b61 target:b6f954fd source_index:a next_addr:0xbe8e54d0
[dispatcher] 1:b55d8a03 2:b6f954fd 3:3b[scan] scan(0xb6f954fd): 0xb55d8b00 (bb 11)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x09 0x2a
Disasm:
0xb6f954fc: cmp r2, #9
0xb6f954fe:


Platform: Thumb-mixed
Code:0xfa 0xd1
Disasm:
0xb6f954fe: bne #b6f954f6
0xb6f95500:


Platform: Thumb-mixed
Code:0x60 0xbc 0x09 0x2a 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x0b 0x01 0xc0 0xf2 0x00 0x01 0x05 0xd1 0x45 0xf2 0x01 0x50 0xcb 0xf2 0xf9 0x60 0xff 0xf7 0x6c 0xba 0x45 0xf2 0xf7 0x40 0xcb 0xf2 0xf9 0x60 0xff 0xf7 0x66 0xba 0x00 0x00 0x00 0x00
Disasm:
0xb55d8b00: pop {r5, r6}
0xb55d8b02: cmp r2, #9
0xb55d8b04: nop
0xb55d8b06: nop
0xb55d8b08: nop
0xb55d8b0a: sub sp, #0xc
0xb55d8b0c: push {r0, r1, r2, r3}
0xb55d8b0e: add.w r3, sp, #0x1c
0xb55d8b12: movw r1, #0xb
0xb55d8b16: movt r1, #0
0xb55d8b1a: bne #b55d8b28
0xb55d8b1c: movw r0, #0x5501
0xb55d8b20: movt r0, #0xb6f9
0xb55d8b24: b.w #b55d8000
0xb55d8b28: movw r0, #0x54f7
0xb55d8b2c: movt r0, #0xb6f9
0xb55d8b30: b.w #b55d8000
0xb55d8b34: movs r0, r0
0xb55d8b36: movs r0, r0
0xb55d8b38:

[dispatcher] addr: 0x9b61 target:b6f954f7 source_index:b next_addr:0xbe8e54d0
[dispatcher] 1:b55d8b03 2:b6f954f7 3:3b[scan] scan(0xb6f954f7): 0xb55d8c00 (bb 12)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x08 0x33
Disasm:
0xb6f954f6: adds r3, #8
0xb6f954f8:


Platform: Thumb-mixed
Code:0x1a 0x68
Disasm:
0xb6f954f8: ldr r2, [r3]
0xb6f954fa:


Platform: Thumb-mixed
Code:0x22 0xb1
Disasm:
0xb6f954fa: cbz r2, #b6f95506
0xb6f954fc:


Platform: Thumb-mixed
Code:0x60 0xbc 0x08 0x33 0x1a 0x68 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x5a 0xb1 0x40 0xf2 0x0c 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0xfd 0x40 0xcb 0xf2 0xf9 0x60 0x0d 0xf1 0x1c 0x03 0xff 0xf7 0xeb 0xb9 0x40 0xf2 0x0c 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0x07 0x50 0xcb 0xf2 0xf9 0x60 0x0d 0xf1 0x1c 0x03 0xff 0xf7 0xdf 0xb9 0x00 0x00 0x00 0x00
Disasm:
0xb55d8c00: pop {r5, r6}
0xb55d8c02: adds r3, #8
0xb55d8c04: ldr r2, [r3]
0xb55d8c06: nop
0xb55d8c08: nop
0xb55d8c0a: nop
0xb55d8c0c: sub sp, #0xc
0xb55d8c0e: push {r0, r1, r2, r3}
0xb55d8c10: cbz r2, #b55d8c2a
0xb55d8c12: movw r1, #0xc
0xb55d8c16: movt r1, #0
0xb55d8c1a: movw r0, #0x54fd
0xb55d8c1e: movt r0, #0xb6f9
0xb55d8c22: add.w r3, sp, #0x1c
0xb55d8c26: b.w #b55d8000
0xb55d8c2a: movw r1, #0xc
0xb55d8c2e: movt r1, #0
0xb55d8c32: movw r0, #0x5507
0xb55d8c36: movt r0, #0xb6f9
0xb55d8c3a: add.w r3, sp, #0x1c
0xb55d8c3e: b.w #b55d8000
0xb55d8c42: movs r0, r0
0xb55d8c44: movs r0, r0
0xb55d8c46:

[dispatcher] addr: 0x9b61 target:b6f954fd source_index:c next_addr:0xbe8e54d0
[dispatcher] 1:b55d8c03 2:b6f954fd 3:3b[dispatcher] addr: 0x9b61 target:b6f954f7 source_index:b next_addr:0xbe8e54d0
[dispatcher] 1:b55d8b03 2:b6f954f7 3:3b[dispatcher] addr: 0x9b61 target:b6f954fd source_index:c next_addr:0xbe8e54d0
[dispatcher] 1:b55d8c03 2:b6f954fd 3:3b[dispatcher] addr: 0x9b61 target:b6f954f7 source_index:b next_addr:0xbe8e54d0
[dispatcher] 1:b55d8b03 2:b6f954f7 3:3b[dispatcher] addr: 0x9b61 target:b6f954fd source_index:c next_addr:0xbe8e54d0
[dispatcher] 1:b55d8c03 2:b6f954fd 3:3b[dispatcher] addr: 0x9b61 target:b6f954f7 source_index:b next_addr:0xbe8e54d0
[dispatcher] 1:b55d8b03 2:b6f954f7 3:3b[dispatcher] addr: 0x9b61 target:b6f954fd source_index:c next_addr:0xbe8e54d0
[dispatcher] 1:b55d8c03 2:b6f954fd 3:3b[dispatcher] addr: 0x9b61 target:b6f954f7 source_index:b next_addr:0xbe8e54d0
[dispatcher] 1:b55d8b03 2:b6f954f7 3:3b[dispatcher] addr: 0x9b61 target:b6f954fd source_index:c next_addr:0xbe8e54d0
[dispatcher] 1:b55d8c03 2:b6f954fd 3:3b[dispatcher] addr: 0x9b61 target:b6f954f7 source_index:b next_addr:0xbe8e54d0
[dispatcher] 1:b55d8b03 2:b6f954f7 3:3b[dispatcher] addr: 0x9b61 target:b6f954fd source_index:c next_addr:0xbe8e54d0
[dispatcher] 1:b55d8c03 2:b6f954fd 3:3b[dispatcher] addr: 0x9b61 target:b6f954f7 source_index:b next_addr:0xbe8e54d0
[dispatcher] 1:b55d8b03 2:b6f954f7 3:3b[dispatcher] addr: 0x9b61 target:b6f954fd source_index:c next_addr:0xbe8e54d0
[dispatcher] 1:b55d8c03 2:b6f954fd 3:3b[dispatcher] addr: 0x9b61 target:b6f954f7 source_index:b next_addr:0xbe8e54d0
[dispatcher] 1:b55d8b03 2:b6f954f7 3:3b[dispatcher] addr: 0x9b61 target:b6f954fd source_index:c next_addr:0xbe8e54d0
[dispatcher] 1:b55d8c03 2:b6f954fd 3:3b[dispatcher] addr: 0x9b61 target:b6f95501 source_index:b next_addr:0xbe8e54d0
[dispatcher] 1:b55d8b03 2:b6f95501 3:3b[scan] scan(0xb6f95501): 0xb55d8d00 (bb 13)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0xd3 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x00 0xe0
Disasm:
0xb6f95504: b #b6f95508
0xb6f95506:


Platform: Thumb-mixed
Code:0x60 0xbc 0xd3 0xf8 0x04 0x90 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x0d 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0x09 0x50 0xcb 0xf2 0xf9 0x60 0xff 0xf7 0x6f 0xb9 0x00 0x00 0x00 0x00
Disasm:
0xb55d8d00: pop {r5, r6}
0xb55d8d02: ldr.w sb, [r3, #4]
0xb55d8d06: sub sp, #0xc
0xb55d8d08: push {r0, r1, r2, r3}
0xb55d8d0a: add.w r3, sp, #0x1c
0xb55d8d0e: movw r1, #0xd
0xb55d8d12: movt r1, #0
0xb55d8d16: movw r0, #0x5509
0xb55d8d1a: movt r0, #0xb6f9
0xb55d8d1e: b.w #b55d8000
0xb55d8d22: movs r0, r0
0xb55d8d24: movs r0, r0
0xb55d8d26:

[dispatcher] addr: 0x9b61 target:b6f95509 source_index:d next_addr:0xbe8e54d0
[dispatcher] 1:b55d8d03 2:b6f95509 3:3b[scan] scan(0xb6f95509): 0xb55d8e00 (bb 14)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0xc0 0xef
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xe8 0x69
Disasm:
0xb6f9550c: ldr r0, [r5, #0x1c]
0xb6f9550e:


Platform: Thumb-mixed
Code:0x07 0xf1
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xdf 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x00 0x22
Disasm:
0xb6f95516: movs r2, #0
0xb6f95518:


Platform: Thumb-mixed
Code:0x05 0xeb
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x50 0x46
Disasm:
0xb6f9551c: mov r0, sl
0xb6f9551e:


Platform: Thumb-mixed
Code:0x79 0x44
Disasm:
0xb6f9551e: add r1, pc
0xb6f95520:


Platform: Thumb-mixed
Code:0xcd 0xed
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xfd 0xf7
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x60 0xbc 0xc0 0xef 0x10 0x00 0xe8 0x69 0x07 0xf1 0x38 0x0a 0x45 0xf6 0x40 0x31 0xcb 0xf2 0xf9 0x61 0xd1 0xf8 0x00 0x10 0x00 0x22 0x05 0xeb 0x00 0x08 0x50 0x46 0x01 0xb4 0x45 0xf2 0x22 0x50 0xcb 0xf2 0xf9 0x60 0x01 0x44 0x01 0xbc 0xcd 0xed 0x00 0x0b 0x45 0xf2 0x29 0x5e 0xcb 0xf2 0xf9 0x6e 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x0e 0x01 0xc0 0xf2 0x00 0x01 0x43 0xf2 0xb1 0x30 0xcb 0xf2 0xf9 0x60 0xff 0xf7 0xd5 0xb8 0x00 0x00 0x00 0x00
Disasm:
0xb55d8e00: pop {r5, r6}
0xb55d8e02: vmov.i32 d16, #0
0xb55d8e06: ldr r0, [r5, #0x1c]
0xb55d8e08: add.w sl, r7, #0x38
0xb55d8e0c: movw r1, #0x5b40
0xb55d8e10: movt r1, #0xb6f9
0xb55d8e14: ldr.w r1, [r1]
0xb55d8e18: movs r2, #0
0xb55d8e1a: add.w r8, r5, r0
0xb55d8e1e: mov r0, sl
0xb55d8e20: push {r0}
0xb55d8e22: movw r0, #0x5522
0xb55d8e26: movt r0, #0xb6f9
0xb55d8e2a: add r1, r0
0xb55d8e2c: pop {r0}
0xb55d8e2e: vstr d16, [sp]
0xb55d8e32: movw lr, #0x5529
0xb55d8e36: movt lr, #0xb6f9
0xb55d8e3a: sub sp, #0xc
0xb55d8e3c: push {r0, r1, r2, r3}
0xb55d8e3e: add.w r3, sp, #0x1c
0xb55d8e42: movw r1, #0xe
0xb55d8e46: movt r1, #0
0xb55d8e4a: movw r0, #0x33b1
0xb55d8e4e: movt r0, #0xb6f9
0xb55d8e52: b.w #b55d8000
0xb55d8e56: movs r0, r0
0xb55d8e58: movs r0, r0
0xb55d8e5a:

[dispatcher] addr: 0x9b61 target:b6f933b1 source_index:e next_addr:0xbe8e54d0
[dispatcher] 1:b55d8e03 2:b6f933b1 3:0[scan] scan(0xb6f933b1): 0xb55d8f00 (bb 15)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0xf8 0xb5
Disasm:
0xb6f933b0: push {r3, r4, r5, r6, r7, lr}
0xb6f933b2:


Platform: Thumb-mixed
Code:0x00 0x25
Disasm:
0xb6f933b2: movs r5, #0
0xb6f933b4:


Platform: Thumb-mixed
Code:0x04 0x46
Disasm:
0xb6f933b4: mov r4, r0
0xb6f933b6:


Platform: Thumb-mixed
Code:0x0f 0x46
Disasm:
0xb6f933b6: mov r7, r1
0xb6f933b8:


Platform: Thumb-mixed
Code:0x16 0x46
Disasm:
0xb6f933b8: mov r6, r2
0xb6f933ba:


Platform: Thumb-mixed
Code:0x29 0x46
Disasm:
0xb6f933ba: mov r1, r5
0xb6f933bc:


Platform: Thumb-mixed
Code:0xc0 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x4f 0xf4
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xc0 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xc0 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xc0 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x03 0xf0
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x60 0xbc 0xf8 0xb5 0x00 0x25 0x04 0x46 0x0f 0x46 0x16 0x46 0x29 0x46 0xc0 0xf8 0x30 0x51 0x4f 0xf4 0xa8 0x72 0xc0 0xf8 0x34 0x51 0xc0 0xf8 0x38 0x51 0xc0 0xf8 0x3c 0x51 0x43 0xf2 0xd5 0x3e 0xcb 0xf2 0xf9 0x6e 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x0f 0x01 0xc0 0xf2 0x00 0x01 0x46 0xf6 0x7c 0x60 0xcb 0xf2 0xf9 0x60 0xff 0xf7 0x5d 0xb8 0x00 0x00 0x00 0x00
Disasm:
0xb55d8f00: pop {r5, r6}
0xb55d8f02: push {r3, r4, r5, r6, r7, lr}
0xb55d8f04: movs r5, #0
0xb55d8f06: mov r4, r0
0xb55d8f08: mov r7, r1
0xb55d8f0a: mov r6, r2
0xb55d8f0c: mov r1, r5
0xb55d8f0e: str.w r5, [r0, #0x130]
0xb55d8f12: mov.w r2, #0x150
0xb55d8f16: str.w r5, [r0, #0x134]
0xb55d8f1a: str.w r5, [r0, #0x138]
0xb55d8f1e: str.w r5, [r0, #0x13c]
0xb55d8f22: movw lr, #0x33d5
0xb55d8f26: movt lr, #0xb6f9
0xb55d8f2a: sub sp, #0xc
0xb55d8f2c: push {r0, r1, r2, r3}
0xb55d8f2e: add.w r3, sp, #0x1c
0xb55d8f32: movw r1, #0xf
0xb55d8f36: movt r1, #0
0xb55d8f3a: movw r0, #0x6e7c
0xb55d8f3e: movt r0, #0xb6f9
0xb55d8f42: b.w #b55d8000
0xb55d8f46: movs r0, r0
0xb55d8f48: movs r0, r0
0xb55d8f4a:

+i:0 addr:be8e54c0 data:be8e5740
+i:1 addr:be8e54c4 data:0
+i:2 addr:be8e54c8 data:b6f92000
+i:3 addr:be8e54cc data:b6fa0fe8
+i:4 addr:be8e54d0 data:be8e54e8
+i:5 addr:be8e54d4 data:b6f95529
+i:6 addr:be8e54d8 data:0
+i:7 addr:be8e54dc data:0
+i:8 addr:be8e54e0 data:0
+i:9 addr:be8e54e4 data:2
+i:10 addr:be8e54e8 data:2a0c
+i:11 addr:be8e54ec data:0
+i:12 addr:be8e54f0 data:1edff4
+i:13 addr:be8e54f4 data:155001
+i:14 addr:be8e54f8 data:c
+i:15 addr:be8e54fc data:1eb760
-i:0 addr:be8e54c0 data:be8e5740
-i:1 addr:be8e54bc data:b6f96e7c
-i:2 addr:be8e54b8 data:b6f95529
-i:3 addr:be8e54b4 data:3
-i:4 addr:be8e54b0 data:be8e5740
-i:5 addr:be8e54ac data:150
-i:6 addr:be8e54a8 data:0
-i:7 addr:be8e54a4 data:be8e5520
-i:8 addr:be8e54a0 data:b6f933d5
-i:9 addr:be8e549c data:3
-i:10 addr:be8e5498 data:be8e550c
-i:11 addr:be8e5494 data:be8e5520
-i:12 addr:be8e5490 data:b6fa3594
-i:13 addr:be8e548c data:b6f92034
-i:14 addr:be8e5488 data:b6f9d10c
-i:15 addr:be8e5484 data:0
[dispatcher] addr: 0x9b61 target:b6f96e7c source_index:f next_addr:0xbe8e54b8
[dispatcher] 1:b6f95529 2:b6f96e7c 3:be8e5740[scan] scan(0xb6f96e7c): 0xb55d9000 (bb 16)
[scan] ++++++++++++++++++++++++++++++++++
[scan_arm] :


Platform: ARM
Code:0x01 0x00 0x2d 0xe9
Disasm:
0xb6f96e7c: stmdb sp!, {r0}
0xb6f96e80:


Platform: ARM
Code:0x10 0x1b 0xe0 0xee
Disasm:
0xb6f96e80: vdup.8 q0, r1
0xb6f96e84:


Platform: ARM
Code:0x20 0x20 0x52 0xe2
Disasm:
0xb6f96e84: subs r2, r2, #0x20
0xb6f96e88:


Platform: ARM
Code:0x03 0x00 0x00 0x3a
Disasm:
0xb6f96e88: blo #b6f96e9c
0xb6f96e8c:


Platform: ARM
Code:0x60 0x00 0xbd 0xe8 0x01 0x00 0x2d 0xe9 0x10 0x1b 0xe0 0xee 0x20 0x20 0x52 0xe2 0x00 0xf0 0x20 0xe3 0x0c 0xd0 0x4d 0xe2 0x0f 0x00 0x2d 0xe9 0x1c 0x30 0x8d 0xe2 0x8c 0x0e 0x06 0x23 0xf9 0x06 0x4b 0x23 0x9c 0x0e 0x06 0x33 0xf9 0x06 0x4b 0x33 0x10 0x10 0x00 0xe3 0x00 0x10 0x40 0xe3 0xf1 0xfb 0xff 0xea 0x00 0x00 0x00 0x00
Disasm:
0xb55d9000: pop {r5, r6}
0xb55d9004: stmdb sp!, {r0}
0xb55d9008: vdup.8 q0, r1
0xb55d900c: subs r2, r2, #0x20
0xb55d9010: nop
0xb55d9014: sub sp, sp, #0xc
0xb55d9018: push {r0, r1, r2, r3}
0xb55d901c: add r3, sp, #0x1c
0xb55d9020: movwhs r0, #0x6e8c
0xb55d9024: movths r0, #0xb6f9
0xb55d9028: movwlo r0, #0x6e9c
0xb55d902c: movtlo r0, #0xb6f9
0xb55d9030: movw r1, #0x10
0xb55d9034: movt r1, #0
0xb55d9038: b #b55d8004
0xb55d903c: andeq r0, r0, r0
0xb55d9040:

+i:0 addr:be8e54bc data:be8e5520
+i:1 addr:be8e54c0 data:be8e5740
+i:2 addr:be8e54c4 data:0
+i:3 addr:be8e54c8 data:b6f92000
+i:4 addr:be8e54cc data:b6fa0fe8
+i:5 addr:be8e54d0 data:be8e54e8
+i:6 addr:be8e54d4 data:b6f95529
+i:7 addr:be8e54d8 data:0
+i:8 addr:be8e54dc data:0
+i:9 addr:be8e54e0 data:0
+i:10 addr:be8e54e4 data:2
+i:11 addr:be8e54e8 data:2a0c
+i:12 addr:be8e54ec data:0
+i:13 addr:be8e54f0 data:1edff4
+i:14 addr:be8e54f4 data:155001
+i:15 addr:be8e54f8 data:c
-i:0 addr:be8e54bc data:be8e5520
-i:1 addr:be8e54b8 data:b6f96e8c
-i:2 addr:be8e54b4 data:be8e5520
-i:3 addr:be8e54b0 data:be8e5740
-i:4 addr:be8e54ac data:be8e5740
-i:5 addr:be8e54a8 data:130
-i:6 addr:be8e54a4 data:0
-i:7 addr:be8e54a0 data:be8e5520
-i:8 addr:be8e549c data:b6f933d5
-i:9 addr:be8e5498 data:3
-i:10 addr:be8e5494 data:be8e550c
-i:11 addr:be8e5490 data:be8e5520
-i:12 addr:be8e548c data:b6fa3594
-i:13 addr:be8e5488 data:b6f92034
-i:14 addr:be8e5484 data:b6f9d10c
-i:15 addr:be8e5480 data:0
[dispatcher] addr: 0x9b61 target:b6f96e8c source_index:10 next_addr:0xbe8e54b4
[dispatcher] 1:be8e5520 2:b6f96e8c 3:be8e5520[scan] scan(0xb6f96e8c): 0xb55d9100 (bb 17)
[scan] ++++++++++++++++++++++++++++++++++
[scan_arm] :


Platform: ARM
Code:0x50 0x21 0x20 0xf2
Disasm:
0xb6f96e8c020a052a: (null) vorr
0xb6f96e90b6f96e8c:


Platform: ARM
Code:0x20 0x20 0x52 0xe2
Disasm:
0xb6f96e90020a052a: (null) subs
0xb6f96e94b6f96e90:


Platform: ARM
Code:0x0d 0x02 0x00 0xf4
Disasm:
0xb6f96e94020a052a: (null) vst1.8
0xb6f96e98b6f96e94:


Platform: ARM
Code:0xfc 0xff 0xff 0x2a
Disasm:
0xb6f96e98020a052a: (null) bhs
0xb6f96e9cb6f96e98:


Platform: ARM
Code:0x60 0x00 0xbd 0xe8 0x50 0x21 0x20 0xf2 0x20 0x20 0x52 0xe2 0x0d 0x02 0x00 0xf4 0x00 0xf0 0x20 0xe3 0x0c 0xd0 0x4d 0xe2 0x0f 0x00 0x2d 0xe9 0x1c 0x30 0x8d 0xe2 0x9c 0x0e 0x06 0x33 0xf9 0x06 0x4b 0x33 0x90 0x0e 0x06 0x23 0xf9 0x06 0x4b 0x23 0x11 0x10 0x00 0xe3 0x00 0x10 0x40 0xe3 0xb1 0xfb 0xff 0xea 0x00 0x00 0x00 0x00
Disasm:
0xb55d9100020a052a: (null) pop
0xb55d9104020a0612: (null) vorr
0xb55d9108020a06fa: (null) subs
0xb55d910c020a07e2: (null) vst1.8
0xb55d9110020a08ca: (null) nop
0xb55d9114020a09b2: (null) sub
0xb55d9118020a0a9a: (null) push
0xb55d911c020a0b82: (null) add
0xb55d9120020a0c6a: (null) movwlo
0xb55d9124020a0d52: (null) movtlo
0xb55d9128020a0e3a: (null) movwhs
0xb55d912c020a0f22: (null) movths
0xb55d9130020a100a: (null) movw
0xb55d9134020a10f2: (null) movt
0xb55d9138020a11da: (null) b
0xb55d913c020a12c2: (null) andeq
0xb55d9140b55d913c:

+i:0 addr:be8e54bc data:be8e5520
+i:1 addr:be8e54c0 data:be8e5740
+i:2 addr:be8e54c4 data:0
+i:3 addr:be8e54c8 data:b6f92000
+i:4 addr:be8e54cc data:b6fa0fe8
+i:5 addr:be8e54d0 data:be8e54e8
+i:6 addr:be8e54d4 data:b6f95529
+i:7 addr:be8e54d8 data:0
+i:8 addr:be8e54dc data:0
+i:9 addr:be8e54e0 data:0
+i:10 addr:be8e54e4 data:2
+i:11 addr:be8e54e8 data:2a0c
+i:12 addr:be8e54ec data:0
+i:13 addr:be8e54f0 data:1edff4
+i:14 addr:be8e54f4 data:155001
+i:15 addr:be8e54f8 data:c
-i:0 addr:be8e54bc data:be8e5520
-i:1 addr:be8e54b8 data:b6f96e90
-i:2 addr:be8e54b4 data:b55d9104
-i:3 addr:be8e54b0 data:be8e5520
-i:4 addr:be8e54ac data:be8e5740
-i:5 addr:be8e54a8 data:110
-i:6 addr:be8e54a4 data:0
-i:7 addr:be8e54a0 data:be8e5540
-i:8 addr:be8e549c data:b6f933d5
-i:9 addr:be8e5498 data:3
-i:10 addr:be8e5494 data:be8e550c
-i:11 addr:be8e5490 data:be8e5520
-i:12 addr:be8e548c data:b6fa3594
-i:13 addr:be8e5488 data:b6f92034
-i:14 addr:be8e5484 data:b6f9d10c
-i:15 addr:be8e5480 data:0
[dispatcher] addr: 0x9b61 target:b6f96e90 source_index:11 next_addr:0xbe8e54b4
[dispatcher] 1:b55d9104 2:b6f96e90 3:be8e5520[scan] scan(0xb6f96e90): 0xb55d9200 (bb 18)
[scan] ++++++++++++++++++++++++++++++++++
[scan_arm] :


Platform: ARM
Code:0x20 0x20 0x52 0xe2
Disasm:
0xb6f96e90020a052a: (null) subs
0xb6f96e94b6f96e90:


Platform: ARM
Code:0x0d 0x02 0x00 0xf4
Disasm:
0xb6f96e94020a052a: (null) vst1.8
0xb6f96e98b6f96e94:


Platform: ARM
Code:0xfc 0xff 0xff 0x2a
Disasm:
0xb6f96e98020a052a: (null) bhs
0xb6f96e9cb6f96e98:


Platform: ARM
Code:0x60 0x00 0xbd 0xe8 0x20 0x20 0x52 0xe2 0x0d 0x02 0x00 0xf4 0x00 0xf0 0x20 0xe3 0x0c 0xd0 0x4d 0xe2 0x0f 0x00 0x2d 0xe9 0x1c 0x30 0x8d 0xe2 0x9c 0x0e 0x06 0x33 0xf9 0x06 0x4b 0x33 0x90 0x0e 0x06 0x23 0xf9 0x06 0x4b 0x23 0x12 0x10 0x00 0xe3 0x00 0x10 0x40 0xe3 0x72 0xfb 0xff 0xea 0x00 0x00 0x00 0x00
Disasm:
0xb55d9200020a052a: (null) pop
0xb55d9204020a0612: (null) subs
0xb55d9208020a06fa: (null) vst1.8
0xb55d920c020a07e2: (null) nop
0xb55d9210020a08ca: (null) sub
0xb55d9214020a09b2: (null) push
0xb55d9218020a0a9a: (null) add
0xb55d921c020a0b82: (null) movwlo
0xb55d9220020a0c6a: (null) movtlo
0xb55d9224020a0d52: (null) movwhs
0xb55d9228020a0e3a: (null) movths
0xb55d922c020a0f22: (null) movw
0xb55d9230020a100a: (null) movt
0xb55d9234020a10f2: (null) b
0xb55d9238020a11da: (null) andeq
0xb55d923cb55d9238:

+i:0 addr:be8e54bc data:be8e5520
+i:1 addr:be8e54c0 data:be8e5740
+i:2 addr:be8e54c4 data:0
+i:3 addr:be8e54c8 data:b6f92000
+i:4 addr:be8e54cc data:b6fa0fe8
+i:5 addr:be8e54d0 data:be8e54e8
+i:6 addr:be8e54d4 data:b6f95529
+i:7 addr:be8e54d8 data:0
+i:8 addr:be8e54dc data:0
+i:9 addr:be8e54e0 data:0
+i:10 addr:be8e54e4 data:2
+i:11 addr:be8e54e8 data:2a0c
+i:12 addr:be8e54ec data:0
+i:13 addr:be8e54f0 data:1edff4
+i:14 addr:be8e54f4 data:155001
+i:15 addr:be8e54f8 data:c
-i:0 addr:be8e54bc data:be8e5520
-i:1 addr:be8e54b8 data:b6f96e90
-i:2 addr:be8e54b4 data:b55d9204
-i:3 addr:be8e54b0 data:be8e5540
-i:4 addr:be8e54ac data:be8e5740
-i:5 addr:be8e54a8 data:f0
-i:6 addr:be8e54a4 data:0
-i:7 addr:be8e54a0 data:be8e5560
-i:8 addr:be8e549c data:b6f933d5
-i:9 addr:be8e5498 data:3
-i:10 addr:be8e5494 data:be8e550c
-i:11 addr:be8e5490 data:be8e5520
-i:12 addr:be8e548c data:b6fa3594
-i:13 addr:be8e5488 data:b6f92034
-i:14 addr:be8e5484 data:b6f9d10c
-i:15 addr:be8e5480 data:0
[dispatcher] addr: 0x9b61 target:b6f96e90 source_index:12 next_addr:0xbe8e54b4
[dispatcher] 1:b55d9204 2:b6f96e90 3:be8e5520+i:0 addr:be8e54bc data:be8e5520
+i:1 addr:be8e54c0 data:be8e5740
+i:2 addr:be8e54c4 data:0
+i:3 addr:be8e54c8 data:b6f92000
+i:4 addr:be8e54cc data:b6fa0fe8
+i:5 addr:be8e54d0 data:be8e54e8
+i:6 addr:be8e54d4 data:b6f95529
+i:7 addr:be8e54d8 data:0
+i:8 addr:be8e54dc data:0
+i:9 addr:be8e54e0 data:0
+i:10 addr:be8e54e4 data:2
+i:11 addr:be8e54e8 data:2a0c
+i:12 addr:be8e54ec data:0
+i:13 addr:be8e54f0 data:1edff4
+i:14 addr:be8e54f4 data:155001
+i:15 addr:be8e54f8 data:c
-i:0 addr:be8e54bc data:be8e5520
-i:1 addr:be8e54b8 data:b6f96e90
-i:2 addr:be8e54b4 data:b55d9204
-i:3 addr:be8e54b0 data:be8e5560
-i:4 addr:be8e54ac data:be8e5740
-i:5 addr:be8e54a8 data:d0
-i:6 addr:be8e54a4 data:0
-i:7 addr:be8e54a0 data:be8e5580
-i:8 addr:be8e549c data:b6f933d5
-i:9 addr:be8e5498 data:3
-i:10 addr:be8e5494 data:be8e550c
-i:11 addr:be8e5490 data:be8e5520
-i:12 addr:be8e548c data:b6fa3594
-i:13 addr:be8e5488 data:b6f92034
-i:14 addr:be8e5484 data:b6f9d10c
-i:15 addr:be8e5480 data:0
[dispatcher] addr: 0x9b61 target:b6f96e90 source_index:12 next_addr:0xbe8e54b4
[dispatcher] 1:b55d9204 2:b6f96e90 3:be8e5520+i:0 addr:be8e54bc data:be8e5520
+i:1 addr:be8e54c0 data:be8e5740
+i:2 addr:be8e54c4 data:0
+i:3 addr:be8e54c8 data:b6f92000
+i:4 addr:be8e54cc data:b6fa0fe8
+i:5 addr:be8e54d0 data:be8e54e8
+i:6 addr:be8e54d4 data:b6f95529
+i:7 addr:be8e54d8 data:0
+i:8 addr:be8e54dc data:0
+i:9 addr:be8e54e0 data:0
+i:10 addr:be8e54e4 data:2
+i:11 addr:be8e54e8 data:2a0c
+i:12 addr:be8e54ec data:0
+i:13 addr:be8e54f0 data:1edff4
+i:14 addr:be8e54f4 data:155001
+i:15 addr:be8e54f8 data:c
-i:0 addr:be8e54bc data:be8e5520
-i:1 addr:be8e54b8 data:b6f96e90
-i:2 addr:be8e54b4 data:b55d9204
-i:3 addr:be8e54b0 data:be8e5580
-i:4 addr:be8e54ac data:be8e5740
-i:5 addr:be8e54a8 data:b0
-i:6 addr:be8e54a4 data:0
-i:7 addr:be8e54a0 data:be8e55a0
-i:8 addr:be8e549c data:b6f933d5
-i:9 addr:be8e5498 data:3
-i:10 addr:be8e5494 data:be8e550c
-i:11 addr:be8e5490 data:be8e5520
-i:12 addr:be8e548c data:b6fa3594
-i:13 addr:be8e5488 data:b6f92034
-i:14 addr:be8e5484 data:b6f9d10c
-i:15 addr:be8e5480 data:0
[dispatcher] addr: 0x9b61 target:b6f96e90 source_index:12 next_addr:0xbe8e54b4
[dispatcher] 1:b55d9204 2:b6f96e90 3:be8e5520+i:0 addr:be8e54bc data:be8e5520
+i:1 addr:be8e54c0 data:be8e5740
+i:2 addr:be8e54c4 data:0
+i:3 addr:be8e54c8 data:b6f92000
+i:4 addr:be8e54cc data:b6fa0fe8
+i:5 addr:be8e54d0 data:be8e54e8
+i:6 addr:be8e54d4 data:b6f95529
+i:7 addr:be8e54d8 data:0
+i:8 addr:be8e54dc data:0
+i:9 addr:be8e54e0 data:0
+i:10 addr:be8e54e4 data:2
+i:11 addr:be8e54e8 data:2a0c
+i:12 addr:be8e54ec data:0
+i:13 addr:be8e54f0 data:1edff4
+i:14 addr:be8e54f4 data:155001
+i:15 addr:be8e54f8 data:c
-i:0 addr:be8e54bc data:be8e5520
-i:1 addr:be8e54b8 data:b6f96e90
-i:2 addr:be8e54b4 data:b55d9204
-i:3 addr:be8e54b0 data:be8e55a0
-i:4 addr:be8e54ac data:be8e5740
-i:5 addr:be8e54a8 data:90
-i:6 addr:be8e54a4 data:0
-i:7 addr:be8e54a0 data:be8e55c0
-i:8 addr:be8e549c data:b6f933d5
-i:9 addr:be8e5498 data:3
-i:10 addr:be8e5494 data:be8e550c
-i:11 addr:be8e5490 data:be8e5520
-i:12 addr:be8e548c data:b6fa3594
-i:13 addr:be8e5488 data:b6f92034
-i:14 addr:be8e5484 data:b6f9d10c
-i:15 addr:be8e5480 data:0
[dispatcher] addr: 0x9b61 target:b6f96e90 source_index:12 next_addr:0xbe8e54b4
[dispatcher] 1:b55d9204 2:b6f96e90 3:be8e5520+i:0 addr:be8e54bc data:be8e5520
+i:1 addr:be8e54c0 data:be8e5740
+i:2 addr:be8e54c4 data:0
+i:3 addr:be8e54c8 data:b6f92000
+i:4 addr:be8e54cc data:b6fa0fe8
+i:5 addr:be8e54d0 data:be8e54e8
+i:6 addr:be8e54d4 data:b6f95529
+i:7 addr:be8e54d8 data:0
+i:8 addr:be8e54dc data:0
+i:9 addr:be8e54e0 data:0
+i:10 addr:be8e54e4 data:2
+i:11 addr:be8e54e8 data:2a0c
+i:12 addr:be8e54ec data:0
+i:13 addr:be8e54f0 data:1edff4
+i:14 addr:be8e54f4 data:155001
+i:15 addr:be8e54f8 data:c
-i:0 addr:be8e54bc data:be8e5520
-i:1 addr:be8e54b8 data:b6f96e90
-i:2 addr:be8e54b4 data:b55d9204
-i:3 addr:be8e54b0 data:be8e55c0
-i:4 addr:be8e54ac data:be8e5740
-i:5 addr:be8e54a8 data:70
-i:6 addr:be8e54a4 data:0
-i:7 addr:be8e54a0 data:be8e55e0
-i:8 addr:be8e549c data:b6f933d5
-i:9 addr:be8e5498 data:3
-i:10 addr:be8e5494 data:be8e550c
-i:11 addr:be8e5490 data:be8e5520
-i:12 addr:be8e548c data:b6fa3594
-i:13 addr:be8e5488 data:b6f92034
-i:14 addr:be8e5484 data:b6f9d10c
-i:15 addr:be8e5480 data:0
[dispatcher] addr: 0x9b61 target:b6f96e90 source_index:12 next_addr:0xbe8e54b4
[dispatcher] 1:b55d9204 2:b6f96e90 3:be8e5520+i:0 addr:be8e54bc data:be8e5520
+i:1 addr:be8e54c0 data:be8e5740
+i:2 addr:be8e54c4 data:0
+i:3 addr:be8e54c8 data:b6f92000
+i:4 addr:be8e54cc data:b6fa0fe8
+i:5 addr:be8e54d0 data:be8e54e8
+i:6 addr:be8e54d4 data:b6f95529
+i:7 addr:be8e54d8 data:0
+i:8 addr:be8e54dc data:0
+i:9 addr:be8e54e0 data:0
+i:10 addr:be8e54e4 data:2
+i:11 addr:be8e54e8 data:2a0c
+i:12 addr:be8e54ec data:0
+i:13 addr:be8e54f0 data:1edff4
+i:14 addr:be8e54f4 data:155001
+i:15 addr:be8e54f8 data:c
-i:0 addr:be8e54bc data:be8e5520
-i:1 addr:be8e54b8 data:b6f96e90
-i:2 addr:be8e54b4 data:b55d9204
-i:3 addr:be8e54b0 data:be8e55e0
-i:4 addr:be8e54ac data:be8e5740
-i:5 addr:be8e54a8 data:50
-i:6 addr:be8e54a4 data:0
-i:7 addr:be8e54a0 data:be8e5600
-i:8 addr:be8e549c data:b6f933d5
-i:9 addr:be8e5498 data:3
-i:10 addr:be8e5494 data:be8e550c
-i:11 addr:be8e5490 data:be8e5520
-i:12 addr:be8e548c data:b6fa3594
-i:13 addr:be8e5488 data:b6f92034
-i:14 addr:be8e5484 data:b6f9d10c
-i:15 addr:be8e5480 data:0
[dispatcher] addr: 0x9b61 target:b6f96e90 source_index:12 next_addr:0xbe8e54b4
[dispatcher] 1:b55d9204 2:b6f96e90 3:be8e5520+i:0 addr:be8e54bc data:be8e5520
+i:1 addr:be8e54c0 data:be8e5740
+i:2 addr:be8e54c4 data:0
+i:3 addr:be8e54c8 data:b6f92000
+i:4 addr:be8e54cc data:b6fa0fe8
+i:5 addr:be8e54d0 data:be8e54e8
+i:6 addr:be8e54d4 data:b6f95529
+i:7 addr:be8e54d8 data:0
+i:8 addr:be8e54dc data:0
+i:9 addr:be8e54e0 data:0
+i:10 addr:be8e54e4 data:2
+i:11 addr:be8e54e8 data:2a0c
+i:12 addr:be8e54ec data:0
+i:13 addr:be8e54f0 data:1edff4
+i:14 addr:be8e54f4 data:155001
+i:15 addr:be8e54f8 data:c
-i:0 addr:be8e54bc data:be8e5520
-i:1 addr:be8e54b8 data:b6f96e90
-i:2 addr:be8e54b4 data:b55d9204
-i:3 addr:be8e54b0 data:be8e5600
-i:4 addr:be8e54ac data:be8e5740
-i:5 addr:be8e54a8 data:30
-i:6 addr:be8e54a4 data:0
-i:7 addr:be8e54a0 data:be8e5620
-i:8 addr:be8e549c data:b6f933d5
-i:9 addr:be8e5498 data:3
-i:10 addr:be8e5494 data:be8e550c
-i:11 addr:be8e5490 data:be8e5520
-i:12 addr:be8e548c data:b6fa3594
-i:13 addr:be8e5488 data:b6f92034
-i:14 addr:be8e5484 data:b6f9d10c
-i:15 addr:be8e5480 data:0
[dispatcher] addr: 0x9b61 target:b6f96e90 source_index:12 next_addr:0xbe8e54b4
[dispatcher] 1:b55d9204 2:b6f96e90 3:be8e5520+i:0 addr:be8e54bc data:be8e5520
+i:1 addr:be8e54c0 data:be8e5740
+i:2 addr:be8e54c4 data:0
+i:3 addr:be8e54c8 data:b6f92000
+i:4 addr:be8e54cc data:b6fa0fe8
+i:5 addr:be8e54d0 data:be8e54e8
+i:6 addr:be8e54d4 data:b6f95529
+i:7 addr:be8e54d8 data:0
+i:8 addr:be8e54dc data:0
+i:9 addr:be8e54e0 data:0
+i:10 addr:be8e54e4 data:2
+i:11 addr:be8e54e8 data:2a0c
+i:12 addr:be8e54ec data:0
+i:13 addr:be8e54f0 data:1edff4
+i:14 addr:be8e54f4 data:155001
+i:15 addr:be8e54f8 data:c
-i:0 addr:be8e54bc data:be8e5520
-i:1 addr:be8e54b8 data:b6f96e90
-i:2 addr:be8e54b4 data:b55d9204
-i:3 addr:be8e54b0 data:be8e5620
-i:4 addr:be8e54ac data:be8e5740
-i:5 addr:be8e54a8 data:10
-i:6 addr:be8e54a4 data:0
-i:7 addr:be8e54a0 data:be8e5640
-i:8 addr:be8e549c data:b6f933d5
-i:9 addr:be8e5498 data:3
-i:10 addr:be8e5494 data:be8e550c
-i:11 addr:be8e5490 data:be8e5520
-i:12 addr:be8e548c data:b6fa3594
-i:13 addr:be8e5488 data:b6f92034
-i:14 addr:be8e5484 data:b6f9d10c
-i:15 addr:be8e5480 data:0
[dispatcher] addr: 0x9b61 target:b6f96e90 source_index:12 next_addr:0xbe8e54b4
[dispatcher] 1:b55d9204 2:b6f96e90 3:be8e5520+i:0 addr:be8e54bc data:be8e5520
+i:1 addr:be8e54c0 data:be8e5740
+i:2 addr:be8e54c4 data:0
+i:3 addr:be8e54c8 data:b6f92000
+i:4 addr:be8e54cc data:b6fa0fe8
+i:5 addr:be8e54d0 data:be8e54e8
+i:6 addr:be8e54d4 data:b6f95529
+i:7 addr:be8e54d8 data:0
+i:8 addr:be8e54dc data:0
+i:9 addr:be8e54e0 data:0
+i:10 addr:be8e54e4 data:2
+i:11 addr:be8e54e8 data:2a0c
+i:12 addr:be8e54ec data:0
+i:13 addr:be8e54f0 data:1edff4
+i:14 addr:be8e54f4 data:155001
+i:15 addr:be8e54f8 data:c
-i:0 addr:be8e54bc data:be8e5520
-i:1 addr:be8e54b8 data:b6f96e9c
-i:2 addr:be8e54b4 data:b55d9204
-i:3 addr:be8e54b0 data:be8e5640
-i:4 addr:be8e54ac data:be8e5740
-i:5 addr:be8e54a8 data:fffffff0
-i:6 addr:be8e54a4 data:0
-i:7 addr:be8e54a0 data:be8e5660
-i:8 addr:be8e549c data:b6f933d5
-i:9 addr:be8e5498 data:3
-i:10 addr:be8e5494 data:be8e550c
-i:11 addr:be8e5490 data:be8e5520
-i:12 addr:be8e548c data:b6fa3594
-i:13 addr:be8e5488 data:b6f92034
-i:14 addr:be8e5484 data:b6f9d10c
-i:15 addr:be8e5480 data:0
[dispatcher] addr: 0x9b61 target:b6f96e9c source_index:12 next_addr:0xbe8e54b4
[dispatcher] 1:b55d9204 2:b6f96e9c 3:be8e5520[scan] scan(0xb6f96e9c): 0xb55d9300 (bb 19)
[scan] ++++++++++++++++++++++++++++++++++
[scan_arm] :


Platform: ARM
Code:0x20 0x20 0x82 0xe2
Disasm:
0xb6f96e9c020a052a: (null) add
0xb6f96ea0b6f96e9c:


Platform: ARM
Code:0x10 0x00 0x12 0xe3
Disasm:
0xb6f96ea0020a052a: (null) tst
0xb6f96ea4b6f96ea0:


Platform: ARM
Code:0x00 0x00 0x00 0x0a
Disasm:
0xb6f96ea4020a052a: (null) beq
0xb6f96ea8b6f96ea4:


Platform: ARM
Code:0x60 0x00 0xbd 0xe8 0x20 0x20 0x82 0xe2 0x10 0x00 0x12 0xe3 0x00 0xf0 0x20 0xe3 0x0c 0xd0 0x4d 0xe2 0x0f 0x00 0x2d 0xe9 0x1c 0x30 0x8d 0xe2 0xa8 0x0e 0x06 0x13 0xf9 0x06 0x4b 0x13 0xac 0x0e 0x06 0x03 0xf9 0x06 0x4b 0x03 0x13 0x10 0x00 0xe3 0x00 0x10 0x40 0xe3 0x32 0xfb 0xff 0xea 0x00 0x00 0x00 0x00
Disasm:
0xb55d9300020a052a: (null) pop
0xb55d9304020a0612: (null) add
0xb55d9308020a06fa: (null) tst
0xb55d930c020a07e2: (null) nop
0xb55d9310020a08ca: (null) sub
0xb55d9314020a09b2: (null) push
0xb55d9318020a0a9a: (null) add
0xb55d931c020a0b82: (null) movwne
0xb55d9320020a0c6a: (null) movtne
0xb55d9324020a0d52: (null) movweq
0xb55d9328020a0e3a: (null) movteq
0xb55d932c020a0f22: (null) movw
0xb55d9330020a100a: (null) movt
0xb55d9334020a10f2: (null) b
0xb55d9338020a11da: (null) andeq
0xb55d933cb55d9338:

+i:0 addr:be8e54bc data:be8e5520
+i:1 addr:be8e54c0 data:be8e5740
+i:2 addr:be8e54c4 data:0
+i:3 addr:be8e54c8 data:b6f92000
+i:4 addr:be8e54cc data:b6fa0fe8
+i:5 addr:be8e54d0 data:be8e54e8
+i:6 addr:be8e54d4 data:b6f95529
+i:7 addr:be8e54d8 data:0
+i:8 addr:be8e54dc data:0
+i:9 addr:be8e54e0 data:0
+i:10 addr:be8e54e4 data:2
+i:11 addr:be8e54e8 data:2a0c
+i:12 addr:be8e54ec data:0
+i:13 addr:be8e54f0 data:1edff4
+i:14 addr:be8e54f4 data:155001
+i:15 addr:be8e54f8 data:c
-i:0 addr:be8e54bc data:be8e5520
-i:1 addr:be8e54b8 data:b6f96ea8
-i:2 addr:be8e54b4 data:b55d9304
-i:3 addr:be8e54b0 data:be8e5660
-i:4 addr:be8e54ac data:be8e5740
-i:5 addr:be8e54a8 data:10
-i:6 addr:be8e54a4 data:0
-i:7 addr:be8e54a0 data:be8e5660
-i:8 addr:be8e549c data:b6f933d5
-i:9 addr:be8e5498 data:3
-i:10 addr:be8e5494 data:be8e550c
-i:11 addr:be8e5490 data:be8e5520
-i:12 addr:be8e548c data:b6fa3594
-i:13 addr:be8e5488 data:b6f92034
-i:14 addr:be8e5484 data:b6f9d10c
-i:15 addr:be8e5480 data:0
[dispatcher] addr: 0x9b61 target:b6f96ea8 source_index:13 next_addr:0xbe8e54b4
[dispatcher] 1:b55d9304 2:b6f96ea8 3:be8e5520[scan] scan(0xb6f96ea8): 0xb55d9400 (bb 20)
[scan] ++++++++++++++++++++++++++++++++++
[scan_arm] :


Platform: ARM
Code:0x0d 0x0a 0x00 0xf4
Disasm:
0xb6f96ea8020a052a: (null) vst1.8
0xb6f96eacb6f96ea8:


Platform: ARM
Code:0x82 0xce 0xb0 0xe1
Disasm:
0xb6f96eac020a052a: (null) lsls
0xb6f96eb0b6f96eac:


Platform: ARM
Code:0x00 0x00 0x00 0x3a
Disasm:
0xb6f96eb0020a052a: (null) blo
0xb6f96eb4b6f96eb0:


Platform: ARM
Code:0x60 0x00 0xbd 0xe8 0x0d 0x0a 0x00 0xf4 0x82 0xce 0xb0 0xe1 0x00 0xf0 0x20 0xe3 0x0c 0xd0 0x4d 0xe2 0x0f 0x00 0x2d 0xe9 0x1c 0x30 0x8d 0xe2 0xb4 0x0e 0x06 0x23 0xf9 0x06 0x4b 0x23 0xb8 0x0e 0x06 0x33 0xf9 0x06 0x4b 0x33 0x14 0x10 0x00 0xe3 0x00 0x10 0x40 0xe3 0xf2 0xfa 0xff 0xea 0x00 0x00 0x00 0x00
Disasm:
0xb55d9400020a052a: (null) pop
0xb55d9404020a0612: (null) vst1.8
0xb55d9408020a06fa: (null) lsls
0xb55d940c020a07e2: (null) nop
0xb55d9410020a08ca: (null) sub
0xb55d9414020a09b2: (null) push
0xb55d9418020a0a9a: (null) add
0xb55d941c020a0b82: (null) movwhs
0xb55d9420020a0c6a: (null) movths
0xb55d9424020a0d52: (null) movwlo
0xb55d9428020a0e3a: (null) movtlo
0xb55d942c020a0f22: (null) movw
0xb55d9430020a100a: (null) movt
0xb55d9434020a10f2: (null) b
0xb55d9438020a11da: (null) andeq
0xb55d943cb55d9438:

+i:0 addr:be8e54bc data:be8e5520
+i:1 addr:be8e54c0 data:be8e5740
+i:2 addr:be8e54c4 data:0
+i:3 addr:be8e54c8 data:b6f92000
+i:4 addr:be8e54cc data:b6fa0fe8
+i:5 addr:be8e54d0 data:be8e54e8
+i:6 addr:be8e54d4 data:b6f95529
+i:7 addr:be8e54d8 data:0
+i:8 addr:be8e54dc data:0
+i:9 addr:be8e54e0 data:0
+i:10 addr:be8e54e4 data:2
+i:11 addr:be8e54e8 data:2a0c
+i:12 addr:be8e54ec data:0
+i:13 addr:be8e54f0 data:1edff4
+i:14 addr:be8e54f4 data:155001
+i:15 addr:be8e54f8 data:c
-i:0 addr:be8e54bc data:be8e5520
-i:1 addr:be8e54b8 data:b6f96eb8
-i:2 addr:be8e54b4 data:b55d9404
-i:3 addr:be8e54b0 data:be8e5660
-i:4 addr:be8e54ac data:be8e5740
-i:5 addr:be8e54a8 data:10
-i:6 addr:be8e54a4 data:0
-i:7 addr:be8e54a0 data:be8e5670
-i:8 addr:be8e549c data:b6f933d5
-i:9 addr:be8e5498 data:0
-i:10 addr:be8e5494 data:be8e550c
-i:11 addr:be8e5490 data:be8e5520
-i:12 addr:be8e548c data:b6fa3594
-i:13 addr:be8e5488 data:b6f92034
-i:14 addr:be8e5484 data:b6f9d10c
-i:15 addr:be8e5480 data:0
[dispatcher] addr: 0x9b61 target:b6f96eb8 source_index:14 next_addr:0xbe8e54b4
[dispatcher] 1:b55d9404 2:b6f96eb8 3:be8e5520[scan] scan(0xb6f96eb8): 0xb55d9500 (bb 21)
[scan] ++++++++++++++++++++++++++++++++++
[scan_arm] :


Platform: ARM
Code:0x00 0x00 0x00 0xaa
Disasm:
0xb6f96eb8020a052a: (null) bge
0xb6f96ebcb6f96eb8:


Platform: ARM
Code:0x60 0x00 0xbd 0xe8 0x00 0xf0 0x20 0xe3 0x0c 0xd0 0x4d 0xe2 0x0f 0x00 0x2d 0xe9 0x1c 0x30 0x8d 0xe2 0xbc 0x0e 0x06 0xb3 0xf9 0x06 0x4b 0xb3 0xc0 0x0e 0x06 0xa3 0xf9 0x06 0x4b 0xa3 0x15 0x10 0x00 0xe3 0x00 0x10 0x40 0xe3 0xb4 0xfa 0xff 0xea 0x00 0x00 0x00 0x00
Disasm:
0xb55d9500020a052a: (null) pop
0xb55d9504020a0612: (null) nop
0xb55d9508020a06fa: (null) sub
0xb55d950c020a07e2: (null) push
0xb55d9510020a08ca: (null) add
0xb55d9514020a09b2: (null) movwlt
0xb55d9518020a0a9a: (null) movtlt
0xb55d951c020a0b82: (null) movwge
0xb55d9520020a0c6a: (null) movtge
0xb55d9524020a0d52: (null) movw
0xb55d9528020a0e3a: (null) movt
0xb55d952c020a0f22: (null) b
0xb55d9530020a100a: (null) andeq
0xb55d9534b55d9530:

+i:0 addr:be8e54bc data:be8e5520
+i:1 addr:be8e54c0 data:be8e5740
+i:2 addr:be8e54c4 data:0
+i:3 addr:be8e54c8 data:b6f92000
+i:4 addr:be8e54cc data:b6fa0fe8
+i:5 addr:be8e54d0 data:be8e54e8
+i:6 addr:be8e54d4 data:b6f95529
+i:7 addr:be8e54d8 data:0
+i:8 addr:be8e54dc data:0
+i:9 addr:be8e54e0 data:0
+i:10 addr:be8e54e4 data:2
+i:11 addr:be8e54e8 data:2a0c
+i:12 addr:be8e54ec data:0
+i:13 addr:be8e54f0 data:1edff4
+i:14 addr:be8e54f4 data:155001
+i:15 addr:be8e54f8 data:c
-i:0 addr:be8e54bc data:be8e5520
-i:1 addr:be8e54b8 data:b6f96ec0
-i:2 addr:be8e54b4 data:b55d9504
-i:3 addr:be8e54b0 data:be8e5670
-i:4 addr:be8e54ac data:be8e5740
-i:5 addr:be8e54a8 data:10
-i:6 addr:be8e54a4 data:0
-i:7 addr:be8e54a0 data:be8e5670
-i:8 addr:be8e549c data:b6f933d5
-i:9 addr:be8e5498 data:0
-i:10 addr:be8e5494 data:be8e550c
-i:11 addr:be8e5490 data:be8e5520
-i:12 addr:be8e548c data:b6fa3594
-i:13 addr:be8e5488 data:b6f92034
-i:14 addr:be8e5484 data:b6f9d10c
-i:15 addr:be8e5480 data:0
[dispatcher] addr: 0x9b61 target:b6f96ec0 source_index:15 next_addr:0xbe8e54b4
[dispatcher] 1:b55d9504 2:b6f96ec0 3:be8e5520[scan] scan(0xb6f96ec0): 0xb55d9600 (bb 22)
[scan] ++++++++++++++++++++++++++++++++++
[scan_arm] :


Platform: ARM
Code:0x82 0xcf 0xb0 0xe1
Disasm:
0xb6f96ec0020a052a: (null) lsls
0xb6f96ec4b6f96ec0:


Platform: ARM
Code:0x01 0x10 0xc0 0x44
Disasm:
0xb6f96ec4020a052a: (null) strbmi
0xb6f96ec8b6f96ec4:


Platform: ARM
Code:0x01 0x10 0xc0 0x24
Disasm:
0xb6f96ec8020a052a: (null) strbhs
0xb6f96eccb6f96ec8:


Platform: ARM
Code:0x01 0x10 0xc0 0x24
Disasm:
0xb6f96ecc020a052a: (null) strbhs
0xb6f96ed0b6f96ecc:


Platform: ARM
Code:0x01 0x00 0xbd 0xe8
Disasm:
0xb6f96ed0020a052a: (null) ldm
0xb6f96ed4b6f96ed0:


Platform: ARM
Code:0x1e 0xff 0x2f 0xe1
Disasm:
0xb6f96ed4020a052a: (null) bx
0xb6f96ed8b6f96ed4:


Platform: ARM
Code:0x60 0x00 0xbd 0xe8 0x82 0xcf 0xb0 0xe1 0x01 0x10 0xc0 0x44 0x01 0x10 0xc0 0x24 0x01 0x10 0xc0 0x24 0x01 0x00 0xbd 0xe8 0x0c 0xd0 0x4d 0xe2 0x0f 0x00 0x2d 0xe9 0x0e 0x00 0xa0 0xe1 0x18 0x30 0x8d 0xe2 0x16 0x10 0x00 0xe3 0x00 0x10 0x40 0xe3 0x73 0xfa 0xff 0xea 0x00 0x00 0x00 0x00
Disasm:
0xb55d9600020a052a: (null) pop
0xb55d9604020a0612: (null) lsls
0xb55d9608020a06fa: (null) strbmi
0xb55d960c020a07e2: (null) strbhs
0xb55d9610020a08ca: (null) strbhs
0xb55d9614020a09b2: (null) ldm
0xb55d9618020a0a9a: (null) sub
0xb55d961c020a0b82: (null) push
0xb55d9620020a0c6a: (null) mov
0xb55d9624020a0d52: (null) add
0xb55d9628020a0e3a: (null) movw
0xb55d962c020a0f22: (null) movt
0xb55d9630020a100a: (null) b
0xb55d9634020a10f2: (null) andeq
0xb55d9638b55d9634:

+i:0 addr:be8e54bc data:be8e5520
+i:1 addr:be8e54c0 data:be8e5740
+i:2 addr:be8e54c4 data:0
+i:3 addr:be8e54c8 data:b6f92000
+i:4 addr:be8e54cc data:b6fa0fe8
+i:5 addr:be8e54d0 data:be8e54e8
+i:6 addr:be8e54d4 data:b6f95529
+i:7 addr:be8e54d8 data:0
+i:8 addr:be8e54dc data:0
+i:9 addr:be8e54e0 data:0
+i:10 addr:be8e54e4 data:2
+i:11 addr:be8e54e8 data:2a0c
+i:12 addr:be8e54ec data:0
+i:13 addr:be8e54f0 data:1edff4
+i:14 addr:be8e54f4 data:155001
+i:15 addr:be8e54f8 data:c
-i:0 addr:be8e54bc data:be8e5520
-i:1 addr:be8e54b8 data:b6f933d5
-i:2 addr:be8e54b4 data:b55d9604
-i:3 addr:be8e54b0 data:be8e5740
-i:4 addr:be8e54ac data:10
-i:5 addr:be8e54a8 data:0
-i:6 addr:be8e54a4 data:be8e5520
-i:7 addr:be8e54a0 data:b6f933d5
-i:8 addr:be8e549c data:0
-i:9 addr:be8e5498 data:be8e550c
-i:10 addr:be8e5494 data:be8e5520
-i:11 addr:be8e5490 data:b6fa3594
-i:12 addr:be8e548c data:b6f92034
-i:13 addr:be8e5488 data:b6f9d10c
-i:14 addr:be8e5484 data:0
-i:15 addr:be8e5480 data:0
[dispatcher] addr: 0x9b61 target:b6f933d5 source_index:16 next_addr:0xbe8e54b4
[dispatcher] 1:b55d9604 2:b6f933d5 3:be8e5520[scan] scan(0xb6f933d5): 0xb55d9700 (bb 23)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x20 0x46
Disasm:
0xb6f933d4: mov r0, r4
0xb6f933d6:


Platform: Thumb-mixed
Code:0x39 0x46
Disasm:
0xb6f933d6: mov r1, r7
0xb6f933d8:


Platform: Thumb-mixed
Code:0x80 0x22
Disasm:
0xb6f933d8: movs r2, #0x80
0xb6f933da:


Platform: Thumb-mixed
Code:0x05 0xf0
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x60 0xbc 0x20 0x46 0x39 0x46 0x80 0x22 0x43 0xf2 0xdf 0x3e 0xcb 0xf2 0xf9 0x6e 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x17 0x01 0xc0 0xf2 0x00 0x01 0x49 0xf2 0x6b 0x20 0xcb 0xf2 0xf9 0x60 0xfe 0xf7 0x6a 0xbc 0x00 0x00 0x00 0x00
Disasm:
0xb55d9700: pop {r5, r6}
0xb55d9702: mov r0, r4
0xb55d9704: mov r1, r7
0xb55d9706: movs r2, #0x80
0xb55d9708: movw lr, #0x33df
0xb55d970c: movt lr, #0xb6f9
0xb55d9710: sub sp, #0xc
0xb55d9712: push {r0, r1, r2, r3}
0xb55d9714: add.w r3, sp, #0x1c
0xb55d9718: movw r1, #0x17
0xb55d971c: movt r1, #0
0xb55d9720: movw r0, #0x926b
0xb55d9724: movt r0, #0xb6f9
0xb55d9728: b.w #b55d8000
0xb55d972c: movs r0, r0
0xb55d972e: movs r0, r0
0xb55d9730:

+i:0 addr:be8e54bc data:be8e5520
+i:1 addr:be8e54c0 data:be8e5740
+i:2 addr:be8e54c4 data:0
+i:3 addr:be8e54c8 data:b6f92000
+i:4 addr:be8e54cc data:b6fa0fe8
+i:5 addr:be8e54d0 data:be8e54e8
+i:6 addr:be8e54d4 data:b6f95529
+i:7 addr:be8e54d8 data:0
+i:8 addr:be8e54dc data:0
+i:9 addr:be8e54e0 data:0
+i:10 addr:be8e54e4 data:2
+i:11 addr:be8e54e8 data:2a0c
+i:12 addr:be8e54ec data:0
+i:13 addr:be8e54f0 data:1edff4
+i:14 addr:be8e54f4 data:155001
+i:15 addr:be8e54f8 data:c
-i:0 addr:be8e54bc data:be8e5520
-i:1 addr:be8e54b8 data:b6f9926b
-i:2 addr:be8e54b4 data:b55d9703
-i:3 addr:be8e54b0 data:be8e5520
-i:4 addr:be8e54ac data:be8e5740
-i:5 addr:be8e54a8 data:80
-i:6 addr:be8e54a4 data:b6f9d10c
-i:7 addr:be8e54a0 data:be8e5520
-i:8 addr:be8e549c data:b6f933df
-i:9 addr:be8e5498 data:0
-i:10 addr:be8e5494 data:be8e550c
-i:11 addr:be8e5490 data:be8e5520
-i:12 addr:be8e548c data:b6fa3594
-i:13 addr:be8e5488 data:b6f92034
-i:14 addr:be8e5484 data:b6f9d10c
-i:15 addr:be8e5480 data:0
[dispatcher] addr: 0x9b61 target:b6f9926b source_index:17 next_addr:0xbe8e54b4
[dispatcher] 1:b55d9703 2:b6f9926b 3:be8e5520[scan] scan(0xb6f9926b): 0xb55d9800 (bb 24)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x10 0xb5
Disasm:
0xb6f9926a020a052a: (null) push
0xb6f9926cb6f9926a:


Platform: Thumb-mixed
Code:0x62 0xb1
Disasm:
0xb6f9926c020a052a: (null) cbz
0xb6f9926eb6f9926c:


Platform: Thumb-mixed
Code:0x60 0xbc 0x10 0xb5 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x5a 0xb1 0x40 0xf2 0x18 0x01 0xc0 0xf2 0x00 0x01 0x49 0xf2 0x6f 0x20 0xcb 0xf2 0xf9 0x60 0x0d 0xf1 0x1c 0x03 0xfe 0xf7 0xec 0xbb 0x40 0xf2 0x18 0x01 0xc0 0xf2 0x00 0x01 0x49 0xf2 0x89 0x20 0xcb 0xf2 0xf9 0x60 0x0d 0xf1 0x1c 0x03 0xfe 0xf7 0xe0 0xbb 0x00 0x00 0x00 0x00
Disasm:
0xb55d9800020a052a: (null) pop
0xb55d9802020a0612: (null) push
0xb55d9804020a06fa: (null) nop
0xb55d9806020a07e2: (null) nop
0xb55d9808020a08ca: (null) nop
0xb55d980a020a09b2: (null) sub
0xb55d980c020a0a9a: (null) push
0xb55d980e020a0b82: (null) cbz
0xb55d9810020a0c6a: (null) movw
0xb55d9814020a0d52: (null) movt
0xb55d9818020a0e3a: (null) movw
0xb55d981c020a0f22: (null) movt
0xb55d9820020a100a: (null) add.w
0xb55d9824020a10f2: (null) b.w
0xb55d9828020a11da: (null) movw
0xb55d982c020a12c2: (null) movt
0xb55d9830020a13aa: (null) movw
0xb55d9834020a1492: (null) movt
0xb55d9838020a157a: (null) add.w
0xb55d983c020a1662: (null) b.w
0xb55d9840020a174a: (null) movs
0xb55d9842020a1832: (null) movs
0xb55d9844b55d9842:

[dispatcher] addr: 0x9b61 target:b6f9926f source_index:18 next_addr:0xbe8e54ac
[dispatcher] 1:be8e5740 2:b6f9926f 3:be8e5520[scan] scan(0xb6f9926f): 0xb55d9900 (bb 25)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x02 0xf1
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x0b 0x46
Disasm:
0xb6f99272020a052a: (null) mov
0xb6f99274b6f99272:


Platform: Thumb-mixed
Code:0x84 0x44
Disasm:
0xb6f99274020a052a: (null) add
0xb6f99276b6f99274:


Platform: Thumb-mixed
Code:0x60 0x45
Disasm:
0xb6f99276020a052a: (null) cmp
0xb6f99278b6f99276:


Platform: Thumb-mixed
Code:0x0e 0xd0
Disasm:
0xb6f99278020a052a: (null) beq
0xb6f9927ab6f99278:


Platform: Thumb-mixed
Code:0x60 0xbc 0x02 0xf1 0xff 0x3c 0x0b 0x46 0x84 0x44 0x60 0x45 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x19 0x01 0xc0 0xf2 0x00 0x01 0x05 0xd0 0x49 0xf2 0x7b 0x20 0xcb 0xf2 0xf9 0x60 0xfe 0xf7 0x68 0xbb 0x49 0xf2 0x99 0x20 0xcb 0xf2 0xf9 0x60 0xfe 0xf7 0x62 0xbb 0x00 0x00 0x00 0x00
Disasm:
0xb55d9900020a052a: (null) pop
0xb55d9902020a0612: (null) add.w
0xb55d9906020a06fa: (null) mov
0xb55d9908020a07e2: (null) add
0xb55d990a020a08ca: (null) cmp
0xb55d990c020a09b2: (null) nop
0xb55d990e020a0a9a: (null) nop
0xb55d9910020a0b82: (null) nop
0xb55d9912020a0c6a: (null) sub
0xb55d9914020a0d52: (null) push
0xb55d9916020a0e3a: (null) add.w
0xb55d991a020a0f22: (null) movw
0xb55d991e020a100a: (null) movt
0xb55d9922020a10f2: (null) beq
0xb55d9924020a11da: (null) movw
0xb55d9928020a12c2: (null) movt
0xb55d992c020a13aa: (null) b.w
0xb55d9930020a1492: (null) movw
0xb55d9934020a157a: (null) movt
0xb55d9938020a1662: (null) b.w
0xb55d993c020a174a: (null) movs
0xb55d993e020a1832: (null) movs
0xb55d9940b55d993e:

[dispatcher] addr: 0x9b61 target:b6f9927b source_index:19 next_addr:0xbe8e54ac
[dispatcher] 1:b55d9903 2:b6f9927b 3:be8e5520[scan] scan(0xb6f9927b): 0xb55d9a00 (bb 26)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x13 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x00 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x00 0x2c
Disasm:
0xb6f99282020a052a: (null) cmp
0xb6f99284b6f99282:


Platform: Thumb-mixed
Code:0xf7 0xd1
Disasm:
0xb6f99284020a052a: (null) bne
0xb6f99286b6f99284:


Platform: Thumb-mixed
Code:0x60 0xbc 0x13 0xf8 0x01 0x4b 0x00 0xf8 0x01 0x4b 0x00 0x2c 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x1a 0x01 0xc0 0xf2 0x00 0x01 0x05 0xd1 0x49 0xf2 0x87 0x20 0xcb 0xf2 0xf9 0x60 0xfe 0xf7 0xe8 0xba 0x49 0xf2 0x77 0x20 0xcb 0xf2 0xf9 0x60 0xfe 0xf7 0xe2 0xba 0x00 0x00 0x00 0x00
Disasm:
0xb55d9a00020a052a: (null) pop
0xb55d9a02020a0612: (null) ldrb
0xb55d9a06020a06fa: (null) strb
0xb55d9a0a020a07e2: (null) cmp
0xb55d9a0c020a08ca: (null) nop
0xb55d9a0e020a09b2: (null) nop
0xb55d9a10020a0a9a: (null) nop
0xb55d9a12020a0b82: (null) sub
0xb55d9a14020a0c6a: (null) push
0xb55d9a16020a0d52: (null) add.w
0xb55d9a1a020a0e3a: (null) movw
0xb55d9a1e020a0f22: (null) movt
0xb55d9a22020a100a: (null) bne
0xb55d9a24020a10f2: (null) movw
0xb55d9a28020a11da: (null) movt
0xb55d9a2c020a12c2: (null) b.w
0xb55d9a30020a13aa: (null) movw
0xb55d9a34020a1492: (null) movt
0xb55d9a38020a157a: (null) b.w
0xb55d9a3c020a1662: (null) movs
0xb55d9a3e020a174a: (null) movs
0xb55d9a40b55d9a3e:

[dispatcher] addr: 0x9b61 target:b6f99277 source_index:1a next_addr:0xbe8e54ac
[dispatcher] 1:b55d9a03 2:b6f99277 3:be8e5520[scan] scan(0xb6f99277): 0xb55d9b00 (bb 27)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x60 0x45
Disasm:
0xb6f99276020a052a: (null) cmp
0xb6f99278b6f99276:


Platform: Thumb-mixed
Code:0x0e 0xd0
Disasm:
0xb6f99278020a052a: (null) beq
0xb6f9927ab6f99278:


Platform: Thumb-mixed
Code:0x60 0xbc 0x60 0x45 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x1b 0x01 0xc0 0xf2 0x00 0x01 0x05 0xd0 0x49 0xf2 0x7b 0x20 0xcb 0xf2 0xf9 0x60 0xfe 0xf7 0x6c 0xba 0x49 0xf2 0x99 0x20 0xcb 0xf2 0xf9 0x60 0xfe 0xf7 0x66 0xba 0x00 0x00 0x00 0x00
Disasm:
0xb55d9b00020a052a: (null) pop
0xb55d9b02020a0612: (null) cmp
0xb55d9b04020a06fa: (null) nop
0xb55d9b06020a07e2: (null) nop
0xb55d9b08020a08ca: (null) nop
0xb55d9b0a020a09b2: (null) sub
0xb55d9b0c020a0a9a: (null) push
0xb55d9b0e020a0b82: (null) add.w
0xb55d9b12020a0c6a: (null) movw
0xb55d9b16020a0d52: (null) movt
0xb55d9b1a020a0e3a: (null) beq
0xb55d9b1c020a0f22: (null) movw
0xb55d9b20020a100a: (null) movt
0xb55d9b24020a10f2: (null) b.w
0xb55d9b28020a11da: (null) movw
0xb55d9b2c020a12c2: (null) movt
0xb55d9b30020a13aa: (null) b.w
0xb55d9b34020a1492: (null) movs
0xb55d9b36020a157a: (null) movs
0xb55d9b38b55d9b36:

[dispatcher] addr: 0x9b61 target:b6f9927b source_index:1b next_addr:0xbe8e54ac
[dispatcher] 1:b55d9b03 2:b6f9927b 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f99277 source_index:1a next_addr:0xbe8e54ac
[dispatcher] 1:b55d9a03 2:b6f99277 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f9927b source_index:1b next_addr:0xbe8e54ac
[dispatcher] 1:b55d9b03 2:b6f9927b 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f99277 source_index:1a next_addr:0xbe8e54ac
[dispatcher] 1:b55d9a03 2:b6f99277 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f9927b source_index:1b next_addr:0xbe8e54ac
[dispatcher] 1:b55d9b03 2:b6f9927b 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f99277 source_index:1a next_addr:0xbe8e54ac
[dispatcher] 1:b55d9a03 2:b6f99277 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f9927b source_index:1b next_addr:0xbe8e54ac
[dispatcher] 1:b55d9b03 2:b6f9927b 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f99277 source_index:1a next_addr:0xbe8e54ac
[dispatcher] 1:b55d9a03 2:b6f99277 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f9927b source_index:1b next_addr:0xbe8e54ac
[dispatcher] 1:b55d9b03 2:b6f9927b 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f99277 source_index:1a next_addr:0xbe8e54ac
[dispatcher] 1:b55d9a03 2:b6f99277 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f9927b source_index:1b next_addr:0xbe8e54ac
[dispatcher] 1:b55d9b03 2:b6f9927b 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f99277 source_index:1a next_addr:0xbe8e54ac
[dispatcher] 1:b55d9a03 2:b6f99277 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f9927b source_index:1b next_addr:0xbe8e54ac
[dispatcher] 1:b55d9b03 2:b6f9927b 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f99277 source_index:1a next_addr:0xbe8e54ac
[dispatcher] 1:b55d9a03 2:b6f99277 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f9927b source_index:1b next_addr:0xbe8e54ac
[dispatcher] 1:b55d9b03 2:b6f9927b 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f99277 source_index:1a next_addr:0xbe8e54ac
[dispatcher] 1:b55d9a03 2:b6f99277 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f9927b source_index:1b next_addr:0xbe8e54ac
[dispatcher] 1:b55d9b03 2:b6f9927b 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f99277 source_index:1a next_addr:0xbe8e54ac
[dispatcher] 1:b55d9a03 2:b6f99277 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f9927b source_index:1b next_addr:0xbe8e54ac
[dispatcher] 1:b55d9b03 2:b6f9927b 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f99277 source_index:1a next_addr:0xbe8e54ac
[dispatcher] 1:b55d9a03 2:b6f99277 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f9927b source_index:1b next_addr:0xbe8e54ac
[dispatcher] 1:b55d9b03 2:b6f9927b 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f99277 source_index:1a next_addr:0xbe8e54ac
[dispatcher] 1:b55d9a03 2:b6f99277 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f9927b source_index:1b next_addr:0xbe8e54ac
[dispatcher] 1:b55d9b03 2:b6f9927b 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f99277 source_index:1a next_addr:0xbe8e54ac
[dispatcher] 1:b55d9a03 2:b6f99277 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f9927b source_index:1b next_addr:0xbe8e54ac
[dispatcher] 1:b55d9b03 2:b6f9927b 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f99277 source_index:1a next_addr:0xbe8e54ac
[dispatcher] 1:b55d9a03 2:b6f99277 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f9927b source_index:1b next_addr:0xbe8e54ac
[dispatcher] 1:b55d9b03 2:b6f9927b 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f99277 source_index:1a next_addr:0xbe8e54ac
[dispatcher] 1:b55d9a03 2:b6f99277 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f9927b source_index:1b next_addr:0xbe8e54ac
[dispatcher] 1:b55d9b03 2:b6f9927b 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f99277 source_index:1a next_addr:0xbe8e54ac
[dispatcher] 1:b55d9a03 2:b6f99277 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f9927b source_index:1b next_addr:0xbe8e54ac
[dispatcher] 1:b55d9b03 2:b6f9927b 3:be8e5520[dispatcher] addr: 0x9b61 target:b6f99287 source_index:1a next_addr:0xbe8e54ac
[dispatcher] 1:b55d9a03 2:b6f99287 3:be8e5520[scan] scan(0xb6f99287): 0xb55d9c00 (bb 28)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x04 0xe0
Disasm:
0xb6f99286020a052a: (null) b
0xb6f99288b6f99286:


Platform: Thumb-mixed
Code:0x60 0xbc 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x1c 0x01 0xc0 0xf2 0x00 0x01 0x49 0xf2 0x93 0x20 0xcb 0xf2 0xf9 0x60 0xfe 0xf7 0xf1 0xb9 0x00 0x00 0x00 0x00
Disasm:
0xb55d9c00020a052a: (null) pop
0xb55d9c02020a0612: (null) sub
0xb55d9c04020a06fa: (null) push
0xb55d9c06020a07e2: (null) add.w
0xb55d9c0a020a08ca: (null) movw
0xb55d9c0e020a09b2: (null) movt
0xb55d9c12020a0a9a: (null) movw
0xb55d9c16020a0b82: (null) movt
0xb55d9c1a020a0c6a: (null) b.w
0xb55d9c1e020a0d52: (null) movs
0xb55d9c20020a0e3a: (null) movs
0xb55d9c22b55d9c20:

[dispatcher] addr: 0x9b61 target:b6f99293 source_index:1c next_addr:0xbe8e54ac
[dispatcher] 1:b55d9c03 2:b6f99293 3:be8e5520[scan] scan(0xb6f99293): 0xb55d9d00 (bb 29)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x59 0x1a
Disasm:
0xb6f99292020a052a: (null) subs
0xb6f99294b6f99292:


Platform: Thumb-mixed
Code:0x48 0x1e
Disasm:
0xb6f99294020a052a: (null) subs
0xb6f99296b6f99294:


Platform: Thumb-mixed
Code:0x10 0xbd
Disasm:
0xb6f99296020a052a: (null) pop
0xb6f99298b6f99296:


Platform: Thumb-mixed
Code:0x60 0xbc 0x59 0x1a 0x48 0x1e 0x10 0xbc 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x53 0xf8 0x04 0x0b 0x40 0xf2 0x1d 0x01 0xc0 0xf2 0x00 0x01 0xfe 0xf7 0x70 0xb9 0x00 0x00 0x00 0x00
Disasm:
0xb55d9d00020a052a: (null) pop
0xb55d9d02020a0612: (null) subs
0xb55d9d04020a06fa: (null) subs
0xb55d9d06020a07e2: (null) pop
0xb55d9d08020a08ca: (null) sub
0xb55d9d0a020a09b2: (null) push
0xb55d9d0c020a0a9a: (null) add.w
0xb55d9d10020a0b82: (null) ldr
0xb55d9d14020a0c6a: (null) movw
0xb55d9d18020a0d52: (null) movt
0xb55d9d1c020a0e3a: (null) b.w
0xb55d9d20020a0f22: (null) movs
0xb55d9d22020a100a: (null) movs
0xb55d9d24b55d9d22:

[dispatcher] addr: 0x9b61 target:b6f933df source_index:1d next_addr:0xbe8e54b4
[dispatcher] 1:be8e5520 2:b6f933df 3:be8e5520[scan] scan(0xb6f933df): 0xb55d9e00 (bb 30)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x4f 0xf0
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xc4 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xc4 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x4e 0xb1
Disasm:
0xb6f933ea: cbz r6, #b6f93400
0xb6f933ec:


Platform: Thumb-mixed
Code:0x60 0xbc 0x4f 0xf0 0x80 0x43 0xc4 0xf8 0x24 0x51 0xc4 0xf8 0xa8 0x30 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x5e 0xb1 0x40 0xf2 0x1e 0x01 0xc0 0xf2 0x00 0x01 0x43 0xf2 0xed 0x30 0xcb 0xf2 0xf9 0x60 0x0d 0xf1 0x1c 0x03 0xfe 0xf7 0xe7 0xb8 0x40 0xf2 0x1e 0x01 0xc0 0xf2 0x00 0x01 0x43 0xf2 0x01 0x40 0xcb 0xf2 0xf9 0x60 0x0d 0xf1 0x1c 0x03 0xfe 0xf7 0xdb 0xb8 0x00 0x00 0x00 0x00
Disasm:
0xb55d9e00: pop {r5, r6}
0xb55d9e02: mov.w r3, #0x40000000
0xb55d9e06: str.w r5, [r4, #0x124]
0xb55d9e0a: str.w r3, [r4, #0xa8]
0xb55d9e0e: nop
0xb55d9e10: nop
0xb55d9e12: nop
0xb55d9e14: sub sp, #0xc
0xb55d9e16: push {r0, r1, r2, r3}
0xb55d9e18: cbz r6, #b55d9e32
0xb55d9e1a: movw r1, #0x1e
0xb55d9e1e: movt r1, #0
0xb55d9e22: movw r0, #0x33ed
0xb55d9e26: movt r0, #0xb6f9
0xb55d9e2a: add.w r3, sp, #0x1c
0xb55d9e2e: b.w #b55d8000
0xb55d9e32: movw r1, #0x1e
0xb55d9e36: movt r1, #0
0xb55d9e3a: movw r0, #0x3401
0xb55d9e3e: movt r0, #0xb6f9
0xb55d9e42: add.w r3, sp, #0x1c
0xb55d9e46: b.w #b55d8000
0xb55d9e4a: movs r0, r0
0xb55d9e4c: movs r0, r0
0xb55d9e4e:

+i:0 addr:be8e54bc data:be8e5520
+i:1 addr:be8e54c0 data:be8e5740
+i:2 addr:be8e54c4 data:0
+i:3 addr:be8e54c8 data:b6f92000
+i:4 addr:be8e54cc data:b6fa0fe8
+i:5 addr:be8e54d0 data:be8e54e8
+i:6 addr:be8e54d4 data:b6f95529
+i:7 addr:be8e54d8 data:0
+i:8 addr:be8e54dc data:0
+i:9 addr:be8e54e0 data:0
+i:10 addr:be8e54e4 data:2
+i:11 addr:be8e54e8 data:2a0c
+i:12 addr:be8e54ec data:0
+i:13 addr:be8e54f0 data:1edff4
+i:14 addr:be8e54f4 data:155001
+i:15 addr:be8e54f8 data:c
-i:0 addr:be8e54bc data:be8e5520
-i:1 addr:be8e54b8 data:b6f93401
-i:2 addr:be8e54b4 data:b55d9e03
-i:3 addr:be8e54b0 data:10
-i:4 addr:be8e54ac data:40000000
-i:5 addr:be8e54a8 data:80
-i:6 addr:be8e54a4 data:11
-i:7 addr:be8e54a0 data:10
-i:8 addr:be8e549c data:b6f933df
-i:9 addr:be8e5498 data:be8e559f
-i:10 addr:be8e5494 data:be8e550c
-i:11 addr:be8e5490 data:be8e5520
-i:12 addr:be8e548c data:b6fa3594
-i:13 addr:be8e5488 data:b6f92034
-i:14 addr:be8e5484 data:b6f9d10c
-i:15 addr:be8e5480 data:0
[dispatcher] addr: 0x9b61 target:b6f93401 source_index:1e next_addr:0xbe8e54b4
[dispatcher] 1:b55d9e03 2:b6f93401 3:be8e5520[scan] scan(0xb6f93401): 0xb55d9f00 (bb 31)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x20 0x46
Disasm:
0xb6f93400020a052a: (null) mov
0xb6f93402b6f93400:


Platform: Thumb-mixed
Code:0xf8 0xbd
Disasm:
0xb6f93402020a052a: (null) pop
0xb6f93404b6f93402:


Platform: Thumb-mixed
Code:0x60 0xbc 0x20 0x46 0xf8 0xbc 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x53 0xf8 0x04 0x0b 0x40 0xf2 0x1f 0x01 0xc0 0xf2 0x00 0x01 0xfe 0xf7 0x71 0xb8 0x00 0x00 0x00 0x00
Disasm:
0xb55d9f00020a052a: (null) pop
0xb55d9f02020a0612: (null) mov
0xb55d9f04020a06fa: (null) pop
0xb55d9f06020a07e2: (null) sub
0xb55d9f08020a08ca: (null) push
0xb55d9f0a020a09b2: (null) add.w
0xb55d9f0e020a0a9a: (null) ldr
0xb55d9f12020a0b82: (null) movw
0xb55d9f16020a0c6a: (null) movt
0xb55d9f1a020a0d52: (null) b.w
0xb55d9f1e020a0e3a: (null) movs
0xb55d9f20020a0f22: (null) movs
0xb55d9f22b55d9f20:

[dispatcher] addr: 0x9b61 target:be8e54e8 source_index:1f next_addr:0xbe8e54cc
[dispatcher] 1:b6fa0fe8 2:be8e54e8 3:b6f95529[scan] scan(0xbe8e54e8): 0xb55da000 (bb 32)
[scan] ++++++++++++++++++++++++++++++++++
[scan_arm] :


Platform: ARM
Code:0x0c 0x2a 0x00 0x00
Disasm:
0xbe8e54e8: andeq r2, r0, ip, lsl #14
0xbe8e54ec:


Platform: ARM
Code:0x00 0x00 0x00 0x00
Disasm:
0xbe8e54ec: andeq r0, r0, r0
0xbe8e54f0:


Platform: ARM
Code:0xf4 0xdf 0x1e 0x00
Disasm:
0xbe8e54f0: ldrsheq sp, [lr], -r4
0xbe8e54f4:


Platform: ARM
Code:0x01 0x50 0x15 0x00
Disasm:
0xbe8e54f4: andseq r5, r5, r1
0xbe8e54f8:


Platform: ARM
Code:0x0c 0x00 0x00 0x00
Disasm:
0xbe8e54f8: andeq r0, r0, ip
0xbe8e54fc:


Platform: ARM
Code:0x60 0xb7 0x1e 0x00
Disasm:
0xbe8e54fc: andseq fp, lr, r0, ror #e
0xbe8e5500:


Platform: ARM
Code:0x10 0x00 0x00 0x00
Disasm:
0xbe8e5500: andeq r0, r0, r0, lsl r0
0xbe8e5504:


Platform: ARM
Code:0x62 0x36 0x66 0x39
Disasm:
0xbe8e5504: stmdblo r6!, {r1, r5, r6, sb, sl, ip, sp} ^
0xbe8e5508:


Platform: ARM
Code:0xc9 0x1e 0x68 0xd3
ERROR: Failed to disasm given code!

Unknown arm instruction: 384 at 0xbe8e5508
^C
130|shell@hammerhead:/ $
130|shell@hammerhead:/ $
130|shell@hammerhead:/ $
130|shell@hammerhead:/ $
130|shell@hammerhead:/ $
130|shell@hammerhead:/ $ exit
xzl@xzl-All-Series:/androidsource/mambondk/jni$
xzl@xzl-All-Series:
/androidsource/mambondk/jni$
xzl@xzl-All-Series:/androidsource/mambondk/jni$ ndk-build
Android NDK: APP_PLATFORM not set. Defaulting to minimum supported version android-14.
Android NDK: WARNING:/home/xzl/androidsource/mambondk/jni/Android.mk:dbm: non-system libraries in linker flags: libelf.a libcapstone.a
Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK: current module
[armeabi-v7a] Compile thumb : dbm <= dispatcher.S
warning: unknown warning option '-Wl' [-Wunknown-warning-option]
1 warning generated.
[armeabi-v7a] Compile thumb : dbm <= dispatcher_c.c
warning: unknown warning option '-Wl' [-Wunknown-warning-option]
In file included from /home/xzl/androidsource/mambondk/jni/dispatcher_c.c:25:
api/../dbm.h:362:9: warning: 'PAGE_SIZE' macro redefined [-Wmacro-redefined]
#define PAGE_SIZE (page_size)
^
/home/xzl/Android/Sdk/ndk-bundle/sysroot/usr/include/sys/user.h:38:9: note: previous definition is here
#define PAGE_SIZE 4096
^
/home/xzl/androidsource/mambondk/jni/dispatcher_c.c:169:11: warning: 25 enumeration values not handled in switch: 'unknown', 'stub',
'trace_inline_max'... [-Wswitch]
switch (source_branch_type) {
^
3 warnings generated.
[armeabi-v7a] Executable : dbm
clang++: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument]
[armeabi-v7a] Install : dbm => libs/armeabi-v7a/dbm
xzl@xzl-All-Series:
/androidsource/mambondk/jni$
xzl@xzl-All-Series:/androidsource/mambondk/jni$
xzl@xzl-All-Series:
/androidsource/mambondk/jni$
xzl@xzl-All-Series:/androidsource/mambondk/jni$ adb push ../libs/armeabi-v7a/dbm /data/local/tmp/
8889 KB/s (3133620 bytes in 0.344s)
xzl@xzl-All-Series:
/androidsource/mambondk/jni$
xzl@xzl-All-Series:/androidsource/mambondk/jni$
xzl@xzl-All-Series:
/androidsource/mambondk/jni$
xzl@xzl-All-Series:~/androidsource/mambondk/jni$ adb shell
data/local/tmp/dbm /data/local/tmp/execve <
[main] 1
[main] page_size: 1000
[main] pthread_mutex_init:
[main] interval_map_init:
[main] install_system_sig_handlers:
[load_elf] 1
[load_elf] &__ehdr_start : 0x8000
[load_elf] tmpbase : 0x8000
[load_elf] align_lower tmpsz:0
[load_elf] tmpmem
[load_elf] : /data/local/tmp/execve
[load_elf] : elf_version
[load_elf] : elf_begin
[load_elf] : elf_kind
[load_elf] : ELF_GETEHDR
[load_elf] : ehdr->e_ident
[load_elf] : ehdr->e_machine
[load_elf] : elf_getphdrnum
[load_elf] mmap base_addr:0xb6fd3000
[load_elf] : ehdr->e_type == ET_DYN
[load_elf] : is_interp : 0
[load_elf] 1
[load_elf] &__ehdr_start : 0x8000
[load_elf] tmpbase : 0x8000
[load_elf] align_lower tmpsz:0
[load_elf] tmpmem
[load_elf] : /system/bin/linker
[load_elf] : elf_version
[load_elf] : elf_begin
[load_elf] : elf_kind
[load_elf] : ELF_GETEHDR
[load_elf] : ehdr->e_ident
[load_elf] : ehdr->e_machine
[load_elf] : elf_getphdrnum
[load_elf] mmap base_addr:0xb6fc2000
[load_elf] : ehdr->e_type == ET_DYN
[load_elf] : phnum
[load_elf] : phnum
[main] entry address: 0xb6fc2a94
[main] load_elf:
[scan] bb 0 : b5608000


Platform: Thumb-mixed
Code:0x78 0x47 0x00 0x00
Disasm:
0xb5608000: bx pc
0xb5608002: movs r0, r0
0xb5608004:


Platform: ARM
Code:0x78 0x52 0x2d 0xe9 0x04 0x00 0x03 0xe5 0x08 0x20 0x43 0xe2 0x20 0x0b 0x6d 0xed 0x10 0x0b 0x2d 0xed 0x00 0x50 0x0f 0xe1 0x10 0x6a 0xf1 0xee 0x3c 0x31 0x9f 0xe5 0x38 0x90 0x9f 0xe5 0x0d 0x40 0xa0 0xe1 0x07 0xd0 0xcd 0xe3 0x39 0xff 0x2f 0xe1 0x04 0xd0 0xa0 0xe1 0x05 0xf0 0x29 0xe1 0x10 0x6a 0xe1 0xee 0x10 0x0b 0xbd 0xec 0x20 0x0b 0xfd 0xec 0x78 0x52 0xbd 0xe8 0x0c 0x10 0x9d 0xe5 0x0c 0x10 0x03 0xe5 0x07 0x00 0xbd 0xe8 0x0c 0xd0 0x43 0xe2 0x04 0x30 0x9d 0xe4 0x40 0x00 0x00 0xea 0x61 0x9b 0x00 0x00 0x03 0xf0 0x4f 0xe2 0xcd 0xf8 0x10 0xe0 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x0a 0x5c 0xa2 0xf2 0x01 0x02 0x0a 0x54 0x22 0xb1 0xbd 0xe8 0x07 0x40 0x5d 0xf8 0x08 0xfb 0x00 0xbf 0x78 0x47 0x00 0xbf 0x10 0x20 0x8d 0xe2 0x78 0x12 0x2d 0xe9 0x20 0x0b 0x6d 0xed 0x10 0x0b 0x2d 0xed 0x00 0x50 0x0f 0xe1 0x10 0x6a 0xf1 0xee 0x00 0x10 0xa0 0xe1 0xb0 0x00 0x9f 0xe5 0x24 0x31 0x9f 0xe5 0x0d 0x40 0xa0 0xe1 0x07 0xd0 0xcd 0xe3 0x33 0xff 0x2f 0xe1 0x04 0xd0 0xa0 0xe1 0x05 0xf0 0x29 0xe1 0x10 0x6a 0xe1 0xee 0x10 0x0b 0xbd 0xec 0x20 0x0b 0xfd 0xec 0x78 0x12 0xbd 0xe8 0x07 0x40 0xbd 0xe8 0x21 0x00 0x00 0xea 0x38 0xe0 0x8d 0xe5 0x3c 0x80 0x8d 0xe5 0x07 0x00 0xa0 0xe1 0x0d 0x10 0xa0 0xe1 0x08 0x20 0xa0 0xe1 0x68 0x30 0x9f 0xe5 0x5c 0x40 0x9f 0xe5 0x0d 0x50 0xa0 0xe1 0x07 0xd0 0xcd 0xe3 0x34 0xff 0x2f 0xe1 0x05 0xd0 0xa0 0xe1 0x00 0x00 0x50 0xe3 0x0f 0x00 0x00 0x0a 0xff 0x00 0x9d 0xe8 0x77 0x00 0x57 0xe3 0x40 0xd0 0x8d 0x02 0xad 0x00 0x57 0xe3 0x40 0xd0 0x8d 0x02 0x00 0x00 0x00 0xef 0xff 0x00 0x8d 0xe8 0x07 0x00 0xa0 0xe1 0x0d 0x10 0xa0 0xe1 0x08 0x20 0xa0 0xe1 0x20 0x30 0x9f 0xe5 0x18 0x40 0x9f 0xe5 0x0d 0x50 0xa0 0xe1 0x07 0xd0 0xcd 0xe3 0x34 0xff 0x2f 0xe1 0x05 0xd0 0xa0 0xe1 0xff 0x5f 0xbd 0xe8 0x02 0x00 0x00 0xea 0xd9 0x95 0x00 0x00 0x45 0x9a 0x00 0x00 0x00 0x80 0x60 0xb6 0x03 0xf0 0x4f 0xe2 0x01 0xb4 0xdf 0xf8 0x68 0x00 0x00 0x68 0x00 0xb1 0x02 0xe0 0x01 0xbc 0x5d 0xf8 0x08 0xfb 0x02 0x98 0x83 0xb0 0x06 0xb4 0x2d 0xe9 0x78 0x52 0x09 0xa9 0x6d 0xed 0x20 0x0b 0x2d 0xed 0x10 0x0b 0xef 0xf3 0x00 0x85 0xf1 0xee 0x10 0x6a 0xdf 0xf8 0x44 0x90 0x6c 0x46 0x24 0xf0 0x07 0x02 0x95 0x46 0xc8 0x47 0xa5 0x46 0x85 0xf3 0x00 0x89 0xe1 0xee 0x10 0x6a 0xbd 0xec 0x10 0x0b 0xfd 0xec 0x20 0x0b 0xbd 0xe8 0x78 0x52 0x30 0xb1 0x80 0xb4 0x03 0xaa 0x07 0xca 0x4f 0xf4 0x86 0x77 0x00 0xdf 0x80 0xbc 0x06 0xbc 0x03 0xb0 0x01 0xbc 0x5d 0xf8 0x08 0xfb 0x14 0x0f 0xfc 0xb6 0xd1 0x92 0x00 0x00 0x09 0x9d 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Disasm:
0xb5608004: push {r3, r4, r5, r6, sb, ip, lr}
0xb5608008: str r0, [r3, #-4]
0xb560800c: sub r2, r3, #8
0xb5608010: vpush {d16, d17, d18, d19, d20, d21, d22, d23, d24, d25, d26, d27, d28, d29, d30, d31}
0xb5608014: vpush {d0, d1, d2, d3, d4, d5, d6, d7}
0xb5608018: mrs r5, apsr
0xb560801c: vmrs r6, fpscr
0xb5608020: ldr r3, [pc, #0x13c]
0xb5608024: ldr sb, [pc, #0x38]
0xb5608028: mov r4, sp
0xb560802c: bic sp, sp, #7
0xb5608030: blx sb
0xb5608034: mov sp, r4
0xb5608038: msr cpsr_fc, r5
0xb560803c: vmsr fpscr, r6
0xb5608040: vpop {d0, d1, d2, d3, d4, d5, d6, d7}
0xb5608044: vpop {d16, d17, d18, d19, d20, d21, d22, d23, d24, d25, d26, d27, d28, d29, d30, d31}
0xb5608048: pop {r3, r4, r5, r6, sb, ip, lr}
0xb560804c: ldr r1, [sp, #0xc]
0xb5608050: str r1, [r3, #-0xc]
0xb5608054: pop {r0, r1, r2}
0xb5608058: sub sp, r3, #0xc
0xb560805c: pop {r3}
0xb5608060: b #b5608168
0xb5608064: andeq sb, r0, r1, ror #16
0xb5608068: sub pc, pc, #3
0xb560806c: ands pc, r0, sp, asr #11
0xb5608070: svclt #0xbf00
0xb5608074: svclt #0xbf00
0xb5608078:

[scan] scan(0xb6fc2a94): 0xb5608200 (bb 2)
[scan] ++++++++++++++++++++++++++++++++++
[scan_arm] :


Platform: ARM
Code:0x0d 0x00 0xa0 0xe1
Disasm:
0xb6fc2a94: mov r0, sp
0xb6fc2a98:


Platform: ARM
Code:0x83 0x0a 0x00 0xfa
Disasm:
0xb6fc2a98: blx #b6fc54ac
0xb6fc2a9c:


Platform: ARM
Code:0x60 0x00 0xbd 0xe8 0x0d 0x00 0xa0 0xe1 0x9c 0xea 0x02 0xe3 0xfc 0xe6 0x4b 0xe3 0x0c 0xd0 0x4d 0xe2 0x0f 0x00 0x2d 0xe9 0x1c 0x30 0x8d 0xe2 0xad 0x04 0x05 0xe3 0xfc 0x06 0x4b 0xe3 0x02 0x10 0x00 0xe3 0x00 0x10 0x40 0xe3 0x74 0xff 0xff 0xea 0x00 0x00 0x00 0x00
Disasm:
0xb5608200: pop {r5, r6}
0xb5608204: mov r0, sp
0xb5608208: movw lr, #0x2a9c
0xb560820c: movt lr, #0xb6fc
0xb5608210: sub sp, sp, #0xc
0xb5608214: push {r0, r1, r2, r3}
0xb5608218: add r3, sp, #0x1c
0xb560821c: movw r0, #0x54ad
0xb5608220: movt r0, #0xb6fc
0xb5608224: movw r1, #2
0xb5608228: movt r1, #0
0xb560822c: b #b5608004
0xb5608230: andeq r0, r0, r0
0xb5608234:

[main] Address of first basic block is: 0xb5608204
[dispatcher] addr: 0x9b61 target:b6fc54ad source_index:2 next_addr:0xbe84f690
[dispatcher] 1:0 2:b6fc54ad 3:1[scan] scan(0xb6fc54ad): 0xb5608300 (bb 3)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x2d 0xe9
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xe7 0xb0
Disasm:
0xb6fc54b0: sub sp, #0x19c
0xb6fc54b2:


Platform: Thumb-mixed
Code:0x04 0xaf
Disasm:
0xb6fc54b2: add r7, sp, #0x10
0xb6fc54b4:


Platform: Thumb-mixed
Code:0xdf 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x50 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x07 0xf1
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x7e 0x44
Disasm:
0xb6fc54c0: add r6, pc
0xb6fc54c2:


Platform: Thumb-mixed
Code:0x59 0x1c
Disasm:
0xb6fc54c2: adds r1, r3, #1
0xb6fc54c4:


Platform: Thumb-mixed
Code:0xcb 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x00 0xeb
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xcb 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xcb 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x02 0x46
Disasm:
0xb6fc54d4: mov r2, r0
0xb6fc54d6:


Platform: Thumb-mixed
Code:0x04 0x30
Disasm:
0xb6fc54d6: adds r0, #4
0xb6fc54d8:


Platform: Thumb-mixed
Code:0x14 0x68
Disasm:
0xb6fc54d8: ldr r4, [r2]
0xb6fc54da:


Platform: Thumb-mixed
Code:0x00 0x2c
Disasm:
0xb6fc54da: cmp r4, #0
0xb6fc54dc:


Platform: Thumb-mixed
Code:0xfa 0xd1
Disasm:
0xb6fc54dc: bne #b6fc54d4
0xb6fc54de:


Platform: Thumb-mixed
Code:0x60 0xbc 0x2d 0xe9 0xf0 0x4f 0xe7 0xb0 0x04 0xaf 0x45 0xf6 0x3c 0x36 0xcb 0xf2 0xfc 0x66 0xd6 0xf8 0x00 0x60 0x50 0xf8 0x04 0x3b 0x07 0xf1 0x24 0x0b 0x01 0xb4 0x45 0xf2 0xc4 0x40 0xcb 0xf2 0xfc 0x60 0x06 0x44 0x01 0xbc 0x59 0x1c 0xcb 0xf8 0x04 0x00 0x00 0xeb 0x81 0x00 0xcb 0xf8 0x00 0x30 0xcb 0xf8 0x08 0x00 0x02 0x46 0x04 0x30 0x14 0x68 0x00 0x2c 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x03 0x01 0xc0 0xf2 0x00 0x01 0x05 0xd1 0x45 0xf2 0xdf 0x40 0xcb 0xf2 0xfc 0x60 0xff 0xf7 0x4b 0xbe 0x45 0xf2 0xd5 0x40 0xcb 0xf2 0xfc 0x60 0xff 0xf7 0x45 0xbe 0x00 0x00 0x00 0x00
Disasm:
0xb5608300: pop {r5, r6}
0xb5608302: push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}
0xb5608306: sub sp, #0x19c
0xb5608308: add r7, sp, #0x10
0xb560830a: movw r6, #0x5b3c
0xb560830e: movt r6, #0xb6fc
0xb5608312: ldr.w r6, [r6]
0xb5608316: ldr r3, [r0], #4
0xb560831a: add.w fp, r7, #0x24
0xb560831e: push {r0}
0xb5608320: movw r0, #0x54c4
0xb5608324: movt r0, #0xb6fc
0xb5608328: add r6, r0
0xb560832a: pop {r0}
0xb560832c: adds r1, r3, #1
0xb560832e: str.w r0, [fp, #4]
0xb5608332: add.w r0, r0, r1, lsl #2
0xb5608336: str.w r3, [fp]
0xb560833a: str.w r0, [fp, #8]
0xb560833e: mov r2, r0
0xb5608340: adds r0, #4
0xb5608342: ldr r4, [r2]
0xb5608344: cmp r4, #0
0xb5608346: nop
0xb5608348: nop
0xb560834a: nop
0xb560834c: sub sp, #0xc
0xb560834e: push {r0, r1, r2, r3}
0xb5608350: add.w r3, sp, #0x1c
0xb5608354: movw r1, #3
0xb5608358: movt r1, #0
0xb560835c: bne #b560836a
0xb560835e: movw r0, #0x54df
0xb5608362: movt r0, #0xb6fc
0xb5608366: b.w #b5608000
0xb560836a: movw r0, #0x54d5
0xb560836e: movt r0, #0xb6fc
0xb5608372: b.w #b5608000
0xb5608376: movs r0, r0
0xb5608378: movs r0, r0
0xb560837a:

[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:3 next_addr:0xbe84f4d0
[dispatcher] 1:1 2:b6fc54d5 3:3[scan] scan(0xb6fc54d5): 0xb5608400 (bb 4)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x02 0x46
Disasm:
0xb6fc54d4: mov r2, r0
0xb6fc54d6:


Platform: Thumb-mixed
Code:0x04 0x30
Disasm:
0xb6fc54d6: adds r0, #4
0xb6fc54d8:


Platform: Thumb-mixed
Code:0x14 0x68
Disasm:
0xb6fc54d8: ldr r4, [r2]
0xb6fc54da:


Platform: Thumb-mixed
Code:0x00 0x2c
Disasm:
0xb6fc54da: cmp r4, #0
0xb6fc54dc:


Platform: Thumb-mixed
Code:0xfa 0xd1
Disasm:
0xb6fc54dc: bne #b6fc54d4
0xb6fc54de:


Platform: Thumb-mixed
Code:0x60 0xbc 0x02 0x46 0x04 0x30 0x14 0x68 0x00 0x2c 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x04 0x01 0xc0 0xf2 0x00 0x01 0x05 0xd1 0x45 0xf2 0xdf 0x40 0xcb 0xf2 0xfc 0x60 0xff 0xf7 0xe9 0xbd 0x45 0xf2 0xd5 0x40 0xcb 0xf2 0xfc 0x60 0xff 0xf7 0xe3 0xbd 0x00 0x00 0x00 0x00
Disasm:
0xb5608400: pop {r5, r6}
0xb5608402: mov r2, r0
0xb5608404: adds r0, #4
0xb5608406: ldr r4, [r2]
0xb5608408: cmp r4, #0
0xb560840a: nop
0xb560840c: nop
0xb560840e: nop
0xb5608410: sub sp, #0xc
0xb5608412: push {r0, r1, r2, r3}
0xb5608414: add.w r3, sp, #0x1c
0xb5608418: movw r1, #4
0xb560841c: movt r1, #0
0xb5608420: bne #b560842e
0xb5608422: movw r0, #0x54df
0xb5608426: movt r0, #0xb6fc
0xb560842a: b.w #b5608000
0xb560842e: movw r0, #0x54d5
0xb5608432: movt r0, #0xb6fc
0xb5608436: b.w #b5608000
0xb560843a: movs r0, r0
0xb560843c: movs r0, r0
0xb560843e:

[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54d5 source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54d5 3:3[dispatcher] addr: 0x9b61 target:b6fc54df source_index:4 next_addr:0xbe84f4d0
[dispatcher] 1:b5608403 2:b6fc54df 3:3[scan] scan(0xb6fc54df): 0xb5608500 (bb 5)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x03 0x46
Disasm:
0xb6fc54de: mov r3, r0
0xb6fc54e0:


Platform: Thumb-mixed
Code:0x01 0x46
Disasm:
0xb6fc54e0: mov r1, r0
0xb6fc54e2:


Platform: Thumb-mixed
Code:0xcb 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x0d 0x68
Disasm:
0xb6fc54e6: ldr r5, [r1]
0xb6fc54e8:


Platform: Thumb-mixed
Code:0x35 0xb1
Disasm:
0xb6fc54e8: cbz r5, #b6fc54f8
0xb6fc54ea:


Platform: Thumb-mixed
Code:0x60 0xbc 0x03 0x46 0x01 0x46 0xcb 0xf8 0x0c 0x00 0x0d 0x68 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x5d 0xb1 0x40 0xf2 0x05 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0xeb 0x40 0xcb 0xf2 0xfc 0x60 0x0d 0xf1 0x1c 0x03 0xff 0xf7 0x68 0xbd 0x40 0xf2 0x05 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0xf9 0x40 0xcb 0xf2 0xfc 0x60 0x0d 0xf1 0x1c 0x03 0xff 0xf7 0x5c 0xbd 0x00 0x00 0x00 0x00
Disasm:
0xb5608500: pop {r5, r6}
0xb5608502: mov r3, r0
0xb5608504: mov r1, r0
0xb5608506: str.w r0, [fp, #0xc]
0xb560850a: ldr r5, [r1]
0xb560850c: nop
0xb560850e: nop
0xb5608510: nop
0xb5608512: sub sp, #0xc
0xb5608514: push {r0, r1, r2, r3}
0xb5608516: cbz r5, #b5608530
0xb5608518: movw r1, #5
0xb560851c: movt r1, #0
0xb5608520: movw r0, #0x54eb
0xb5608524: movt r0, #0xb6fc
0xb5608528: add.w r3, sp, #0x1c
0xb560852c: b.w #b5608000
0xb5608530: movw r1, #5
0xb5608534: movt r1, #0
0xb5608538: movw r0, #0x54f9
0xb560853c: movt r0, #0xb6fc
0xb5608540: add.w r3, sp, #0x1c
0xb5608544: b.w #b5608000
0xb5608548: movs r0, r0
0xb560854a: movs r0, r0
0xb560854c:

[dispatcher] addr: 0x9b61 target:b6fc54eb source_index:5 next_addr:0xbe84f4d0
[dispatcher] 1:b5608503 2:b6fc54eb 3:3[scan] scan(0xb6fc54eb): 0xb5608600 (bb 6)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x07 0x2d
Disasm:
0xb6fc54ea: cmp r5, #7
0xb6fc54ec:


Platform: Thumb-mixed
Code:0x01 0xd1
Disasm:
0xb6fc54ec: bne #b6fc54f2
0xb6fc54ee:


Platform: Thumb-mixed
Code:0x60 0xbc 0x07 0x2d 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x06 0x01 0xc0 0xf2 0x00 0x01 0x05 0xd1 0x45 0xf2 0xef 0x40 0xcb 0xf2 0xfc 0x60 0xff 0xf7 0xec 0xbc 0x45 0xf2 0xf3 0x40 0xcb 0xf2 0xfc 0x60 0xff 0xf7 0xe6 0xbc 0x00 0x00 0x00 0x00
Disasm:
0xb5608600: pop {r5, r6}
0xb5608602: cmp r5, #7
0xb5608604: nop
0xb5608606: nop
0xb5608608: nop
0xb560860a: sub sp, #0xc
0xb560860c: push {r0, r1, r2, r3}
0xb560860e: add.w r3, sp, #0x1c
0xb5608612: movw r1, #6
0xb5608616: movt r1, #0
0xb560861a: bne #b5608628
0xb560861c: movw r0, #0x54ef
0xb5608620: movt r0, #0xb6fc
0xb5608624: b.w #b5608000
0xb5608628: movw r0, #0x54f3
0xb560862c: movt r0, #0xb6fc
0xb5608630: b.w #b5608000
0xb5608634: movs r0, r0
0xb5608636: movs r0, r0
0xb5608638:

[dispatcher] addr: 0x9b61 target:b6fc54f3 source_index:6 next_addr:0xbe84f4d0
[dispatcher] 1:b5608603 2:b6fc54f3 3:3[scan] scan(0xb6fc54f3): 0xb5608700 (bb 7)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x08 0x31
Disasm:
0xb6fc54f2: adds r1, #8
0xb6fc54f4:


Platform: Thumb-mixed
Code:0xf7 0xe7
Disasm:
0xb6fc54f4: b #b6fc54e6
0xb6fc54f6:


Platform: Thumb-mixed
Code:0x60 0xbc 0x08 0x31 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x07 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0xe7 0x40 0xcb 0xf2 0xfc 0x60 0xff 0xf7 0x70 0xbc 0x00 0x00 0x00 0x00
Disasm:
0xb5608700: pop {r5, r6}
0xb5608702: adds r1, #8
0xb5608704: sub sp, #0xc
0xb5608706: push {r0, r1, r2, r3}
0xb5608708: add.w r3, sp, #0x1c
0xb560870c: movw r1, #7
0xb5608710: movt r1, #0
0xb5608714: movw r0, #0x54e7
0xb5608718: movt r0, #0xb6fc
0xb560871c: b.w #b5608000
0xb5608720: movs r0, r0
0xb5608722: movs r0, r0
0xb5608724:

[dispatcher] addr: 0x9b61 target:b6fc54e7 source_index:7 next_addr:0xbe84f4d0
[dispatcher] 1:b5608703 2:b6fc54e7 3:3[scan] scan(0xb6fc54e7): 0xb5608800 (bb 8)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x0d 0x68
Disasm:
0xb6fc54e6: ldr r5, [r1]
0xb6fc54e8:


Platform: Thumb-mixed
Code:0x35 0xb1
Disasm:
0xb6fc54e8: cbz r5, #b6fc54f8
0xb6fc54ea:


Platform: Thumb-mixed
Code:0x60 0xbc 0x0d 0x68 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x5d 0xb1 0x40 0xf2 0x08 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0xeb 0x40 0xcb 0xf2 0xfc 0x60 0x0d 0xf1 0x1c 0x03 0xff 0xf7 0xec 0xbb 0x40 0xf2 0x08 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0xf9 0x40 0xcb 0xf2 0xfc 0x60 0x0d 0xf1 0x1c 0x03 0xff 0xf7 0xe0 0xbb 0x00 0x00 0x00 0x00
Disasm:
0xb5608800: pop {r5, r6}
0xb5608802: ldr r5, [r1]
0xb5608804: nop
0xb5608806: nop
0xb5608808: nop
0xb560880a: sub sp, #0xc
0xb560880c: push {r0, r1, r2, r3}
0xb560880e: cbz r5, #b5608828
0xb5608810: movw r1, #8
0xb5608814: movt r1, #0
0xb5608818: movw r0, #0x54eb
0xb560881c: movt r0, #0xb6fc
0xb5608820: add.w r3, sp, #0x1c
0xb5608824: b.w #b5608000
0xb5608828: movw r1, #8
0xb560882c: movt r1, #0
0xb5608830: movw r0, #0x54f9
0xb5608834: movt r0, #0xb6fc
0xb5608838: add.w r3, sp, #0x1c
0xb560883c: b.w #b5608000
0xb5608840: movs r0, r0
0xb5608842: movs r0, r0
0xb5608844:

[dispatcher] addr: 0x9b61 target:b6fc54eb source_index:8 next_addr:0xbe84f4d0
[dispatcher] 1:b5608803 2:b6fc54eb 3:3[dispatcher] addr: 0x9b61 target:b6fc54f3 source_index:6 next_addr:0xbe84f4d0
[dispatcher] 1:b5608603 2:b6fc54f3 3:3[dispatcher] addr: 0x9b61 target:b6fc54e7 source_index:7 next_addr:0xbe84f4d0
[dispatcher] 1:b5608703 2:b6fc54e7 3:3[dispatcher] addr: 0x9b61 target:b6fc54eb source_index:8 next_addr:0xbe84f4d0
[dispatcher] 1:b5608803 2:b6fc54eb 3:3[dispatcher] addr: 0x9b61 target:b6fc54f3 source_index:6 next_addr:0xbe84f4d0
[dispatcher] 1:b5608603 2:b6fc54f3 3:3[dispatcher] addr: 0x9b61 target:b6fc54e7 source_index:7 next_addr:0xbe84f4d0
[dispatcher] 1:b5608703 2:b6fc54e7 3:3[dispatcher] addr: 0x9b61 target:b6fc54eb source_index:8 next_addr:0xbe84f4d0
[dispatcher] 1:b5608803 2:b6fc54eb 3:3[dispatcher] addr: 0x9b61 target:b6fc54f3 source_index:6 next_addr:0xbe84f4d0
[dispatcher] 1:b5608603 2:b6fc54f3 3:3[dispatcher] addr: 0x9b61 target:b6fc54e7 source_index:7 next_addr:0xbe84f4d0
[dispatcher] 1:b5608703 2:b6fc54e7 3:3[dispatcher] addr: 0x9b61 target:b6fc54eb source_index:8 next_addr:0xbe84f4d0
[dispatcher] 1:b5608803 2:b6fc54eb 3:3[dispatcher] addr: 0x9b61 target:b6fc54f3 source_index:6 next_addr:0xbe84f4d0
[dispatcher] 1:b5608603 2:b6fc54f3 3:3[dispatcher] addr: 0x9b61 target:b6fc54e7 source_index:7 next_addr:0xbe84f4d0
[dispatcher] 1:b5608703 2:b6fc54e7 3:3[dispatcher] addr: 0x9b61 target:b6fc54eb source_index:8 next_addr:0xbe84f4d0
[dispatcher] 1:b5608803 2:b6fc54eb 3:3[dispatcher] addr: 0x9b61 target:b6fc54f3 source_index:6 next_addr:0xbe84f4d0
[dispatcher] 1:b5608603 2:b6fc54f3 3:3[dispatcher] addr: 0x9b61 target:b6fc54e7 source_index:7 next_addr:0xbe84f4d0
[dispatcher] 1:b5608703 2:b6fc54e7 3:3[dispatcher] addr: 0x9b61 target:b6fc54eb source_index:8 next_addr:0xbe84f4d0
[dispatcher] 1:b5608803 2:b6fc54eb 3:3[dispatcher] addr: 0x9b61 target:b6fc54ef source_index:6 next_addr:0xbe84f4d0
[dispatcher] 1:b5608603 2:b6fc54ef 3:3[scan] scan(0xb6fc54ef): 0xb5608900 (bb 9)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x4d 0x68
Disasm:
0xb6fc54ee: ldr r5, [r1, #4]
0xb6fc54f0:


Platform: Thumb-mixed
Code:0x02 0xe0
Disasm:
0xb6fc54f0: b #b6fc54f8
0xb6fc54f2:


Platform: Thumb-mixed
Code:0x60 0xbc 0x4d 0x68 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x09 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0xf9 0x40 0xcb 0xf2 0xfc 0x60 0xff 0xf7 0x70 0xbb 0x00 0x00 0x00 0x00
Disasm:
0xb5608900: pop {r5, r6}
0xb5608902: ldr r5, [r1, #4]
0xb5608904: sub sp, #0xc
0xb5608906: push {r0, r1, r2, r3}
0xb5608908: add.w r3, sp, #0x1c
0xb560890c: movw r1, #9
0xb5608910: movt r1, #0
0xb5608914: movw r0, #0x54f9
0xb5608918: movt r0, #0xb6fc
0xb560891c: b.w #b5608000
0xb5608920: movs r0, r0
0xb5608922: movs r0, r0
0xb5608924:

[dispatcher] addr: 0x9b61 target:b6fc54f9 source_index:9 next_addr:0xbe84f4d0
[dispatcher] 1:b5608903 2:b6fc54f9 3:3[scan] scan(0xb6fc54f9): 0xb5608a00 (bb 10)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x1a 0x68
Disasm:
0xb6fc54f8: ldr r2, [r3]
0xb6fc54fa:


Platform: Thumb-mixed
Code:0x22 0xb1
Disasm:
0xb6fc54fa: cbz r2, #b6fc5506
0xb6fc54fc:


Platform: Thumb-mixed
Code:0x60 0xbc 0x1a 0x68 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x5a 0xb1 0x40 0xf2 0x0a 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0xfd 0x40 0xcb 0xf2 0xfc 0x60 0x0d 0xf1 0x1c 0x03 0xff 0xf7 0xec 0xba 0x40 0xf2 0x0a 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0x07 0x50 0xcb 0xf2 0xfc 0x60 0x0d 0xf1 0x1c 0x03 0xff 0xf7 0xe0 0xba 0x00 0x00 0x00 0x00
Disasm:
0xb5608a00: pop {r5, r6}
0xb5608a02: ldr r2, [r3]
0xb5608a04: nop
0xb5608a06: nop
0xb5608a08: nop
0xb5608a0a: sub sp, #0xc
0xb5608a0c: push {r0, r1, r2, r3}
0xb5608a0e: cbz r2, #b5608a28
0xb5608a10: movw r1, #0xa
0xb5608a14: movt r1, #0
0xb5608a18: movw r0, #0x54fd
0xb5608a1c: movt r0, #0xb6fc
0xb5608a20: add.w r3, sp, #0x1c
0xb5608a24: b.w #b5608000
0xb5608a28: movw r1, #0xa
0xb5608a2c: movt r1, #0
0xb5608a30: movw r0, #0x5507
0xb5608a34: movt r0, #0xb6fc
0xb5608a38: add.w r3, sp, #0x1c
0xb5608a3c: b.w #b5608000
0xb5608a40: movs r0, r0
0xb5608a42: movs r0, r0
0xb5608a44:

[dispatcher] addr: 0x9b61 target:b6fc54fd source_index:a next_addr:0xbe84f4d0
[dispatcher] 1:b5608a03 2:b6fc54fd 3:3[scan] scan(0xb6fc54fd): 0xb5608b00 (bb 11)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x09 0x2a
Disasm:
0xb6fc54fc: cmp r2, #9
0xb6fc54fe:


Platform: Thumb-mixed
Code:0xfa 0xd1
Disasm:
0xb6fc54fe: bne #b6fc54f6
0xb6fc5500:


Platform: Thumb-mixed
Code:0x60 0xbc 0x09 0x2a 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x0b 0x01 0xc0 0xf2 0x00 0x01 0x05 0xd1 0x45 0xf2 0x01 0x50 0xcb 0xf2 0xfc 0x60 0xff 0xf7 0x6c 0xba 0x45 0xf2 0xf7 0x40 0xcb 0xf2 0xfc 0x60 0xff 0xf7 0x66 0xba 0x00 0x00 0x00 0x00
Disasm:
0xb5608b00: pop {r5, r6}
0xb5608b02: cmp r2, #9
0xb5608b04: nop
0xb5608b06: nop
0xb5608b08: nop
0xb5608b0a: sub sp, #0xc
0xb5608b0c: push {r0, r1, r2, r3}
0xb5608b0e: add.w r3, sp, #0x1c
0xb5608b12: movw r1, #0xb
0xb5608b16: movt r1, #0
0xb5608b1a: bne #b5608b28
0xb5608b1c: movw r0, #0x5501
0xb5608b20: movt r0, #0xb6fc
0xb5608b24: b.w #b5608000
0xb5608b28: movw r0, #0x54f7
0xb5608b2c: movt r0, #0xb6fc
0xb5608b30: b.w #b5608000
0xb5608b34: movs r0, r0
0xb5608b36: movs r0, r0
0xb5608b38:

[dispatcher] addr: 0x9b61 target:b6fc54f7 source_index:b next_addr:0xbe84f4d0
[dispatcher] 1:b5608b03 2:b6fc54f7 3:3[scan] scan(0xb6fc54f7): 0xb5608c00 (bb 12)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x08 0x33
Disasm:
0xb6fc54f6: adds r3, #8
0xb6fc54f8:


Platform: Thumb-mixed
Code:0x1a 0x68
Disasm:
0xb6fc54f8: ldr r2, [r3]
0xb6fc54fa:


Platform: Thumb-mixed
Code:0x22 0xb1
Disasm:
0xb6fc54fa: cbz r2, #b6fc5506
0xb6fc54fc:


Platform: Thumb-mixed
Code:0x60 0xbc 0x08 0x33 0x1a 0x68 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x5a 0xb1 0x40 0xf2 0x0c 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0xfd 0x40 0xcb 0xf2 0xfc 0x60 0x0d 0xf1 0x1c 0x03 0xff 0xf7 0xeb 0xb9 0x40 0xf2 0x0c 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0x07 0x50 0xcb 0xf2 0xfc 0x60 0x0d 0xf1 0x1c 0x03 0xff 0xf7 0xdf 0xb9 0x00 0x00 0x00 0x00
Disasm:
0xb5608c00: pop {r5, r6}
0xb5608c02: adds r3, #8
0xb5608c04: ldr r2, [r3]
0xb5608c06: nop
0xb5608c08: nop
0xb5608c0a: nop
0xb5608c0c: sub sp, #0xc
0xb5608c0e: push {r0, r1, r2, r3}
0xb5608c10: cbz r2, #b5608c2a
0xb5608c12: movw r1, #0xc
0xb5608c16: movt r1, #0
0xb5608c1a: movw r0, #0x54fd
0xb5608c1e: movt r0, #0xb6fc
0xb5608c22: add.w r3, sp, #0x1c
0xb5608c26: b.w #b5608000
0xb5608c2a: movw r1, #0xc
0xb5608c2e: movt r1, #0
0xb5608c32: movw r0, #0x5507
0xb5608c36: movt r0, #0xb6fc
0xb5608c3a: add.w r3, sp, #0x1c
0xb5608c3e: b.w #b5608000
0xb5608c42: movs r0, r0
0xb5608c44: movs r0, r0
0xb5608c46:

[dispatcher] addr: 0x9b61 target:b6fc54fd source_index:c next_addr:0xbe84f4d0
[dispatcher] 1:b5608c03 2:b6fc54fd 3:3[dispatcher] addr: 0x9b61 target:b6fc54f7 source_index:b next_addr:0xbe84f4d0
[dispatcher] 1:b5608b03 2:b6fc54f7 3:3[dispatcher] addr: 0x9b61 target:b6fc54fd source_index:c next_addr:0xbe84f4d0
[dispatcher] 1:b5608c03 2:b6fc54fd 3:3[dispatcher] addr: 0x9b61 target:b6fc54f7 source_index:b next_addr:0xbe84f4d0
[dispatcher] 1:b5608b03 2:b6fc54f7 3:3[dispatcher] addr: 0x9b61 target:b6fc54fd source_index:c next_addr:0xbe84f4d0
[dispatcher] 1:b5608c03 2:b6fc54fd 3:3[dispatcher] addr: 0x9b61 target:b6fc54f7 source_index:b next_addr:0xbe84f4d0
[dispatcher] 1:b5608b03 2:b6fc54f7 3:3[dispatcher] addr: 0x9b61 target:b6fc54fd source_index:c next_addr:0xbe84f4d0
[dispatcher] 1:b5608c03 2:b6fc54fd 3:3[dispatcher] addr: 0x9b61 target:b6fc54f7 source_index:b next_addr:0xbe84f4d0
[dispatcher] 1:b5608b03 2:b6fc54f7 3:3[dispatcher] addr: 0x9b61 target:b6fc54fd source_index:c next_addr:0xbe84f4d0
[dispatcher] 1:b5608c03 2:b6fc54fd 3:3[dispatcher] addr: 0x9b61 target:b6fc54f7 source_index:b next_addr:0xbe84f4d0
[dispatcher] 1:b5608b03 2:b6fc54f7 3:3[dispatcher] addr: 0x9b61 target:b6fc54fd source_index:c next_addr:0xbe84f4d0
[dispatcher] 1:b5608c03 2:b6fc54fd 3:3[dispatcher] addr: 0x9b61 target:b6fc54f7 source_index:b next_addr:0xbe84f4d0
[dispatcher] 1:b5608b03 2:b6fc54f7 3:3[dispatcher] addr: 0x9b61 target:b6fc54fd source_index:c next_addr:0xbe84f4d0
[dispatcher] 1:b5608c03 2:b6fc54fd 3:3[dispatcher] addr: 0x9b61 target:b6fc54f7 source_index:b next_addr:0xbe84f4d0
[dispatcher] 1:b5608b03 2:b6fc54f7 3:3[dispatcher] addr: 0x9b61 target:b6fc54fd source_index:c next_addr:0xbe84f4d0
[dispatcher] 1:b5608c03 2:b6fc54fd 3:3[dispatcher] addr: 0x9b61 target:b6fc5501 source_index:b next_addr:0xbe84f4d0
[dispatcher] 1:b5608b03 2:b6fc5501 3:3[scan] scan(0xb6fc5501): 0xb5608d00 (bb 13)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0xd3 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x00 0xe0
Disasm:
0xb6fc5504: b #b6fc5508
0xb6fc5506:


Platform: Thumb-mixed
Code:0x60 0xbc 0xd3 0xf8 0x04 0x90 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x0d 0x01 0xc0 0xf2 0x00 0x01 0x45 0xf2 0x09 0x50 0xcb 0xf2 0xfc 0x60 0xff 0xf7 0x6f 0xb9 0x00 0x00 0x00 0x00
Disasm:
0xb5608d00: pop {r5, r6}
0xb5608d02: ldr.w sb, [r3, #4]
0xb5608d06: sub sp, #0xc
0xb5608d08: push {r0, r1, r2, r3}
0xb5608d0a: add.w r3, sp, #0x1c
0xb5608d0e: movw r1, #0xd
0xb5608d12: movt r1, #0
0xb5608d16: movw r0, #0x5509
0xb5608d1a: movt r0, #0xb6fc
0xb5608d1e: b.w #b5608000
0xb5608d22: movs r0, r0
0xb5608d24: movs r0, r0
0xb5608d26:

[dispatcher] addr: 0x9b61 target:b6fc5509 source_index:d next_addr:0xbe84f4d0
[dispatcher] 1:b5608d03 2:b6fc5509 3:3[scan] scan(0xb6fc5509): 0xb5608e00 (bb 14)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0xc0 0xef
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xe8 0x69
Disasm:
0xb6fc550c: ldr r0, [r5, #0x1c]
0xb6fc550e:


Platform: Thumb-mixed
Code:0x07 0xf1
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xdf 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x00 0x22
Disasm:
0xb6fc5516: movs r2, #0
0xb6fc5518:


Platform: Thumb-mixed
Code:0x05 0xeb
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x50 0x46
Disasm:
0xb6fc551c: mov r0, sl
0xb6fc551e:


Platform: Thumb-mixed
Code:0x79 0x44
Disasm:
0xb6fc551e: add r1, pc
0xb6fc5520:


Platform: Thumb-mixed
Code:0xcd 0xed
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xfd 0xf7
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x60 0xbc 0xc0 0xef 0x10 0x00 0xe8 0x69 0x07 0xf1 0x38 0x0a 0x45 0xf6 0x40 0x31 0xcb 0xf2 0xfc 0x61 0xd1 0xf8 0x00 0x10 0x00 0x22 0x05 0xeb 0x00 0x08 0x50 0x46 0x01 0xb4 0x45 0xf2 0x22 0x50 0xcb 0xf2 0xfc 0x60 0x01 0x44 0x01 0xbc 0xcd 0xed 0x00 0x0b 0x45 0xf2 0x29 0x5e 0xcb 0xf2 0xfc 0x6e 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x0e 0x01 0xc0 0xf2 0x00 0x01 0x43 0xf2 0xb1 0x30 0xcb 0xf2 0xfc 0x60 0xff 0xf7 0xd5 0xb8 0x00 0x00 0x00 0x00
Disasm:
0xb5608e00: pop {r5, r6}
0xb5608e02: vmov.i32 d16, #0
0xb5608e06: ldr r0, [r5, #0x1c]
0xb5608e08: add.w sl, r7, #0x38
0xb5608e0c: movw r1, #0x5b40
0xb5608e10: movt r1, #0xb6fc
0xb5608e14: ldr.w r1, [r1]
0xb5608e18: movs r2, #0
0xb5608e1a: add.w r8, r5, r0
0xb5608e1e: mov r0, sl
0xb5608e20: push {r0}
0xb5608e22: movw r0, #0x5522
0xb5608e26: movt r0, #0xb6fc
0xb5608e2a: add r1, r0
0xb5608e2c: pop {r0}
0xb5608e2e: vstr d16, [sp]
0xb5608e32: movw lr, #0x5529
0xb5608e36: movt lr, #0xb6fc
0xb5608e3a: sub sp, #0xc
0xb5608e3c: push {r0, r1, r2, r3}
0xb5608e3e: add.w r3, sp, #0x1c
0xb5608e42: movw r1, #0xe
0xb5608e46: movt r1, #0
0xb5608e4a: movw r0, #0x33b1
0xb5608e4e: movt r0, #0xb6fc
0xb5608e52: b.w #b5608000
0xb5608e56: movs r0, r0
0xb5608e58: movs r0, r0
0xb5608e5a:

[dispatcher] addr: 0x9b61 target:b6fc33b1 source_index:e next_addr:0xbe84f4d0
[dispatcher] 1:b5608e03 2:b6fc33b1 3:0[scan] scan(0xb6fc33b1): 0xb5608f00 (bb 15)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0xf8 0xb5
Disasm:
0xb6fc33b0: push {r3, r4, r5, r6, r7, lr}
0xb6fc33b2:


Platform: Thumb-mixed
Code:0x00 0x25
Disasm:
0xb6fc33b2: movs r5, #0
0xb6fc33b4:


Platform: Thumb-mixed
Code:0x04 0x46
Disasm:
0xb6fc33b4: mov r4, r0
0xb6fc33b6:


Platform: Thumb-mixed
Code:0x0f 0x46
Disasm:
0xb6fc33b6: mov r7, r1
0xb6fc33b8:


Platform: Thumb-mixed
Code:0x16 0x46
Disasm:
0xb6fc33b8: mov r6, r2
0xb6fc33ba:


Platform: Thumb-mixed
Code:0x29 0x46
Disasm:
0xb6fc33ba: mov r1, r5
0xb6fc33bc:


Platform: Thumb-mixed
Code:0xc0 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x4f 0xf4
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xc0 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xc0 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xc0 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x03 0xf0
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x60 0xbc 0xf8 0xb5 0x00 0x25 0x04 0x46 0x0f 0x46 0x16 0x46 0x29 0x46 0xc0 0xf8 0x30 0x51 0x4f 0xf4 0xa8 0x72 0xc0 0xf8 0x34 0x51 0xc0 0xf8 0x38 0x51 0xc0 0xf8 0x3c 0x51 0x43 0xf2 0xd5 0x3e 0xcb 0xf2 0xfc 0x6e 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x0f 0x01 0xc0 0xf2 0x00 0x01 0x46 0xf6 0x7c 0x60 0xcb 0xf2 0xfc 0x60 0xff 0xf7 0x5d 0xb8 0x00 0x00 0x00 0x00
Disasm:
0xb5608f00: pop {r5, r6}
0xb5608f02: push {r3, r4, r5, r6, r7, lr}
0xb5608f04: movs r5, #0
0xb5608f06: mov r4, r0
0xb5608f08: mov r7, r1
0xb5608f0a: mov r6, r2
0xb5608f0c: mov r1, r5
0xb5608f0e: str.w r5, [r0, #0x130]
0xb5608f12: mov.w r2, #0x150
0xb5608f16: str.w r5, [r0, #0x134]
0xb5608f1a: str.w r5, [r0, #0x138]
0xb5608f1e: str.w r5, [r0, #0x13c]
0xb5608f22: movw lr, #0x33d5
0xb5608f26: movt lr, #0xb6fc
0xb5608f2a: sub sp, #0xc
0xb5608f2c: push {r0, r1, r2, r3}
0xb5608f2e: add.w r3, sp, #0x1c
0xb5608f32: movw r1, #0xf
0xb5608f36: movt r1, #0
0xb5608f3a: movw r0, #0x6e7c
0xb5608f3e: movt r0, #0xb6fc
0xb5608f42: b.w #b5608000
0xb5608f46: movs r0, r0
0xb5608f48: movs r0, r0
0xb5608f4a:

[dispatcher] addr: 0x9b61 target:b6fc6e7c source_index:f next_addr:0xbe84f4b8
[dispatcher] 1:b6fc5529 2:b6fc6e7c 3:be84f740[scan] scan(0xb6fc6e7c): 0xb5609000 (bb 16)
[scan] ++++++++++++++++++++++++++++++++++
[scan_arm] :


Platform: ARM
Code:0x01 0x00 0x2d 0xe9
Disasm:
0xb6fc6e7c: stmdb sp!, {r0}
0xb6fc6e80:


Platform: ARM
Code:0x10 0x1b 0xe0 0xee
Disasm:
0xb6fc6e80: vdup.8 q0, r1
0xb6fc6e84:


Platform: ARM
Code:0x20 0x20 0x52 0xe2
Disasm:
0xb6fc6e84: subs r2, r2, #0x20
0xb6fc6e88:


Platform: ARM
Code:0x03 0x00 0x00 0x3a
Disasm:
0xb6fc6e88: blo #b6fc6e9c
0xb6fc6e8c:


Platform: ARM
Code:0x60 0x00 0xbd 0xe8 0x01 0x00 0x2d 0xe9 0x10 0x1b 0xe0 0xee 0x20 0x20 0x52 0xe2 0x00 0xf0 0x20 0xe3 0x0c 0xd0 0x4d 0xe2 0x0f 0x00 0x2d 0xe9 0x1c 0x30 0x8d 0xe2 0x8c 0x0e 0x06 0x23 0xfc 0x06 0x4b 0x23 0x9c 0x0e 0x06 0x33 0xfc 0x06 0x4b 0x33 0x10 0x10 0x00 0xe3 0x00 0x10 0x40 0xe3 0xf1 0xfb 0xff 0xea 0x00 0x00 0x00 0x00
Disasm:
0xb5609000: pop {r5, r6}
0xb5609004: stmdb sp!, {r0}
0xb5609008: vdup.8 q0, r1
0xb560900c: subs r2, r2, #0x20
0xb5609010: nop
0xb5609014: sub sp, sp, #0xc
0xb5609018: push {r0, r1, r2, r3}
0xb560901c: add r3, sp, #0x1c
0xb5609020: movwhs r0, #0x6e8c
0xb5609024: movths r0, #0xb6fc
0xb5609028: movwlo r0, #0x6e9c
0xb560902c: movtlo r0, #0xb6fc
0xb5609030: movw r1, #0x10
0xb5609034: movt r1, #0
0xb5609038: b #b5608004
0xb560903c: andeq r0, r0, r0
0xb5609040:

[dispatcher] addr: 0x9b61 target:b6fc6e8c source_index:10 next_addr:0xbe84f4b4
[dispatcher] 1:be84f520 2:b6fc6e8c 3:be84f520[scan] scan(0xb6fc6e8c): 0xb5609100 (bb 17)
[scan] ++++++++++++++++++++++++++++++++++
[scan_arm] :


Platform: ARM
Code:0x50 0x21 0x20 0xf2
Disasm:
0xb6fc6e8c: vorr q1, q0, q0
0xb6fc6e90:


Platform: ARM
Code:0x20 0x20 0x52 0xe2
Disasm:
0xb6fc6e90: subs r2, r2, #0x20
0xb6fc6e94:


Platform: ARM
Code:0x0d 0x02 0x00 0xf4
Disasm:
0xb6fc6e94: vst1.8 {d0, d1, d2, d3}, [r0]!
0xb6fc6e98:


Platform: ARM
Code:0xfc 0xff 0xff 0x2a
Disasm:
0xb6fc6e98: bhs #b6fc6e90
0xb6fc6e9c:


Platform: ARM
Code:0x60 0x00 0xbd 0xe8 0x50 0x21 0x20 0xf2 0x20 0x20 0x52 0xe2 0x0d 0x02 0x00 0xf4 0x00 0xf0 0x20 0xe3 0x0c 0xd0 0x4d 0xe2 0x0f 0x00 0x2d 0xe9 0x1c 0x30 0x8d 0xe2 0x9c 0x0e 0x06 0x33 0xfc 0x06 0x4b 0x33 0x90 0x0e 0x06 0x23 0xfc 0x06 0x4b 0x23 0x11 0x10 0x00 0xe3 0x00 0x10 0x40 0xe3 0xb1 0xfb 0xff 0xea 0x00 0x00 0x00 0x00
Disasm:
0xb5609100: pop {r5, r6}
0xb5609104: vorr q1, q0, q0
0xb5609108: subs r2, r2, #0x20
0xb560910c: vst1.8 {d0, d1, d2, d3}, [r0]!
0xb5609110: nop
0xb5609114: sub sp, sp, #0xc
0xb5609118: push {r0, r1, r2, r3}
0xb560911c: add r3, sp, #0x1c
0xb5609120: movwlo r0, #0x6e9c
0xb5609124: movtlo r0, #0xb6fc
0xb5609128: movwhs r0, #0x6e90
0xb560912c: movths r0, #0xb6fc
0xb5609130: movw r1, #0x11
0xb5609134: movt r1, #0
0xb5609138: b #b5608004
0xb560913c: andeq r0, r0, r0
0xb5609140:

[dispatcher] addr: 0x9b61 target:b6fc6e90 source_index:11 next_addr:0xbe84f4b4
[dispatcher] 1:b5609104 2:b6fc6e90 3:be84f520[scan] scan(0xb6fc6e90): 0xb5609200 (bb 18)
[scan] ++++++++++++++++++++++++++++++++++
[scan_arm] :


Platform: ARM
Code:0x20 0x20 0x52 0xe2
Disasm:
0xb6fc6e90: subs r2, r2, #0x20
0xb6fc6e94:


Platform: ARM
Code:0x0d 0x02 0x00 0xf4
Disasm:
0xb6fc6e94: vst1.8 {d0, d1, d2, d3}, [r0]!
0xb6fc6e98:


Platform: ARM
Code:0xfc 0xff 0xff 0x2a
Disasm:
0xb6fc6e98: bhs #b6fc6e90
0xb6fc6e9c:


Platform: ARM
Code:0x60 0x00 0xbd 0xe8 0x20 0x20 0x52 0xe2 0x0d 0x02 0x00 0xf4 0x00 0xf0 0x20 0xe3 0x0c 0xd0 0x4d 0xe2 0x0f 0x00 0x2d 0xe9 0x1c 0x30 0x8d 0xe2 0x9c 0x0e 0x06 0x33 0xfc 0x06 0x4b 0x33 0x90 0x0e 0x06 0x23 0xfc 0x06 0x4b 0x23 0x12 0x10 0x00 0xe3 0x00 0x10 0x40 0xe3 0x72 0xfb 0xff 0xea 0x00 0x00 0x00 0x00
Disasm:
0xb5609200: pop {r5, r6}
0xb5609204: subs r2, r2, #0x20
0xb5609208: vst1.8 {d0, d1, d2, d3}, [r0]!
0xb560920c: nop
0xb5609210: sub sp, sp, #0xc
0xb5609214: push {r0, r1, r2, r3}
0xb5609218: add r3, sp, #0x1c
0xb560921c: movwlo r0, #0x6e9c
0xb5609220: movtlo r0, #0xb6fc
0xb5609224: movwhs r0, #0x6e90
0xb5609228: movths r0, #0xb6fc
0xb560922c: movw r1, #0x12
0xb5609230: movt r1, #0
0xb5609234: b #b5608004
0xb5609238: andeq r0, r0, r0
0xb560923c:

[dispatcher] addr: 0x9b61 target:b6fc6e90 source_index:12 next_addr:0xbe84f4b4
[dispatcher] 1:b5609204 2:b6fc6e90 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc6e90 source_index:12 next_addr:0xbe84f4b4
[dispatcher] 1:b5609204 2:b6fc6e90 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc6e90 source_index:12 next_addr:0xbe84f4b4
[dispatcher] 1:b5609204 2:b6fc6e90 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc6e90 source_index:12 next_addr:0xbe84f4b4
[dispatcher] 1:b5609204 2:b6fc6e90 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc6e90 source_index:12 next_addr:0xbe84f4b4
[dispatcher] 1:b5609204 2:b6fc6e90 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc6e90 source_index:12 next_addr:0xbe84f4b4
[dispatcher] 1:b5609204 2:b6fc6e90 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc6e90 source_index:12 next_addr:0xbe84f4b4
[dispatcher] 1:b5609204 2:b6fc6e90 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc6e90 source_index:12 next_addr:0xbe84f4b4
[dispatcher] 1:b5609204 2:b6fc6e90 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc6e9c source_index:12 next_addr:0xbe84f4b4
[dispatcher] 1:b5609204 2:b6fc6e9c 3:be84f520[scan] scan(0xb6fc6e9c): 0xb5609300 (bb 19)
[scan] ++++++++++++++++++++++++++++++++++
[scan_arm] :


Platform: ARM
Code:0x20 0x20 0x82 0xe2
Disasm:
0xb6fc6e9c: add r2, r2, #0x20
0xb6fc6ea0:


Platform: ARM
Code:0x10 0x00 0x12 0xe3
Disasm:
0xb6fc6ea0: tst r2, #0x10
0xb6fc6ea4:


Platform: ARM
Code:0x00 0x00 0x00 0x0a
Disasm:
0xb6fc6ea4: beq #b6fc6eac
0xb6fc6ea8:


Platform: ARM
Code:0x60 0x00 0xbd 0xe8 0x20 0x20 0x82 0xe2 0x10 0x00 0x12 0xe3 0x00 0xf0 0x20 0xe3 0x0c 0xd0 0x4d 0xe2 0x0f 0x00 0x2d 0xe9 0x1c 0x30 0x8d 0xe2 0xa8 0x0e 0x06 0x13 0xfc 0x06 0x4b 0x13 0xac 0x0e 0x06 0x03 0xfc 0x06 0x4b 0x03 0x13 0x10 0x00 0xe3 0x00 0x10 0x40 0xe3 0x32 0xfb 0xff 0xea 0x00 0x00 0x00 0x00
Disasm:
0xb5609300: pop {r5, r6}
0xb5609304: add r2, r2, #0x20
0xb5609308: tst r2, #0x10
0xb560930c: nop
0xb5609310: sub sp, sp, #0xc
0xb5609314: push {r0, r1, r2, r3}
0xb5609318: add r3, sp, #0x1c
0xb560931c: movwne r0, #0x6ea8
0xb5609320: movtne r0, #0xb6fc
0xb5609324: movweq r0, #0x6eac
0xb5609328: movteq r0, #0xb6fc
0xb560932c: movw r1, #0x13
0xb5609330: movt r1, #0
0xb5609334: b #b5608004
0xb5609338: andeq r0, r0, r0
0xb560933c:

[dispatcher] addr: 0x9b61 target:b6fc6ea8 source_index:13 next_addr:0xbe84f4b4
[dispatcher] 1:b5609304 2:b6fc6ea8 3:be84f520[scan] scan(0xb6fc6ea8): 0xb5609400 (bb 20)
[scan] ++++++++++++++++++++++++++++++++++
[scan_arm] :


Platform: ARM
Code:0x0d 0x0a 0x00 0xf4
Disasm:
0xb6fc6ea8: vst1.8 {d0, d1}, [r0]!
0xb6fc6eac:


Platform: ARM
Code:0x82 0xce 0xb0 0xe1
Disasm:
0xb6fc6eac: lsls ip, r2, #0x1d
0xb6fc6eb0:


Platform: ARM
Code:0x00 0x00 0x00 0x3a
Disasm:
0xb6fc6eb0: blo #b6fc6eb8
0xb6fc6eb4:


Platform: ARM
Code:0x60 0x00 0xbd 0xe8 0x0d 0x0a 0x00 0xf4 0x82 0xce 0xb0 0xe1 0x00 0xf0 0x20 0xe3 0x0c 0xd0 0x4d 0xe2 0x0f 0x00 0x2d 0xe9 0x1c 0x30 0x8d 0xe2 0xb4 0x0e 0x06 0x23 0xfc 0x06 0x4b 0x23 0xb8 0x0e 0x06 0x33 0xfc 0x06 0x4b 0x33 0x14 0x10 0x00 0xe3 0x00 0x10 0x40 0xe3 0xf2 0xfa 0xff 0xea 0x00 0x00 0x00 0x00
Disasm:
0xb5609400: pop {r5, r6}
0xb5609404: vst1.8 {d0, d1}, [r0]!
0xb5609408: lsls ip, r2, #0x1d
0xb560940c: nop
0xb5609410: sub sp, sp, #0xc
0xb5609414: push {r0, r1, r2, r3}
0xb5609418: add r3, sp, #0x1c
0xb560941c: movwhs r0, #0x6eb4
0xb5609420: movths r0, #0xb6fc
0xb5609424: movwlo r0, #0x6eb8
0xb5609428: movtlo r0, #0xb6fc
0xb560942c: movw r1, #0x14
0xb5609430: movt r1, #0
0xb5609434: b #b5608004
0xb5609438: andeq r0, r0, r0
0xb560943c:

[dispatcher] addr: 0x9b61 target:b6fc6eb8 source_index:14 next_addr:0xbe84f4b4
[dispatcher] 1:b5609404 2:b6fc6eb8 3:be84f520[scan] scan(0xb6fc6eb8): 0xb5609500 (bb 21)
[scan] ++++++++++++++++++++++++++++++++++
[scan_arm] :


Platform: ARM
Code:0x00 0x00 0x00 0xaa
Disasm:
0xb6fc6eb8: bge #b6fc6ec0
0xb6fc6ebc:


Platform: ARM
Code:0x60 0x00 0xbd 0xe8 0x00 0xf0 0x20 0xe3 0x0c 0xd0 0x4d 0xe2 0x0f 0x00 0x2d 0xe9 0x1c 0x30 0x8d 0xe2 0xbc 0x0e 0x06 0xb3 0xfc 0x06 0x4b 0xb3 0xc0 0x0e 0x06 0xa3 0xfc 0x06 0x4b 0xa3 0x15 0x10 0x00 0xe3 0x00 0x10 0x40 0xe3 0xb4 0xfa 0xff 0xea 0x00 0x00 0x00 0x00
Disasm:
0xb5609500: pop {r5, r6}
0xb5609504: nop
0xb5609508: sub sp, sp, #0xc
0xb560950c: push {r0, r1, r2, r3}
0xb5609510: add r3, sp, #0x1c
0xb5609514: movwlt r0, #0x6ebc
0xb5609518: movtlt r0, #0xb6fc
0xb560951c: movwge r0, #0x6ec0
0xb5609520: movtge r0, #0xb6fc
0xb5609524: movw r1, #0x15
0xb5609528: movt r1, #0
0xb560952c: b #b5608004
0xb5609530: andeq r0, r0, r0
0xb5609534:

[dispatcher] addr: 0x9b61 target:b6fc6ec0 source_index:15 next_addr:0xbe84f4b4
[dispatcher] 1:b5609504 2:b6fc6ec0 3:be84f520[scan] scan(0xb6fc6ec0): 0xb5609600 (bb 22)
[scan] ++++++++++++++++++++++++++++++++++
[scan_arm] :


Platform: ARM
Code:0x82 0xcf 0xb0 0xe1
Disasm:
0xb6fc6ec0: lsls ip, r2, #0x1f
0xb6fc6ec4:


Platform: ARM
Code:0x01 0x10 0xc0 0x44
Disasm:
0xb6fc6ec4: strbmi r1, [r0], #1
0xb6fc6ec8:


Platform: ARM
Code:0x01 0x10 0xc0 0x24
Disasm:
0xb6fc6ec8: strbhs r1, [r0], #1
0xb6fc6ecc:


Platform: ARM
Code:0x01 0x10 0xc0 0x24
Disasm:
0xb6fc6ecc: strbhs r1, [r0], #1
0xb6fc6ed0:


Platform: ARM
Code:0x01 0x00 0xbd 0xe8
Disasm:
0xb6fc6ed0: ldm sp!, {r0}
0xb6fc6ed4:


Platform: ARM
Code:0x1e 0xff 0x2f 0xe1
Disasm:
0xb6fc6ed4: bx lr
0xb6fc6ed8:


Platform: ARM
Code:0x60 0x00 0xbd 0xe8 0x82 0xcf 0xb0 0xe1 0x01 0x10 0xc0 0x44 0x01 0x10 0xc0 0x24 0x01 0x10 0xc0 0x24 0x01 0x00 0xbd 0xe8 0x0c 0xd0 0x4d 0xe2 0x0f 0x00 0x2d 0xe9 0x0e 0x00 0xa0 0xe1 0x18 0x30 0x8d 0xe2 0x16 0x10 0x00 0xe3 0x00 0x10 0x40 0xe3 0x73 0xfa 0xff 0xea 0x00 0x00 0x00 0x00
Disasm:
0xb5609600: pop {r5, r6}
0xb5609604: lsls ip, r2, #0x1f
0xb5609608: strbmi r1, [r0], #1
0xb560960c: strbhs r1, [r0], #1
0xb5609610: strbhs r1, [r0], #1
0xb5609614: ldm sp!, {r0}
0xb5609618: sub sp, sp, #0xc
0xb560961c: push {r0, r1, r2, r3}
0xb5609620: mov r0, lr
0xb5609624: add r3, sp, #0x18
0xb5609628: movw r1, #0x16
0xb560962c: movt r1, #0
0xb5609630: b #b5608004
0xb5609634: andeq r0, r0, r0
0xb5609638:

[dispatcher] addr: 0x9b61 target:b6fc33d5 source_index:16 next_addr:0xbe84f4b4
[dispatcher] 1:b5609604 2:b6fc33d5 3:be84f520[scan] scan(0xb6fc33d5): 0xb5609700 (bb 23)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x20 0x46
Disasm:
0xb6fc33d4: mov r0, r4
0xb6fc33d6:


Platform: Thumb-mixed
Code:0x39 0x46
Disasm:
0xb6fc33d6: mov r1, r7
0xb6fc33d8:


Platform: Thumb-mixed
Code:0x80 0x22
Disasm:
0xb6fc33d8: movs r2, #0x80
0xb6fc33da:


Platform: Thumb-mixed
Code:0x05 0xf0
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x60 0xbc 0x20 0x46 0x39 0x46 0x80 0x22 0x43 0xf2 0xdf 0x3e 0xcb 0xf2 0xfc 0x6e 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x17 0x01 0xc0 0xf2 0x00 0x01 0x49 0xf2 0x6b 0x20 0xcb 0xf2 0xfc 0x60 0xfe 0xf7 0x6a 0xbc 0x00 0x00 0x00 0x00
Disasm:
0xb5609700: pop {r5, r6}
0xb5609702: mov r0, r4
0xb5609704: mov r1, r7
0xb5609706: movs r2, #0x80
0xb5609708: movw lr, #0x33df
0xb560970c: movt lr, #0xb6fc
0xb5609710: sub sp, #0xc
0xb5609712: push {r0, r1, r2, r3}
0xb5609714: add.w r3, sp, #0x1c
0xb5609718: movw r1, #0x17
0xb560971c: movt r1, #0
0xb5609720: movw r0, #0x926b
0xb5609724: movt r0, #0xb6fc
0xb5609728: b.w #b5608000
0xb560972c: movs r0, r0
0xb560972e: movs r0, r0
0xb5609730:

[dispatcher] addr: 0x9b61 target:b6fc926b source_index:17 next_addr:0xbe84f4b4
[dispatcher] 1:b5609703 2:b6fc926b 3:be84f520[scan] scan(0xb6fc926b): 0xb5609800 (bb 24)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x10 0xb5
Disasm:
0xb6fc926a: push {r4, lr}
0xb6fc926c:


Platform: Thumb-mixed
Code:0x62 0xb1
Disasm:
0xb6fc926c: cbz r2, #b6fc9288
0xb6fc926e:


Platform: Thumb-mixed
Code:0x60 0xbc 0x10 0xb5 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x5a 0xb1 0x40 0xf2 0x18 0x01 0xc0 0xf2 0x00 0x01 0x49 0xf2 0x6f 0x20 0xcb 0xf2 0xfc 0x60 0x0d 0xf1 0x1c 0x03 0xfe 0xf7 0xec 0xbb 0x40 0xf2 0x18 0x01 0xc0 0xf2 0x00 0x01 0x49 0xf2 0x89 0x20 0xcb 0xf2 0xfc 0x60 0x0d 0xf1 0x1c 0x03 0xfe 0xf7 0xe0 0xbb 0x00 0x00 0x00 0x00
Disasm:
0xb5609800: pop {r5, r6}
0xb5609802: push {r4, lr}
0xb5609804: nop
0xb5609806: nop
0xb5609808: nop
0xb560980a: sub sp, #0xc
0xb560980c: push {r0, r1, r2, r3}
0xb560980e: cbz r2, #b5609828
0xb5609810: movw r1, #0x18
0xb5609814: movt r1, #0
0xb5609818: movw r0, #0x926f
0xb560981c: movt r0, #0xb6fc
0xb5609820: add.w r3, sp, #0x1c
0xb5609824: b.w #b5608000
0xb5609828: movw r1, #0x18
0xb560982c: movt r1, #0
0xb5609830: movw r0, #0x9289
0xb5609834: movt r0, #0xb6fc
0xb5609838: add.w r3, sp, #0x1c
0xb560983c: b.w #b5608000
0xb5609840: movs r0, r0
0xb5609842: movs r0, r0
0xb5609844:

[dispatcher] addr: 0x9b61 target:b6fc926f source_index:18 next_addr:0xbe84f4ac
[dispatcher] 1:be84f740 2:b6fc926f 3:be84f520[scan] scan(0xb6fc926f): 0xb5609900 (bb 25)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x02 0xf1
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x0b 0x46
Disasm:
0xb6fc9272: mov r3, r1
0xb6fc9274:


Platform: Thumb-mixed
Code:0x84 0x44
Disasm:
0xb6fc9274: add ip, r0
0xb6fc9276:


Platform: Thumb-mixed
Code:0x60 0x45
Disasm:
0xb6fc9276: cmp r0, ip
0xb6fc9278:


Platform: Thumb-mixed
Code:0x0e 0xd0
Disasm:
0xb6fc9278: beq #b6fc9298
0xb6fc927a:


Platform: Thumb-mixed
Code:0x60 0xbc 0x02 0xf1 0xff 0x3c 0x0b 0x46 0x84 0x44 0x60 0x45 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x19 0x01 0xc0 0xf2 0x00 0x01 0x05 0xd0 0x49 0xf2 0x7b 0x20 0xcb 0xf2 0xfc 0x60 0xfe 0xf7 0x68 0xbb 0x49 0xf2 0x99 0x20 0xcb 0xf2 0xfc 0x60 0xfe 0xf7 0x62 0xbb 0x00 0x00 0x00 0x00
Disasm:
0xb5609900: pop {r5, r6}
0xb5609902: add.w ip, r2, #-1
0xb5609906: mov r3, r1
0xb5609908: add ip, r0
0xb560990a: cmp r0, ip
0xb560990c: nop
0xb560990e: nop
0xb5609910: nop
0xb5609912: sub sp, #0xc
0xb5609914: push {r0, r1, r2, r3}
0xb5609916: add.w r3, sp, #0x1c
0xb560991a: movw r1, #0x19
0xb560991e: movt r1, #0
0xb5609922: beq #b5609930
0xb5609924: movw r0, #0x927b
0xb5609928: movt r0, #0xb6fc
0xb560992c: b.w #b5608000
0xb5609930: movw r0, #0x9299
0xb5609934: movt r0, #0xb6fc
0xb5609938: b.w #b5608000
0xb560993c: movs r0, r0
0xb560993e: movs r0, r0
0xb5609940:

[dispatcher] addr: 0x9b61 target:b6fc927b source_index:19 next_addr:0xbe84f4ac
[dispatcher] 1:b5609903 2:b6fc927b 3:be84f520[scan] scan(0xb6fc927b): 0xb5609a00 (bb 26)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x13 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x00 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x00 0x2c
Disasm:
0xb6fc9282: cmp r4, #0
0xb6fc9284:


Platform: Thumb-mixed
Code:0xf7 0xd1
Disasm:
0xb6fc9284: bne #b6fc9276
0xb6fc9286:


Platform: Thumb-mixed
Code:0x60 0xbc 0x13 0xf8 0x01 0x4b 0x00 0xf8 0x01 0x4b 0x00 0x2c 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x1a 0x01 0xc0 0xf2 0x00 0x01 0x05 0xd1 0x49 0xf2 0x87 0x20 0xcb 0xf2 0xfc 0x60 0xfe 0xf7 0xe8 0xba 0x49 0xf2 0x77 0x20 0xcb 0xf2 0xfc 0x60 0xfe 0xf7 0xe2 0xba 0x00 0x00 0x00 0x00
Disasm:
0xb5609a00: pop {r5, r6}
0xb5609a02: ldrb r4, [r3], #1
0xb5609a06: strb r4, [r0], #1
0xb5609a0a: cmp r4, #0
0xb5609a0c: nop
0xb5609a0e: nop
0xb5609a10: nop
0xb5609a12: sub sp, #0xc
0xb5609a14: push {r0, r1, r2, r3}
0xb5609a16: add.w r3, sp, #0x1c
0xb5609a1a: movw r1, #0x1a
0xb5609a1e: movt r1, #0
0xb5609a22: bne #b5609a30
0xb5609a24: movw r0, #0x9287
0xb5609a28: movt r0, #0xb6fc
0xb5609a2c: b.w #b5608000
0xb5609a30: movw r0, #0x9277
0xb5609a34: movt r0, #0xb6fc
0xb5609a38: b.w #b5608000
0xb5609a3c: movs r0, r0
0xb5609a3e: movs r0, r0
0xb5609a40:

[dispatcher] addr: 0x9b61 target:b6fc9277 source_index:1a next_addr:0xbe84f4ac
[dispatcher] 1:b5609a03 2:b6fc9277 3:be84f520[scan] scan(0xb6fc9277): 0xb5609b00 (bb 27)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x60 0x45
Disasm:
0xb6fc9276: cmp r0, ip
0xb6fc9278:


Platform: Thumb-mixed
Code:0x0e 0xd0
Disasm:
0xb6fc9278: beq #b6fc9298
0xb6fc927a:


Platform: Thumb-mixed
Code:0x60 0xbc 0x60 0x45 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x1b 0x01 0xc0 0xf2 0x00 0x01 0x05 0xd0 0x49 0xf2 0x7b 0x20 0xcb 0xf2 0xfc 0x60 0xfe 0xf7 0x6c 0xba 0x49 0xf2 0x99 0x20 0xcb 0xf2 0xfc 0x60 0xfe 0xf7 0x66 0xba 0x00 0x00 0x00 0x00
Disasm:
0xb5609b00: pop {r5, r6}
0xb5609b02: cmp r0, ip
0xb5609b04: nop
0xb5609b06: nop
0xb5609b08: nop
0xb5609b0a: sub sp, #0xc
0xb5609b0c: push {r0, r1, r2, r3}
0xb5609b0e: add.w r3, sp, #0x1c
0xb5609b12: movw r1, #0x1b
0xb5609b16: movt r1, #0
0xb5609b1a: beq #b5609b28
0xb5609b1c: movw r0, #0x927b
0xb5609b20: movt r0, #0xb6fc
0xb5609b24: b.w #b5608000
0xb5609b28: movw r0, #0x9299
0xb5609b2c: movt r0, #0xb6fc
0xb5609b30: b.w #b5608000
0xb5609b34: movs r0, r0
0xb5609b36: movs r0, r0
0xb5609b38:

[dispatcher] addr: 0x9b61 target:b6fc927b source_index:1b next_addr:0xbe84f4ac
[dispatcher] 1:b5609b03 2:b6fc927b 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc9277 source_index:1a next_addr:0xbe84f4ac
[dispatcher] 1:b5609a03 2:b6fc9277 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc927b source_index:1b next_addr:0xbe84f4ac
[dispatcher] 1:b5609b03 2:b6fc927b 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc9277 source_index:1a next_addr:0xbe84f4ac
[dispatcher] 1:b5609a03 2:b6fc9277 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc927b source_index:1b next_addr:0xbe84f4ac
[dispatcher] 1:b5609b03 2:b6fc927b 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc9277 source_index:1a next_addr:0xbe84f4ac
[dispatcher] 1:b5609a03 2:b6fc9277 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc927b source_index:1b next_addr:0xbe84f4ac
[dispatcher] 1:b5609b03 2:b6fc927b 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc9277 source_index:1a next_addr:0xbe84f4ac
[dispatcher] 1:b5609a03 2:b6fc9277 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc927b source_index:1b next_addr:0xbe84f4ac
[dispatcher] 1:b5609b03 2:b6fc927b 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc9277 source_index:1a next_addr:0xbe84f4ac
[dispatcher] 1:b5609a03 2:b6fc9277 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc927b source_index:1b next_addr:0xbe84f4ac
[dispatcher] 1:b5609b03 2:b6fc927b 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc9277 source_index:1a next_addr:0xbe84f4ac
[dispatcher] 1:b5609a03 2:b6fc9277 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc927b source_index:1b next_addr:0xbe84f4ac
[dispatcher] 1:b5609b03 2:b6fc927b 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc9277 source_index:1a next_addr:0xbe84f4ac
[dispatcher] 1:b5609a03 2:b6fc9277 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc927b source_index:1b next_addr:0xbe84f4ac
[dispatcher] 1:b5609b03 2:b6fc927b 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc9277 source_index:1a next_addr:0xbe84f4ac
[dispatcher] 1:b5609a03 2:b6fc9277 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc927b source_index:1b next_addr:0xbe84f4ac
[dispatcher] 1:b5609b03 2:b6fc927b 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc9277 source_index:1a next_addr:0xbe84f4ac
[dispatcher] 1:b5609a03 2:b6fc9277 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc927b source_index:1b next_addr:0xbe84f4ac
[dispatcher] 1:b5609b03 2:b6fc927b 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc9277 source_index:1a next_addr:0xbe84f4ac
[dispatcher] 1:b5609a03 2:b6fc9277 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc927b source_index:1b next_addr:0xbe84f4ac
[dispatcher] 1:b5609b03 2:b6fc927b 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc9277 source_index:1a next_addr:0xbe84f4ac
[dispatcher] 1:b5609a03 2:b6fc9277 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc927b source_index:1b next_addr:0xbe84f4ac
[dispatcher] 1:b5609b03 2:b6fc927b 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc9277 source_index:1a next_addr:0xbe84f4ac
[dispatcher] 1:b5609a03 2:b6fc9277 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc927b source_index:1b next_addr:0xbe84f4ac
[dispatcher] 1:b5609b03 2:b6fc927b 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc9277 source_index:1a next_addr:0xbe84f4ac
[dispatcher] 1:b5609a03 2:b6fc9277 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc927b source_index:1b next_addr:0xbe84f4ac
[dispatcher] 1:b5609b03 2:b6fc927b 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc9277 source_index:1a next_addr:0xbe84f4ac
[dispatcher] 1:b5609a03 2:b6fc9277 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc927b source_index:1b next_addr:0xbe84f4ac
[dispatcher] 1:b5609b03 2:b6fc927b 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc9277 source_index:1a next_addr:0xbe84f4ac
[dispatcher] 1:b5609a03 2:b6fc9277 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc927b source_index:1b next_addr:0xbe84f4ac
[dispatcher] 1:b5609b03 2:b6fc927b 3:be84f520[dispatcher] addr: 0x9b61 target:b6fc9287 source_index:1a next_addr:0xbe84f4ac
[dispatcher] 1:b5609a03 2:b6fc9287 3:be84f520[scan] scan(0xb6fc9287): 0xb5609c00 (bb 28)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x04 0xe0
Disasm:
0xb6fc9286: b #b6fc9292
0xb6fc9288:


Platform: Thumb-mixed
Code:0x60 0xbc 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x40 0xf2 0x1c 0x01 0xc0 0xf2 0x00 0x01 0x49 0xf2 0x93 0x20 0xcb 0xf2 0xfc 0x60 0xfe 0xf7 0xf1 0xb9 0x00 0x00 0x00 0x00
Disasm:
0xb5609c00: pop {r5, r6}
0xb5609c02: sub sp, #0xc
0xb5609c04: push {r0, r1, r2, r3}
0xb5609c06: add.w r3, sp, #0x1c
0xb5609c0a: movw r1, #0x1c
0xb5609c0e: movt r1, #0
0xb5609c12: movw r0, #0x9293
0xb5609c16: movt r0, #0xb6fc
0xb5609c1a: b.w #b5608000
0xb5609c1e: movs r0, r0
0xb5609c20: movs r0, r0
0xb5609c22:

[dispatcher] addr: 0x9b61 target:b6fc9293 source_index:1c next_addr:0xbe84f4ac
[dispatcher] 1:b5609c03 2:b6fc9293 3:be84f520[scan] scan(0xb6fc9293): 0xb5609d00 (bb 29)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x59 0x1a
Disasm:
0xb6fc9292: subs r1, r3, r1
0xb6fc9294:


Platform: Thumb-mixed
Code:0x48 0x1e
Disasm:
0xb6fc9294: subs r0, r1, #1
0xb6fc9296:


Platform: Thumb-mixed
Code:0x10 0xbd
Disasm:
0xb6fc9296: pop {r4, pc}
0xb6fc9298:


Platform: Thumb-mixed
Code:0x60 0xbc 0x59 0x1a 0x48 0x1e 0x10 0xbc 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x53 0xf8 0x04 0x0b 0x40 0xf2 0x1d 0x01 0xc0 0xf2 0x00 0x01 0xfe 0xf7 0x70 0xb9 0x00 0x00 0x00 0x00
Disasm:
0xb5609d00: pop {r5, r6}
0xb5609d02: subs r1, r3, r1
0xb5609d04: subs r0, r1, #1
0xb5609d06: pop {r4}
0xb5609d08: sub sp, #0xc
0xb5609d0a: push {r0, r1, r2, r3}
0xb5609d0c: add.w r3, sp, #0x1c
0xb5609d10: ldr r0, [r3], #4
0xb5609d14: movw r1, #0x1d
0xb5609d18: movt r1, #0
0xb5609d1c: b.w #b5608000
0xb5609d20: movs r0, r0
0xb5609d22: movs r0, r0
0xb5609d24:

[dispatcher] addr: 0x9b61 target:b6fc33df source_index:1d next_addr:0xbe84f4b4
[dispatcher] 1:be84f520 2:b6fc33df 3:be84f520[scan] scan(0xb6fc33df): 0xb5609e00 (bb 30)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x4f 0xf0
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xc4 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0xc4 0xf8
ERROR: Failed to disasm given code!


Platform: Thumb-mixed
Code:0x4e 0xb1
Disasm:
0xb6fc33ea: cbz r6, #b6fc3400
0xb6fc33ec:


Platform: Thumb-mixed
Code:0x60 0xbc 0x4f 0xf0 0x80 0x43 0xc4 0xf8 0x24 0x51 0xc4 0xf8 0xa8 0x30 0x00 0xbf 0x00 0xbf 0x00 0xbf 0x83 0xb0 0x0f 0xb4 0x5e 0xb1 0x40 0xf2 0x1e 0x01 0xc0 0xf2 0x00 0x01 0x43 0xf2 0xed 0x30 0xcb 0xf2 0xfc 0x60 0x0d 0xf1 0x1c 0x03 0xfe 0xf7 0xe7 0xb8 0x40 0xf2 0x1e 0x01 0xc0 0xf2 0x00 0x01 0x43 0xf2 0x01 0x40 0xcb 0xf2 0xfc 0x60 0x0d 0xf1 0x1c 0x03 0xfe 0xf7 0xdb 0xb8 0x00 0x00 0x00 0x00
Disasm:
0xb5609e00: pop {r5, r6}
0xb5609e02: mov.w r3, #0x40000000
0xb5609e06: str.w r5, [r4, #0x124]
0xb5609e0a: str.w r3, [r4, #0xa8]
0xb5609e0e: nop
0xb5609e10: nop
0xb5609e12: nop
0xb5609e14: sub sp, #0xc
0xb5609e16: push {r0, r1, r2, r3}
0xb5609e18: cbz r6, #b5609e32
0xb5609e1a: movw r1, #0x1e
0xb5609e1e: movt r1, #0
0xb5609e22: movw r0, #0x33ed
0xb5609e26: movt r0, #0xb6fc
0xb5609e2a: add.w r3, sp, #0x1c
0xb5609e2e: b.w #b5608000
0xb5609e32: movw r1, #0x1e
0xb5609e36: movt r1, #0
0xb5609e3a: movw r0, #0x3401
0xb5609e3e: movt r0, #0xb6fc
0xb5609e42: add.w r3, sp, #0x1c
0xb5609e46: b.w #b5608000
0xb5609e4a: movs r0, r0
0xb5609e4c: movs r0, r0
0xb5609e4e:

[dispatcher] addr: 0x9b61 target:b6fc3401 source_index:1e next_addr:0xbe84f4b4
[dispatcher] 1:b5609e03 2:b6fc3401 3:be84f520[scan] scan(0xb6fc3401): 0xb5609f00 (bb 31)
[scan] ++++++++++++++++++++++++++++++++++
[scan_thumb] :


Platform: Thumb-mixed
Code:0x20 0x46
Disasm:
0xb6fc3400: mov r0, r4
0xb6fc3402:


Platform: Thumb-mixed
Code:0xf8 0xbd
Disasm:
0xb6fc3402: pop {r3, r4, r5, r6, r7, pc}
0xb6fc3404:


Platform: Thumb-mixed
Code:0x60 0xbc 0x20 0x46 0xf8 0xbc 0x83 0xb0 0x0f 0xb4 0x0d 0xf1 0x1c 0x03 0x53 0xf8 0x04 0x0b 0x40 0xf2 0x1f 0x01 0xc0 0xf2 0x00 0x01 0xfe 0xf7 0x71 0xb8 0x00 0x00 0x00 0x00
Disasm:
0xb5609f00: pop {r5, r6}
0xb5609f02: mov r0, r4
0xb5609f04: pop {r3, r4, r5, r6, r7}
0xb5609f06: sub sp, #0xc
0xb5609f08: push {r0, r1, r2, r3}
0xb5609f0a: add.w r3, sp, #0x1c
0xb5609f0e: ldr r0, [r3], #4
0xb5609f12: movw r1, #0x1f
0xb5609f16: movt r1, #0
0xb5609f1a: b.w #b5608000
0xb5609f1e: movs r0, r0
0xb5609f20: movs r0, r0
0xb5609f22:

[dispatcher] addr: 0x9b61 target:be84f4e8 source_index:1f next_addr:0xbe84f4cc
[dispatcher] 1:b6fd0fe8 2:be84f4e8 3:b6fc5529[scan] scan(0xbe84f4e8): 0xb560a000 (bb 32)

/**********************************
erro scaner addr be84f4e8 ,should be .text:00003528 scaner code.
**************************************/

[scan] ++++++++++++++++++++++++++++++++++
[scan_arm] :


Platform: ARM
Code:0x76 0x83 0x60 0xb5
Disasm:
0xbe84f4e8: strblt r8, [r0, #-0x376]!
0xbe84f4ec:


Platform: ARM
Code:0x00 0x00 0x00 0x00
Disasm:
0xbe84f4ec: andeq r0, r0, r0
0xbe84f4f0:


Platform: ARM
Code:0xf4 0xdf 0x1e 0x00
Disasm:
0xbe84f4f0: ldrsheq sp, [lr], -r4
0xbe84f4f4:


Platform: ARM
Code:0x01 0x4f 0x15 0x00
Disasm:
0xbe84f4f4: andseq r4, r5, r1, lsl #1e
0xbe84f4f8:


Platform: ARM
Code:0x0c 0x00 0x00 0x00
Disasm:
0xbe84f4f8: andeq r0, r0, ip
0xbe84f4fc:


Platform: ARM
Code:0xe0 0xb6 0x1e 0x00
Disasm:
0xbe84f4fc: andseq fp, lr, r0, ror #d
0xbe84f500:


Platform: ARM
Code:0x10 0x00 0x00 0x00
Disasm:
0xbe84f500: andeq r0, r0, r0, lsl r0
0xbe84f504:


Platform: ARM
Code:0x02 0x00 0x04 0x00
Disasm:
0xbe84f504: andeq r0, r4, r2
0xbe84f508:


Platform: ARM
Code:0x00 0x00 0x00 0x00
Disasm:
0xbe84f508: andeq r0, r0, r0
0xbe84f50c:


Platform: ARM
Code:0x01 0x00 0x00 0x00
Disasm:
0xbe84f50c: andeq r0, r0, r1
0xbe84f510:


Platform: ARM
Code:0x9c 0xf6 0x84 0xbe
Disasm:
0xbe84f510: mcrlt p6, #4, pc, c4, c12, #4
0xbe84f514:

unknown coproc: 4 4 15 6 4 12

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.