Function at 0x43bd30
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.0043b8f0
mov edi, eax
xor ebx, ebx
cmp edx, ebx
je 0x43c373
inc ebx
cmp dword [eax], 0
lea eax, [eax + 8]
jne 0x43bd60
test ebx, ebx
je 0x43c37d
shl ebx, 3
add edi, 4
mov dword [esp + 0x20], 0
mov dword [esp + 4], 0
mov dword [esp + 0x24], 0
jmp 0x43bdcc
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 0x43c298
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
movzx eax, word [eax + 0x12]
cmp eax, 0xb7
jne 0x43be20
mov edx, dword [edi - 4]
cmp edx, 0x70000013
je 0x43bd99
cmp edx, 0x70000011
jne 0x43be23
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.0x43be33.3
mov edx, dword [edi - 4]
cmp edx, 0x6fffdfff
jg 0x43be65
lea eax, [edx - 2]
cmp eax, 0x23
ja case.0x43be33.3
jmp dword [eax*4 + 0x564324]
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.0x43be33.3
cmp edx, 0x6ffffef4
jle 0x43be8e
cmp edx, 0x70000011
jg 0x43beef
cmp edx, 0x6ffffef5
je 0x43c215
cmp edx, 0x70000011
je case.0x43be33.35
jmp case.0x43be33.3
cmp edx, 0x6fffe000
je case.0x43be33.36
cmp edx, 0x6fffe001
je case.0x43be33.35
cmp edx, 0x6fffe003
je case.0x43be33.37
jmp case.0x43be33.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.0x43be33.3
cmp edx, 0x70000012
je case.0x43be33.36
cmp edx, 0x70000013
jne case.0x43be33.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.0x43be33.3
mov ecx, esi
push 0
push dword [edi]
push 0
call fcn.0043c960
add esp, 0xc
mov dword [esi + 0xc8], eax
jmp case.0x43be33.3
mov eax, dword [edi]
cmp eax, 0x11
jne 0x43c235
mov dword [esi + 0x11c], 0
mov dword [esi + 0x118], 8
jmp 0x43c27f
mov ecx, esi
mov edx, 6
push 0
push dword [edi]
push 0
call fcn.0043c960
add esp, 0xc
test eax, eax
je case.0x43be33.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.0x43be33.3
mov eax, dword [edi]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 0
jmp case.0x43be33.3
mov ecx, esi
mov edx, 5
push 0
push dword [edi]
push 0
call fcn.0043c960
add esp, 0xc
mov dword [esp + 0x20], eax
jmp case.0x43be33.3
mov ecx, esi
mov edx, 0x17
push 0
push dword [edi]
push 0
call fcn.0043c960
add esp, 0xc
mov dword [esi + 0x108], eax
jmp case.0x43be33.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.0x43be33.3
mov ecx, esi
mov edx, 4
push 0
push dword [edi]
push 0
call fcn.0043c960
add esp, 0xc
mov dword [esi + 0x218], eax
jmp case.0x43be33.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.0x43be33.3
mov ecx, esi
mov edx, 7
push 0
push dword [edi]
push 0
call fcn.0043c960
add esp, 0xc
mov dword [esi + 0x88], eax
jmp case.0x43be33.3
mov eax, dword [edi]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 0
cmp eax, 0x10
je case.0x43be33.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], 0x5564e0
mov word [esp + 0x1c], 0x302
mov ecx, esi
lea eax, [esp + 0xc]
push eax
call fcn.005394d0
jmp case.0x43be33.3
mov ecx, esi
mov edx, 0x22
push 0
push dword [edi]
push 0
call fcn.0043c960
add esp, 0xc
mov dword [esi + 0x190], eax
mov dword [esi + 0x1a4], 0
mov dword [esi + 0x1a0], 4
jmp case.0x43be33.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.0x43be33.3
mov eax, dword [edi]
cmp byte [esi + 0x248], 0
jne 0x43c1b8
mov byte [esi + 0x248], 1
mov dword [esi + 0x240], eax
mov dword [esi + 0x244], 0
jmp case.0x43be33.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.0x43be33.3
mov ecx, esi
mov edx, 0x11
push 0
push dword [edi]
push 0
call fcn.0043c960
add esp, 0xc
mov dword [esi + 0x48], eax
jmp case.0x43be33.3
mov ecx, esi
mov edx, 0x6ffffef5
push 0
push dword [edi]
push 0
call fcn.0043c960
add esp, 0xc
mov dword [esi + 0x21c], eax
jmp case.0x43be33.3
cmp eax, 7
jne 0x43c250
mov dword [esi + 0x11c], 0
mov dword [esi + 0x118], 0xc
jmp 0x43c27f
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.005394d0
mov dword [esi + 0x13c], str.PLTREL_entry_size
mov dword [esi + 0x140], 0x11
jmp case.0x43be33.3
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x43c39b
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 0x43c38f
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.005394d0
jmp 0x43c39b
mov ebx, edx
test ebx, ebx
jne 0x43bd79
mov dword [esp + 4], 0
mov dword [esp + 0x24], 0
jmp 0x43c39b
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 0x43c511
cmp byte [esp + 4], 0
je 0x43c44b
mov eax, dword [esp + 0x24]
cmp eax, dword [esi + 0x148]
je 0x43c44b
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.0054f3f2
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.0054f20c
mov dword [esp + 0x7c], ebx
lea eax, [esp + 0x7c]
mov ecx, esi
push eax
call fcn.00539450
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x43c442
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 0x43c53c
cmp edi, 0x16
je 0x43c53c
cmp edi, 0x29
je 0x43c53c
mov ecx, dword [esi + 0x158]
mov edx, dword [esi + 0x15c]
mov edi, ecx
or edi, edx
je 0x43c521
mov edi, dword [eax + 4]
push edx
push ecx
push dword [esi + 0x154]
push dword [esi + 0x150]
call fcn.00549a6c
add esp, 0x10
mov ecx, eax
xor ecx, edi
or ecx, edx
je 0x43c53c
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], 0x5564e0
mov word [esp + 0x1c], 0x302
jmp 0x43c530
xor eax, eax
or bl, bh
cmp byte [esp + 4], 0
jne 0x43c550
jmp 0x43c628
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.005394d0
movzx eax, byte [esi + 0x188]
or bl, bh
cmp byte [esp + 4], 0
je 0x43c628
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x148], ecx
test al, al
je 0x43c58b
mov dword [esi + 0x15c], 0
mov dword [esi + 0x158], 0x10
mov dword [esi + 0x17c], 0x556965
mov dword [esi + 0x180], 0
jmp 0x43c626
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], 0x556965
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 0x43c76e
test al, al
je 0x43c76e
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 0x43c760
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.005394d0
jmp 0x43c76e
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