Function at 0x43bd20
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd0
mov esi, ecx
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
add ecx, 0x1d0
call fcn.0043b8e0
mov edi, eax
xor ebx, ebx
cmp edx, ebx
je 0x43c363
inc ebx
cmp dword [eax], 0
lea eax, [eax + 8]
jne 0x43bd50
test ebx, ebx
je 0x43c36d
shl ebx, 3
add edi, 4
mov dword [esp + 0x20], 0
mov dword [esp + 4], 0
mov dword [esp + 0x24], 0
jmp 0x43bdbc
mov eax, dword [edi]
mov dword [esi + 0xd8], eax
mov dword [esi + 0xdc], 0
mov dword [esi + 0xfc], str.DT_AARCH64_AUTH_RELRENT_value
mov dword [esi + 0x100], 0x1d
nop
add edi, 8
add ebx, 0xfffffff8
je 0x43c288
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
movzx eax, word [eax + 0x12]
cmp eax, 0xb7
jne 0x43be10
mov edx, dword [edi - 4]
cmp edx, 0x70000013
je 0x43bd89
cmp edx, 0x70000011
jne 0x43be13
mov eax, dword [edi]
mov dword [esi + 0xd0], eax
mov dword [esi + 0xd4], 0
mov dword [esi + 0xf4], str.DT_AARCH64_AUTH_RELRSZ_value
mov dword [esi + 0xf8], 0x1c
jmp case.0x43be23.3
mov edx, dword [edi - 4]
cmp edx, 0x6fffdfff
jg 0x43be55
lea eax, [edx - 2]
cmp eax, 0x23
ja case.0x43be23.3
jmp dword [eax*4 + 0x55f324]
mov eax, dword [edi]
mov dword [esi + 0x110], eax
mov dword [esi + 0x114], 0
mov dword [esi + 0x134], str.DT_PLTRELSZ_value
mov dword [esi + 0x138], 0x11
jmp case.0x43be23.3
cmp edx, 0x6ffffef4
jle 0x43be7e
cmp edx, 0x70000011
jg 0x43bedf
cmp edx, 0x6ffffef5
je 0x43c205
cmp edx, 0x70000011
je case.0x43be23.35
jmp case.0x43be23.3
cmp edx, 0x6fffe000
je case.0x43be23.36
cmp edx, 0x6fffe001
je case.0x43be23.35
cmp edx, 0x6fffe003
je case.0x43be23.37
jmp case.0x43be23.3
mov eax, dword [edi]
mov dword [esi + 0xd0], eax
mov dword [esi + 0xd4], 0
xor eax, eax
cmp dword [edi - 4], 0x23
setne al
lea eax, [eax*8 + 0xf]
mov ecx, str.DT_ANDROID_RELRSZ_value
mov edx, str.DT_RELRSZ_value
cmove ecx, edx
mov dword [esi + 0xf4], ecx
mov dword [esi + 0xf8], eax
jmp case.0x43be23.3
cmp edx, 0x70000012
je case.0x43be23.36
cmp edx, 0x70000013
jne case.0x43be23.3
mov eax, dword [edi]
mov dword [esi + 0xd8], eax
mov dword [esi + 0xdc], 0
xor eax, eax
cmp dword [edi - 4], 0x25
setne al
lea eax, [eax*8 + 0x10]
mov ecx, str.DT_ANDROID_RELRENT_value
mov edx, str.DT_RELRENT_value
cmove ecx, edx
mov dword [esi + 0xfc], ecx
mov dword [esi + 0x100], eax
jmp case.0x43be23.3
mov ecx, esi
push 0
push dword [edi]
push 0
call fcn.0043c950
add esp, 0xc
mov dword [esi + 0xc8], eax
jmp case.0x43be23.3
mov eax, dword [edi]
cmp eax, 0x11
jne 0x43c225
mov dword [esi + 0x11c], 0
mov dword [esi + 0x118], 8
jmp 0x43c26f
mov ecx, esi
mov edx, 6
push 0
push dword [edi]
push 0
call fcn.0043c950
add esp, 0xc
test eax, eax
je case.0x43be23.3
mov ecx, dword [esi + 0x38]
mov dword [esp + 0xb0], ecx
mov byte [esp + 0xa], 0
mov word [esp + 8], 0
mov dword [esp + 0xb4], 0
mov cl, 1
mov dword [esp + 4], ecx
mov dword [esp + 0x24], eax
jmp case.0x43be23.3
mov eax, dword [edi]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 0
jmp case.0x43be23.3
mov ecx, esi
mov edx, 5
push 0
push dword [edi]
push 0
call fcn.0043c950
add esp, 0xc
mov dword [esp + 0x20], eax
jmp case.0x43be23.3
mov ecx, esi
mov edx, 0x17
push 0
push dword [edi]
push 0
call fcn.0043c950
add esp, 0xc
mov dword [esi + 0x108], eax
jmp case.0x43be23.3
mov eax, dword [edi]
mov dword [esi + 0x58], eax
mov dword [esi + 0x5c], 0
mov dword [esi + 0x7c], str.DT_RELENT_value
mov dword [esi + 0x80], 0xf
jmp case.0x43be23.3
mov ecx, esi
mov edx, 4
push 0
push dword [edi]
push 0
call fcn.0043c950
add esp, 0xc
mov dword [esi + 0x218], eax
jmp case.0x43be23.3
mov eax, dword [edi]
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], 0
mov dword [esi + 0x74], str.DT_RELSZ_value
mov dword [esi + 0x78], 0xe
jmp case.0x43be23.3
mov ecx, esi
mov edx, 7
push 0
push dword [edi]
push 0
call fcn.0043c950
add esp, 0xc
mov dword [esi + 0x88], eax
jmp case.0x43be23.3
mov eax, dword [edi]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 0
cmp eax, 0x10
je case.0x43be23.3
mov dword [esp + 0x48], str.DT_SYMENT_value_of_0x
lea eax, [esp + 0x80]
mov dword [esp + 0x50], eax
mov word [esp + 0x58], 0xf03
lea eax, [esp + 0x48]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], str._is_not_the_size_of_a_symbol__0x
mov word [esp + 0x6c], 0x302
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0x10
lea eax, [esp + 0x5c]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x98]
mov dword [esp + 0x30], eax
mov word [esp + 0x38], 0xf02
lea eax, [esp + 0x28]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 0x5514e0
mov word [esp + 0x1c], 0x302
mov ecx, esi
lea eax, [esp + 0xc]
push eax
call fcn.00539490
jmp case.0x43be23.3
mov ecx, esi
mov edx, 0x22
push 0
push dword [edi]
push 0
call fcn.0043c950
add esp, 0xc
mov dword [esi + 0x190], eax
mov dword [esi + 0x1a4], 0
mov dword [esi + 0x1a0], 4
jmp case.0x43be23.3
mov eax, dword [edi]
mov dword [esi + 0x90], eax
mov dword [esi + 0x94], 0
mov dword [esi + 0xb4], str.DT_RELASZ_value
mov dword [esi + 0xb8], 0xf
jmp case.0x43be23.3
mov eax, dword [edi]
cmp byte [esi + 0x248], 0
jne 0x43c1a8
mov byte [esi + 0x248], 1
mov dword [esi + 0x240], eax
mov dword [esi + 0x244], 0
jmp case.0x43be23.3
mov eax, dword [edi]
mov dword [esi + 0x98], eax
mov dword [esi + 0x9c], 0
mov dword [esi + 0xbc], str.DT_RELAENT_value
mov dword [esi + 0xc0], 0x10
jmp case.0x43be23.3
mov ecx, esi
mov edx, 0x11
push 0
push dword [edi]
push 0
call fcn.0043c950
add esp, 0xc
mov dword [esi + 0x48], eax
jmp case.0x43be23.3
mov ecx, esi
mov edx, 0x6ffffef5
push 0
push dword [edi]
push 0
call fcn.0043c950
add esp, 0xc
mov dword [esi + 0x21c], eax
jmp case.0x43be23.3
cmp eax, 7
jne 0x43c240
mov dword [esi + 0x11c], 0
mov dword [esi + 0x118], 0xc
jmp 0x43c26f
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0xc], str.unknown_DT_PLTREL_value_of
lea eax, [esp + 0x28]
mov dword [esp + 0x14], eax
mov word [esp + 0x1c], 0xd03
mov ecx, esi
lea eax, [esp + 0xc]
push eax
call fcn.00539490
mov dword [esi + 0x13c], str.PLTREL_entry_size
mov dword [esi + 0x140], 0x11
jmp case.0x43be23.3
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x43c38b
mov ecx, dword [esi + 0x3c]
mov eax, dword [ecx + 4]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], 0
mov edx, ebx
sub edx, dword [ecx]
mov ecx, edx
sar ecx, 0x1f
mov dword [esp + 0x70], edx
xor edi, edi
sub eax, edx
mov dword [esp + 0x74], ecx
sbb edi, ecx
mov ecx, dword [esp + 0x40]
cmp eax, ecx
sbb edi, dword [esp + 0x44]
jae 0x43c37f
mov dword [esp + 0x80], str.the_dynamic_string_table_at_0x
lea eax, [esp + 0x70]
mov dword [esp + 0x88], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x48], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x98]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x5c]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x40]
mov dword [esp + 0x14], eax
mov word [esp + 0x90], 0xf03
mov dword [esp + 0x50], str._goes_past_the_end_of_the_file__0x
mov word [esp + 0x58], 0x302
mov word [esp + 0x6c], 0xf02
mov dword [esp + 0x30], str.__with_DT_STRSZ__0x
mov word [esp + 0x38], 0x302
mov word [esp + 0x1c], 0xf02
mov ecx, esi
lea eax, [esp + 0xc]
push eax
call fcn.00539490
jmp 0x43c38b
mov ebx, edx
test ebx, ebx
jne 0x43bd69
mov dword [esp + 4], 0
mov dword [esp + 0x24], 0
jmp 0x43c38b
mov dword [esi + 0x210], ebx
mov dword [esi + 0x214], ecx
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
movzx edi, word [eax + 0x12]
cmp edi, 0x29
sete bh
cmp edi, 0x16
sete bl
cmp byte [esi + 0x188], 0
je 0x43c501
cmp byte [esp + 4], 0
je 0x43c43b
mov eax, dword [esp + 0x24]
cmp eax, dword [esi + 0x148]
je 0x43c43b
mov byte [esp + 3], bh
mov byte [esp + 0x20], bl
mov dword [esp + 0xc], str.SHT_DYNSYM_section_header_and_DT_SYMTAB_disagree_about_the_location_of_the_dynamic_symbol_table
mov word [esp + 0x1c], 0x103
push 0x1c
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov ebx, eax
call fcn.0054a58e
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], 3
sub esp, 0xc
movsd xmm0, qword [esp + 0x34]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0x18]
mov dword [esp], eax
mov ecx, ebx
call fcn.0054a3a8
mov dword [esp + 0x7c], ebx
lea eax, [esp + 0x7c]
mov ecx, esi
push eax
call fcn.00539410
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x43c432
mov eax, dword [ecx]
call dword [eax + 4]
movzx ebx, byte [esp + 0x20]
mov bh, byte [esp + 3]
mov eax, dword [esi + 0x218]
test eax, eax
je 0x43c52c
cmp edi, 0x16
je 0x43c52c
cmp edi, 0x29
je 0x43c52c
mov ecx, dword [esi + 0x158]
mov edx, dword [esi + 0x15c]
mov edi, ecx
or edi, edx
je 0x43c511
mov edi, dword [eax + 4]
push edx
push ecx
push dword [esi + 0x154]
push dword [esi + 0x150]
call fcn.005499dc
add esp, 0x10
mov ecx, eax
xor ecx, edi
or ecx, edx
je 0x43c52c
mov dword [esp + 0x48], str.hash_table_nchain__
mov dword [esp + 0x50], edi
mov word [esp + 0x58], 0x903
lea ecx, [esp + 0x48]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], str.__differs_from_symbol_count_derived_from_SHT_DYNSYM_section_header__
mov word [esp + 0x6c], 0x302
mov dword [esp + 0x84], edx
mov dword [esp + 0x80], eax
lea eax, [esp + 0x5c]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x30], eax
mov word [esp + 0x38], 0xd02
lea eax, [esp + 0x28]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 0x5514e0
mov word [esp + 0x1c], 0x302
jmp 0x43c520
xor eax, eax
or bl, bh
cmp byte [esp + 4], 0
jne 0x43c540
jmp 0x43c618
mov dword [esp + 0xc], str.SHT_DYNSYM_section_has_sh_entsize__0
mov word [esp + 0x1c], 0x103
lea eax, [esp + 0xc]
mov ecx, esi
push eax
call fcn.00539490
movzx eax, byte [esi + 0x188]
or bl, bh
cmp byte [esp + 4], 0
je 0x43c618
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x148], ecx
test al, al
je 0x43c57b
mov dword [esi + 0x15c], 0
mov dword [esi + 0x158], 0x10
mov dword [esi + 0x17c], 0x551965
mov dword [esi + 0x180], 0
jmp 0x43c616
mov eax, dword [esp + 0xb4]
mov dword [esi + 0x150], eax
mov dword [esi + 0x154], eax
mov dword [esi + 0x15c], 0
mov dword [esi + 0x158], 0x10
mov eax, dword [esp + 0xb0]
mov dword [esi + 0x160], eax
mov dword [esi + 0x164], esi
mov byte [esi + 0x168], 0
movzx eax, word [esp + 8]
mov word [esi + 0x169], ax
movzx eax, byte [esp + 0xa]
mov byte [esi + 0x16b], al
mov dword [esi + 0x16c], 0
mov dword [esi + 0x170], 0
mov dword [esi + 0x174], str.size
mov dword [esi + 0x178], 4
mov dword [esi + 0x17c], 0x551965
mov dword [esi + 0x180], 0
mov byte [esi + 0x188], 1
mov al, 1
mov edx, dword [esi + 0x218]
test edx, edx
sete cl
or bl, cl
jne 0x43c75e
test al, al
je 0x43c75e
mov edi, dword [esi + 0x3c]
mov ecx, dword [edi + 4]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], 0
mov eax, dword [edx + 4]
mov ebx, dword [esi + 0x15c]
imul ebx, eax
mul dword [esi + 0x158]
mov dword [esp + 4], eax
add edx, ebx
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
mov ebx, dword [esi + 0x148]
sub ebx, dword [edi]
mov edi, ebx
sar edi, 0x1f
mov dword [esp + 0xb8], ebx
xor eax, eax
sub ecx, ebx
sbb eax, edi
mov dword [esp + 0xbc], edi
mov edi, dword [esp + 4]
cmp ecx, edi
sbb eax, edx
jae 0x43c750
mov dword [esp + 0x98], str.the_size__0x
lea eax, [esp + 0xc0]
mov dword [esp + 0xa0], eax
mov word [esp + 0xa8], 0xf03
lea eax, [esp + 0x98]
mov dword [esp + 0x80], eax
mov dword [esp + 0x88], str.__of_the_dynamic_symbol_table_at_0x
mov word [esp + 0x90], 0x302
lea eax, [esp + 0x80]
mov dword [esp + 0x48], eax
lea eax, [esp + 0xb8]
mov dword [esp + 0x50], eax
mov word [esp + 0x58], 0xf02
lea eax, [esp + 0x48]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], str.__derived_from_the_hash_table__goes_past_the_end_of_the_file__0x
mov word [esp + 0x6c], 0x302
lea eax, [esp + 0x5c]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x30], eax
mov word [esp + 0x38], 0xf02
lea eax, [esp + 0x28]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], str.__and_will_be_ignored
mov word [esp + 0x1c], 0x302
lea eax, [esp + 0xc]
mov ecx, esi
push eax
call fcn.00539490
jmp 0x43c75e
mov ecx, edi
mov dword [esi + 0x150], edi
mov dword [esi + 0x154], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret