Function at 0x228f73a
Capabilities:
Encode data using base64
Encrypt data using speck

Disassembly:
dec ebx
lea ebp, [edx + esi*8 - 0x78d653c4]
inc si
mov edx, dword [edi + esi - 0x693ab4aa]
dec ebx
lea eax, [esi + esi*2 + 0x65127d0c]
inc ecx
push esi
inc edx
adc dword [esp + esi - 0x693ab4b1], ebp
dec edx
lea edi, [edi + esi - 0x693ab4a8]
inc esi
movsx esp, byte [esp + esi - 0x693ab4b2]
inc di
mov dword [esi + ebx - 0x693ab4b2], edx
movsx ecx, bp
inc esp
mov ebp, ecx
inc ebp
mov ebx, dword [eax + ecx - 0x5790]
sub ax, 0x5886
dec edi
lea eax, [eax + esi - 0x693ab4ae]
inc ecx
movsx esi, bp
dec esi
add esi, dword [esp + esi - 0x693ab4b2]
movzx edx, word [esp + ecx*2 - 0xaf1e]
inc ebp
xor ebx, ecx
dec edx
lea edx, [0xe719d00e]
cdq
inc ecx
sub ebx, 0xd8357491
inc ecx
bswap ebx
sub dl, byte [esp + ecx - 0x578a]
inc ebp
movzx edx, sp
inc ecx
xor ebx, 0xc5319794
call fcn.027ddd13
mov cx, word [esi]
mov edx, 0x6a2959a8
lea esi, [esi + edx - 0x6a2959a6]
xor dx, 0x595
movsx eax, dx
ror al, 0xc5
lea edi, [edi + edx - 0x6a295c3e]
movzx edx, byte [edi + edx - 0x6a295c3d]
shr al, 0xe1
xor dl, bl
add ax, ax
inc ax
sbb dl, 0xb
btr ax, ax
btr eax, eax
lea eax, [eax + eax*2 - 0x5ec2cd4]
not dl
dec dl
sar ax, 0x81
neg dl
ror dl, 1
and al, ah
jp 0x15f5cff
xor bl, dl
btr ax, ax
adc edx, esp
btr ax, ax
mov byte [edx], cl
sbb edi, 4
movsx edx, al
movsx ecx, dx
mov eax, dword [edi]
not edx
sub edx, edx
adc ecx, 0x78023b11
xor eax, ebx
bt edx, edx
add cl, ch
shl edx, 0x5e
not eax
add cx, cx
shr dx, 0x6d
neg dx
neg eax
lea ecx, [ecx*8 - 0x6eda4bf6]
ror eax, 3
jmp 0x2885e9d
shl edx, 2
sub eax, 0x87b58eb6
or al, ah
sbb eax, 0x8a56ca7
mov eax, ebp
adc eax, edx
push 0xb139560d
rol word [esp + 1], 0x8e
mov dword [ebp - 4], eax
call fcn.0291dd55
mov esi, 0x543ddc31
inc esp
movsx edi, si
inc ecx
mov edx, dword [eax + esi - 0x543ddc31]
dec eax
or esi, 0x4aa5e335
inc esp
movsx esp, si
dec ebp
lea eax, [eax + esi - 0x5ebdff31]
inc ebp
movzx ebp, di
inc ebp
mov ebx, esp
jp 0x15c17f4
mov eax, 0x111da917
mov eax, dword [edi + eax - 0x111da917]
add edi, 4
mov edx, 0xdb84d6bb
lea ecx, [edx + edx*4 - 0x76ffe7e3]
xor eax, ebx
and dx, dx
not dx
inc eax
shr edx, 0x71
bswap eax
or dx, dx
jge 0x227b69f
mov eax, dword [edi]
mov edx, 0x9d9be8bc
movzx ecx, dx
lea ecx, [ecx + ecx*4 + 0x2105fb8b]
lea edi, [ecx + edi - 0x210a8733]
add dl, ch
lea ecx, [edx + edx + 0x42a06885]
sal dl, 0x41
xor eax, ebx
ror eax, 1
neg cl
sub edx, edx
sar edx, cl
lea eax, [eax + edx - 0x3bb16a8a]
adc cl, 0x8e
neg dx
lea edx, [edx + ecx*8 - 0x387230c9]
rol eax, 1
dec dx
imul edx, edx
inc eax
shl edx, 0x3f
xor eax, 0x3ca55b35
xor ebx, eax
xor cl, dl
shl dl, 0xa1
adc esi, eax
sub ecx, edx
mov eax, ecx
adc cx, ax
mov ecx, dword [ebp + edx]
bts edx, 0x95
push edx
cdq
mov eax, dword [edx + ebp + 4]
or byte [esp + edx*4], dh
adc dword [esp + edx], edx
push edx
lea ebp, [edx + ebp + 4]
sar byte [esp + edx*2 + 4], 0x41
shr dl, 0xa6
sub dl, dl
or ecx, eax
shr dx, 5
jp 0x22c5f3e
inc ecx
xor edx, ecx
dec ebx
lea eax, [ebx + ebx*4 + 0x18b1c09d]
inc ecx
bswap esp
neg edx
sub edx, 0x8db1a1ad
inc cx
or eax, ebx
inc ecx
movsx ecx, ah
inc ecx
movzx ebp, bp
ror edx, 2
sub edx, 0xa2be7a3a
xor edx, 0x95bd221d
inc ecx
push ecx
dec eax
and ebp, ecx
inc ecx
sar ebx, cl
xor dword [esp + esi - 0x5ebdff35], edx
sar bp, 0x68
dec esi
lea ebp, [eax + edi*8 + 0x52a8eebf]
push ebp
dec esp
mov ecx, dword [esp + esi - 0x5ebdff2d]
inc cx
shr edi, 0xee
inc ecx
sbb ch, 0x92
dec eax
arpl dx, dx
dec eax
mov dword [esp + esi - 0x5ebdff2d], ecx
dec eax
sub dword [esp + esi - 0x5ebdff2d], 0x5b05f07
inc ebp
movsx esi, ah
dec eax
adc ebx, edx
dec edx
lea edx, [edi*4 + 0x291b22ac]
dec esp
btc ecx, esi
dec esp
mov ebx, edi
jb 0x24ce227
dec eax
lea edi, [edi + ebp - 0xffe0]
inc sp
btr ebp, esi
inc ecx
inc esi
inc esp
mov dword [ebp + edi - 0x7fdc], ebx
inc ecx
pop ebp
inc ecx
pop esp
je fcn.027a8c5b
mov edx, 0x359a1814
movzx eax, dl
mov ecx, dword [edi + eax - 0x14]
bts edx, eax
cwde
sar edx, 0x9b
lea edi, [edi + edx - 2]
bts dx, 0x3f
rol eax, 0xd0
dec edx
xor ecx, ebx
lea eax, [eax + eax + 0x770e9b12]
shl edx, 0xe
btc ax, 0x92
xor ecx, 0xf43df996
not eax
bswap ecx
dec ecx
xor ecx, 0x5496099a
xor ebx, ecx
call fcn.015cb897
mov ecx, 0xb97b739
mov dword [esp + ecx - 0xb97b739], ecx
mov ecx, dword [edi + ecx*2 - 0x172f6e6e]
sar dword [esp], 0xbc
mov edx, 0xc1ab73f
lea edi, [edi + edx - 0xc1ab737]
adc dl, dh
or dl, byte [esp + edx - 0xc1ab7f7]
sar edx, 0x27
mov dword [eax + edx - 0x18356f], ecx
sub dl, dl
movzx eax, dl
lea esi, [edx + esi - 0x183504]
mov ecx, dword [esi + edx*8 - 0xc1a800]
shl ax, 4
add dword [esp + edx - 0x183500], edx
xor ax, word [esp + edx*2 - 0x306a00]
xor ecx, ebx
sub ecx, 0xd02e782a
shr byte [esp + edx*2 - 0x306a00], 0xe3
sub ax, ax
bswap ecx
dec edx
mov dword [esp + edx - 0x1834fb], eax
inc ecx
rol ecx, 1
xor ebx, ecx
bts eax, eax
bts eax, eax
rol dl, 0xc3
add ebp, ecx
lea ecx, [eax + edx*8 - 0x7cf514e]
mov dword [esp + edx - 0x1834ff], ebp
ret 4
lea esi, [esi + eax*2 - 0xe]
and cl, dl
movsx edx, ax
not cl
btr eax, eax
shl dx, 0x21
call fcn.0252b1b0
xor dx, 0xd303
ror cx, 0x68
inc dx
call fcn.02538ccc
mov ecx, 0xa3de687
movzx edx, cl
mov eax, dword [edi + ecx*2 - 0x147bcd0e]
bswap edx
lea edi, [edi + ecx*2 - 0x147bcd0a]
inc dl
xor eax, ebx
inc ecx
setne cl
xor eax, 0x5e119a80
and cl, 0x15
not eax
push ecx
bswap eax
sbb eax, 0xaf918c11
ror dword [esp + ecx*4 - 0x28f79804], 0xb8
xor ebx, eax
inc dx
add ebp, eax
sar word [esp + ecx - 0xa3de5ff], cl
movzx cx, byte [esi + ecx*2 - 0x147bcc02]
push edx
mov al, byte [esi + 2]
not dl
adc esi, 2
add cl, al
mov word [esi], cx
shl dword [esp], 0xaf
mov dword [esp + 4], 0x9babb219
lea ecx, [edx*4 - 0x4d5bb641]
pop ecx
pop edx
jmp ebp
inc ecx
call fcn.028940f3
mov ecx, dword [esi + eax - 0x6519d680]
mov ax, word [ecx + eax - 0x6519d680]
adc esi, 2
mov edx, 0x2939f337
mov word [edx + esi - 0x2939f337], ax
lea edi, [edi + edx*2 - 0x5273e672]
not dl
bts dx, dx
mov ecx, dword [edi + edx - 0x2939f3c8]
sar edx, 0xe7
xchg dh, dl
jae 0x27fd27f
xor ecx, ebx
lea ecx, [ecx + edx - 0x3fd9821f]
xor ecx, 0x4c9a4508
dec ecx
movsx eax, dl
push eax
not ecx
call fcn.02653df4
shl dl, cl
ror eax, 1
add dx, dx
add ecx, ecx
dec eax
xor ebx, eax
sar dx, cl
bt ecx, edx
add ebp, eax
mov ecx, dword [esi + edx*2 - 0x1ffb4]
inc dx
movsx eax, dx
bt dx, 0x29
mov dx, word [esi + edx - 0xffd7]
call fcn.01591823
or ecx, edx
lea edx, [eax + eax*8 - 0x667b91e0]
mov dword [edi + edx*4 - 0x7611b880], ecx
mov edx, dword [eax + ebp - 0x64000000]
lea ebp, [ebp + eax - 0x63fffffc]
or al, 0x20
lea ecx, [eax*8 - 0x2b7ff8c9]
imul eax, eax
xor edx, ebx
inc edx
inc cx
not edx
js fcn.025bf75b
add al, 0xa7
sal eax, cl
ror edx, 2
neg eax
ja 0x25d5ade
jno 0x25281e2
inc ecx
mov esi, 0x693ab4b2
dec ecx
bt esi, 0x39
dec esi
lea edx, [esi*8 - 0x3cca9fcc]
dec ebp
mov ebx, dword [esi + edi - 0x693ab4b2]
jae 0x1573885
inc al
sal edx, 0x57
shr edx, 5
rol al, 1
btr dx, dx
lea edx, [edx + edx - 0x466ae965]
inc al
sal edx, 0xdc
ror dl, 0x64
xor bl, al
shr edx, 0xd6
btr edx, edx
push edi
setb dl
or dx, dx
push ebp
push ebx
movsx ebx, dl
mov ebp, esi
ror dx, 0x62
lea ebx, [edx*2 + 0x2f9a5a02]
btr edx, ebx
mov ebx, eax
rol edx, 0x22
mov edx, ebx
mov eax, 0x201b912e
jae 0x15b65b2
mov ecx, 0x3297adbd
movzx edx, cx
mov edx, dword [esi + ecx*2 - 0x652f5b7a]
movsx eax, cl
sub eax, 0x4aac0490
cbw
mov cx, word [esi + ecx*2 - 0x652f5b76]
imul eax, eax
rol ax, 0xa7
shr eax, 0x32
lea esi, [esi + eax*2 - 0x5f90]
mov word [edx + eax*8 - 0x17e58], cx
lea edx, [eax + eax*2 + 0x73035782]
movzx ecx, dx
ror ax, 0xe5
mov edx, dword [edi + eax*2 - 0xb2fc]
shl ecx, 0xfd
dec ecx
add ax, 0x1d19
lea edi, [edi + eax - 0x7693]
setbe cl
xor edx, ebx
lea ecx, [ecx + eax - 0x2a7e67dc]
sal cx, 0xa3
xor edx, 0x1eb65a8a
xor ecx, ecx
shr eax, 0xbe
not edx
add ecx, 0x25bdcfa5
jae 0x28d2053
not ecx
xadd byte [esp + edx*8 + 5], dl
call fcn.0250aea3
cmc
out 0xdc, al
imul dword [0x35f218b8]
push ebp
add eax, 0x18f09c2a
and esi, dword [esi]
retf
mov eax, ecx
ror al, 0xe3
dec eax
lea edi, [edi + ecx*4 - 0x74b62784]
dec eax
not edx
sar eax, cl
inc eax
sar dh, cl
jbe 0x27cb45b
neg edx
neg eax
xor ebx, edx
add esi, edx
mov dword [esp], ecx
pop ecx
jmp esi
bts eax, edx
jae 0x165793b
mov edx, 0x2423e23f
lea ecx, [edx - 0x6bf2eecb]
mov eax, dword [edi + edx*2 - 0x4847c47e]
dec ecx
bt dx, cx
lea edi, [edx + edi - 0x2423e23b]
inc cx
sub ecx, ecx
rol dx, 0xb
xor eax, ebx
xor eax, 0x16a59fbb
not eax
bts cx, cx
btr ecx, ecx
push ecx
ror eax, cl
sub eax, ecx
and edx, edx
xor eax, 0xe912e8bb
pop edx
xor ebx, eax
add esi, eax
rol edx, 0x89
jae 0x28f11f5
mov byte ss:[edx], al
sbb ebp, 4
mov edx, dword [ebp]
lea eax, [ecx - 0x57f8ade]
push ecx
xor edx, ebx
rol eax, cl
sub eax, 0x1eb99032
sbb edx, 0x91ad0ab7
xor cl, ch
not word [esp + 1]
xor edx, 0x39843f99
lea edx, [eax + edx - 0x35d4fde]
rol eax, 0xdb
shl eax, 0x67
shr dword [esp + eax - 0x778ef80], 0xf9
not edx
call fcn.022b69ca
mov eax, 0x651956b4
shl ax, 0x25
js 0x2258d2d
dec ecx
not edx
inc eax
xchg al, ch
inc ecx
add bh, 0x89
dec ecx
and edx, edx
inc ecx
sal esp, cl
inc ecx
sar esp, 0x9c
dec eax
mov dword [edi + ecx - 0x1d2d89e3], edx
inc ecx
sal esp, cl
dec esp
adc ebp, ebx
inc ecx
jmp ebp
bt dx, 4
add ecx, 0x76889e9c
xor eax, 0xe7ae6b36
rol eax, 2
inc edx
xor ebx, eax
push edx
ror cl, 0x81
adc word [esp + edx*4 - 3], cx
adc ebp, eax
sar cx, 0x25
shl edx, 0x51
xadd byte [esp + edx*8 - 0xffffe], ch
mov dword [esp + edx*8 - 0x100000], ebp
ret
call fcn.025ba375
call fcn.015cd4bb
sub dl, 0xa0
mov ax, word [ebp + edx*2 - 0x4c0]
and dx, cx
ja 0x2778412
mov cl, byte [ebp + edx*2 + 2]
lea edx, [edx*4 - 0x4a6b5a75]
rol edx, 0x66
lea ebp, [ebp + edx - 0x652962eb]
sub edx, 0x4792db98
btc edx, edx
ror dl, 0x27
shr ax, cl
mov ecx, edx
bt edx, 0x84
not cl
mov word [edx + ebp - 0x1db687aa], ax
jmp esi