[*] Binary protection state of gio
Partial RELRO No Canary found NX disabled No PIE No RPATH No RUNPATH No Symbols
[*] Function printf tear down of gio
andeq sp, r2, r4, ror 6
andeq r0, r0, r0
andeq ip, r1, ip, asr 25
ldr r3, [0x00014888]
cmp r3, 0
beq 0x14884
push {r4, lr}
ldr r1, [0x0001488c]
ldr r0, [0x00014890]
bl loc.imp.__register_frame_info
pop {r4, lr}
b 0x147e4
andeq r0, r0, r0
andeq sp, r2, r8, ror 6
andeq ip, r1, ip, asr 25
push {r0, r1, r2, r3}
push {r0, r1, r4, lr}
ldr r0, [sp, 0x10]
add r1, sp, 0x14
str r1, [sp, 4]
bl sym.imp.g_strdup_vprintf
mov r1, r0
mov r4, r0
--
sub r4, r0, 2
mov r0, r5
clz r4, r4
lsr r4, r4, 5
bl sym.imp.g_object_unref
mov r0, r4
add sp, sp, 0xc
pop {r4, r5, pc}
andeq ip, r1, r3, ror 21
push {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, 0x24
mov r5, 0
str r0, [sp, 0x14]
ldr r0, str.gio_cat
mov r6, r2
str r1, [sp, 0x10]
str r5, [sp, 0x18]
bl sym.imp.g_set_prgname
ldr r1, str.LOCATION
ldr r0, [0x00014e48]
bl sym.imp.g_strdup_printf
mov r7, r0
bl sym.imp.g_option_context_new
--
andeq r0, r3, pc, lsr sp
andeq r0, r0, r0
andseq r8, lr, pc, ror r4
andeq r0, r0, r0
andeq sp, r2, r0, lsl 7
andeq r4, pc, r0, asr 4
andeq sl, r1, ip, ror 23
strdeq sl, fp, [r1], -r1
push {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, 0x3c
mov r5, 0
str r0, [sp, 0x1c]
ldr r0, str.gio_copy
mov r8, r2
str r1, [sp, 0x18]
str r5, [sp, 0x24]
bl sym.imp.g_set_prgname
ldr r2, str.DESTINATION
ldr r1, str.SOURCE
ldr r0, str._s...__s
bl sym.imp.g_strdup_printf
mov r4, r0
bl sym.imp.g_option_context_new
--
cmp r3, 3
ble 0x150e4
mov r1, r8
mov r0, r6
bl 0x14908
mov r0, r7
bl sym.imp.g_object_unref
b 0x15070
mov r0, r7
bl 0x14b68
subs r3, r0, 0
str r3, [sp, 0x10]
bne 0x15134
ldr r3, [sp, 0x1c]
cmp r3, 3
ble 0x15134
ldr r2, [sp, 0x18]
sub r3, r3, 0xc0000001
ldr r1, [r2, r3, lsl 2]
ldr r0, str.Destination__s_is_not_a_directory
bl sym.imp.g_strdup_printf
mov r4, r0
mov r1, r0
--
strb r2, [r0, r3]
ldm r4, {r2, r3}
mov r1, 0
strb r1, [r2, r3]
mov r0, r4
pop {r4, pc}
mvn r1, 0
bl sym.imp.g_string_insert_c
b 0x15544
push {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, 0x2c
mov r5, 0
str r0, [sp, 0x1c]
ldr r0, str.gio_info
mov r6, r2
str r1, [sp, 0x18]
str r5, [sp, 0x20]
bl sym.imp.g_set_prgname
ldr r1, str.LOCATION
ldr r0, [0x00015ab4]
bl sym.imp.g_strdup_printf
mov r7, r0
bl sym.imp.g_option_context_new
--
andeq sl, r1, r0, asr 17
andeq ip, r1, pc, lsr ip
andeq fp, r1, sb, asr r2
andeq fp, r1, r5, ror 1
andeq ip, r1, r3, ror 21
ldrdeq fp, ip, [r1], -r5
andeq fp, r1, r8, ror 4
andeq ip, r1, sb, lsr ip
andeq fp, r1, sl, ror 4
push {r4, r5, r6, r7, lr}
sub sp, sp, 0x14
mov r5, 0
str r0, [sp, 4]
ldr r0, str.gio_list
mov r6, r2
str r1, [sp]
str r5, [sp, 0xc]
bl sym.imp.g_set_prgname
ldr r1, str.LOCATION
ldr r0, str.__s..._
bl sym.imp.g_strdup_printf
mov r7, r0
bl sym.imp.g_option_context_new
--
andeq fp, r1, r3, lsl 5
andeq fp, r1, r7, lsr 5
strdeq sl, fp, [r1], -r6
andeq fp, r1, r4, lsr 3
strheq sp, [r2], -r8
andeq fp, r1, r8, lsr 7
andeq fp, r1, r0, ror r2
andeq fp, r1, sb, ror 4
push {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, 0x14
mov r4, 0
str r0, [sp, 4]
ldr r0, str.gio_mime
mov r5, r2
str r1, [sp]
str r4, [sp, 0xc]
bl sym.imp.g_set_prgname
ldr r2, str.HANDLER
ldr r1, str.MIMETYPE
ldr r0, [0x000162ac]
bl sym.imp.g_strdup_printf
mov r7, r0
bl sym.imp.g_option_context_new
--
andeq fp, r1, r3, ror r5
muleq r1, sb, r5
strheq fp, [r1], -pc
strdeq fp, ip, [r1], -r5
ldrdeq fp, ip, [r1], -sb
strdeq fp, ip, [r1], -sl
andeq fp, r1, r5, lsl r6
andeq fp, r1, r2, lsr r6
andeq fp, r1, fp, asr r6
muleq r1, fp, r6
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
mov r6, 0
str r0, [sp, 4]
ldr r0, str.gio_mkdir
mov r5, r2
str r1, [sp]
str r6, [sp, 0xc]
bl sym.imp.g_set_prgname
ldr r1, str.LOCATION
ldr r0, [0x000164a4]
bl sym.imp.g_strdup_printf
mov r7, r0
bl sym.imp.g_option_context_new
--
andeq fp, r1, r1, asr 18
andeq fp, r1, r8, asr sb
andeq fp, r1, r8, ror 18
andeq fp, r1, r6, ror sb
andeq fp, r1, r3, lsl 19
andeq fp, r1, lr, lsl 19
muleq r1, ip, sb
andeq fp, r1, r6, lsl 18
andeq fp, r1, r5, lsr 19
push {r4, r5, r6, r7, lr}
sub sp, sp, 0x14
mov r4, 0
str r0, [sp, 4]
ldr r0, str.gio_monitor
mov r6, r2
str r1, [sp]
str r4, [sp, 0xc]
bl sym.imp.g_set_prgname
ldr r1, str.LOCATION
ldr r0, str.__s..._
bl sym.imp.g_strdup_printf
mov r7, r0
bl sym.imp.g_option_context_new
--
cmp r3, 0
str r3, [r2, 8]
bne 0x181dc
ldr r0, [r2]
bl sym.imp.g_main_loop_quit
add sp, sp, 8
pop {r4, r5, r6, pc}
andeq sp, r2, r8, asr r3
andeq sp, r2, ip, ror 7
push {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, 0x24
mov r5, 0
str r0, [sp, 0x14]
ldr r0, str.gio_mount
mov r6, r2
str r1, [sp, 0x10]
str r5, [sp, 0x18]
bl sym.imp.g_set_prgname
ldr r1, str.LOCATION
ldr r0, str.__s..._
bl sym.imp.g_strdup_printf
mov r7, r0
bl sym.imp.g_option_context_new
--
andeq r0, r3, pc, lsr sp
andeq r0, r0, r0
andseq r8, lr, pc, ror r4
andeq r0, r0, r0
andeq sp, r2, r0, lsr 8
andeq r4, pc, r0, asr 4
andeq sl, r1, ip, ror 23
strdeq sl, fp, [r1], -r1
push {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, 0x3c
mov r4, 0
str r0, [sp, 0x1c]
ldr r0, str.gio_move
mov r8, r2
str r1, [sp, 0x18]
str r4, [sp, 0x24]
bl sym.imp.g_set_prgname
ldr r2, str.DESTINATION
ldr r1, str.SOURCE
ldr r0, str._s...__s
bl sym.imp.g_strdup_printf
mov r5, r0
bl sym.imp.g_option_context_new
--
cmp r3, 3
ble 0x18a5c
mov r1, r8
mov r0, r6
bl 0x14908
mov r0, r7
bl sym.imp.g_object_unref
b 0x189e8
mov r0, r7
bl 0x14b68
subs r3, r0, 0
str r3, [sp, 0x10]
bne 0x18aac
ldr r3, [sp, 0x1c]
cmp r3, 3
ble 0x18aac
ldr r2, [sp, 0x18]
sub r3, r3, 0xc0000001
ldr r1, [r2, r3, lsl 2]
ldr r0, str.Target__s_is_not_a_directory
bl sym.imp.g_strdup_printf
mov r4, r0
mov r1, r0
--
andeq ip, r1, r1, lsr 8
strdeq sl, fp, [r1], -r6
andeq ip, r1, r4, asr 6
andeq sp, r2, r0, lsr 8
ldrdeq ip, sp, [r1], -r7
strdeq r8, sb, [r1], -r0
andeq sl, r1, r2, asr 26
andeq sp, r2, r0, ror 6
andeq sl, r1, r0, asr 17
push {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, 0x34
mov r5, 0
str r0, [sp, 0x24]
ldr r0, str.gio_open
mov r6, r2
str r1, [sp, 0x20]
str r5, [sp, 0x2c]
bl sym.imp.g_set_prgname
ldr r1, str.LOCATION
ldr r0, [0x000190d0]
bl sym.imp.g_strdup_printf
mov r7, r0
bl sym.imp.g_option_context_new
--
bl sym.imp.g_path_get_basename
ldr r1, str..desktop
mov fp, r0
bl sym.imp.g_str_has_suffix
subs r4, r0, 0
beq 0x190bc
mov r0, fp
bl sym.imp.strlen
mov r2, 0
add r0, fp, r0
strb r2, [r0, -8]
mov r0, fp
bl sym.imp.g_dbus_is_name
subs r4, r0, 0
beq 0x190bc
mov r0, fp
bl sym.imp.g_strdup
mov r1, r0
mov r7, r0
ldr r0, [0x000190f0]
bl sym.imp.g_strdup_printf
mov r4, r0
sub r2, r0, 1
--
andeq ip, r1, ip, lsr 10
strdeq sl, fp, [r1], -sp
strheq sl, [r1], -r1
andeq ip, r1, sl, lsr 11
strheq ip, [r1], -sl
andeq ip, r1, r3, asr 11
andeq ip, r1, r1, ror 11
andeq ip, r1, r7, asr 11
push {r4, r5, r6, r7, lr}
sub sp, sp, 0x14
mov r6, 0
str r0, [sp, 4]
ldr r0, str.gio_rename
mov r5, r2
str r1, [sp]
str r6, [sp, 0xc]
bl sym.imp.g_set_prgname
ldr r2, str.NAME
ldr r1, str.LOCATION
ldr r0, str._s__s
bl sym.imp.g_strdup_printf
mov r7, r0
bl sym.imp.g_option_context_new
--
andeq ip, r1, pc, lsl 12
andeq sl, r1, r4, lsl 20
andeq ip, r1, r4, lsl r6
andeq ip, r1, sl, lsl r6
strdeq sl, fp, [r1], -r6
andeq ip, r1, r8, ror 11
andeq ip, r1, sb, lsr 12
andeq ip, r1, sl, lsr r6
andeq ip, r1, pc, lsr ip
andeq ip, r1, sp, asr 12
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
mov r4, 0
str r0, [sp, 4]
ldr r0, str.gio_remove
mov r6, r2
str r1, [sp]
str r4, [sp, 0xc]
bl sym.imp.g_set_prgname
ldr r1, str.LOCATION
ldr r0, [0x00019440]
bl sym.imp.g_strdup_printf
mov r7, r0
bl sym.imp.g_option_context_new
--
andeq ip, r1, sl, lsr r6
andeq sp, r2, r8, asr 8
invalid
andeq ip, r1, sp, lsl r8
andeq ip, r1, pc, lsr ip
andeq ip, r1, sb, asr 16
andeq ip, r1, pc, lsr r8
push {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, 0x44
mov r4, 0
str r0, [sp, 0x1c]
ldr r0, str.gio_set
mov r6, r2
str r1, [sp, 0x18]
str r4, [sp, 0x20]
bl sym.imp.g_set_prgname
ldr r3, str.VALUE
ldr r2, str.ATTRIBUTE
ldr r1, str.LOCATION
ldr r0, str._s__s__s...
bl sym.imp.g_strdup_printf
mov r7, r0
bl sym.imp.g_option_context_new
--
mov r1, r5
mov r0, r4
bl sym.imp.g_file_enumerator_close
mov r0, r4
bl sym.imp.g_object_unref
b 0x19b14
add sp, sp, 8
pop {r4, r5, r6, r7, r8, pc}
ldrdeq ip, sp, [r1], -r4
push {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, 0x14
mov r6, 0
str r0, [sp, 4]
ldr r0, str.gio_trash
mov r4, r2
str r1, [sp]
str r6, [sp, 0xc]
bl sym.imp.g_set_prgname
ldr r1, str.LOCATION
ldr r0, str.__s..._
bl sym.imp.g_strdup_printf
mov r7, r0
bl sym.imp.g_option_context_new
--
cmp r0, 0
movne r1, r0
moveq r1, r3
cmp r4, 0
movne r0, r4
moveq r0, r3
pop {r4, r5, r6, lr}
b sym.imp.strcmp
andeq fp, r1, sb, ror 4
push {r4, r5, r6, r7, lr}
sub sp, sp, 0x14
mov r4, 0
str r0, [sp, 4]
ldr r0, str.gio_tree
mov r6, r2
str r1, [sp]
str r4, [sp, 0xc]
bl sym.imp.g_set_prgname
ldr r1, str.LOCATION
ldr r0, str.__s..._
bl sym.imp.g_strdup_printf
mov r7, r0
bl sym.imp.g_option_context_new
[*] Function printf used 19 times gio