Function at 0xc81ec3
Capabilities:
Encode data using base64
Encrypt data using speck
Execute anti-debugging instructions

Disassembly:
mul eax
dec eax
mov eax, dword [edi + eax*2 - 0x61d890c6]
setge dl
push edx
xchg dword [esp + edx - 0xffd], edx
xor eax, ebx
imul edx, dword [esp + 4]
xchg dword [esp + edx - 0x510ea78b], edx
push ecx
sbb dl, byte [esp + ecx - 0x642004c2]
xor ebx, eax
rol edx, cl
adc esi, eax
lea edi, [edx + edi - 0x1fe0037c]
xadd dword [esp + edx*2 - 0x3fc006f0], edx
mov eax, dword [ecx + edi - 0x642004c5]
rol ecx, 0xa2
add dword [esp + edx - 0x642004c5], 0xf4a93d8f
lea edx, [edx*4 - 0x60cad8d1]
xor eax, ebx
add word [esp + edx*2 - 0x5f6a7486], cx
not cl
rol eax, 1
bswap eax
shl ecx, 0xc5
add dx, 0x7736
neg eax
inc byte [esp + edx*2 - 0x5f6b62f2]
setns byte [esp + ecx - 0x10027d3f]
btc edx, 9
dec eax
shr dword [esp + edx - 0x2fb5b379], 0x42
jp 0xc2c475
sar cx, 0xea
rol eax, 1
rol cl, 7
shr edx, cl
neg dword [esp + edx - 0x5f6b]
xor ebx, eax
push ecx
inc dword [esp + edx - 0x5f6a]
lea ebp, [ebp + edx - 0x5f6f]
bt edx, 0x94
shr edx, cl
dec byte [esp + edx + 1]
mov dword [ebp + edx*4], eax
pop edx
pop edx
jle fcn.00899e4f
mov ecx, 0xda3062a4
mov eax, 0x93834db8
lea edx, [eax + eax*2 + 0x5918780c]
mov eax, dword [esi + edx*4 - 0x4e8984d0]
and cx, cx
bt dx, cx
mov cx, word [edx + esi - 0x13a26130]
lea esi, [esi + edx*4 - 0x4e8984ca]
mov word ss:[eax + edx*4 - 0x4e8984d0], cx
btr edx, 0x94
mov ecx, 0x3044605
movsx eax, dl
lea edi, [edi + edx*2 - 0x2744c26c]
mov ecx, dword [edi + edx*2 - 0x2744c268]
sar al, 0xe1
xor ecx, ebx
xadd edx, eax
adc eax, edx
inc ecx
xor edx, 0x1f99200f
not ecx
push edx
adc ax, ax
shr dword [esp + edx*4 - 0x30ed0504], 0xe1
lea ecx, [ecx + edx*2 - 0x6bace717]
mov byte [esp + edx - 0xc3b4141], dh
rol byte [esp + edx*4 - 0x30ed0501], 0x26
xor ecx, 0x3391c23a
add al, al
xor ebx, ecx
btr eax, edx
bt edx, edx
mul dword [esp + edx*2 - 0x18768282]
add ebp, ecx
call fcn.008b1f80
mov edx, dword [esi + 4]
mov eax, 0xf595b78f
push eax
shl al, 0x61
adc esi, 7
neg eax
and ax, 0x510c
bswap eax
mov dword [ecx + eax*8 - 0x2035050], edx
jge 0xc983e5
neg eax
xor eax, 0x1698289d
sub eax, 0xc4bb131e
jmp 0x7f243a
jmp 0xcd4ce3
js 0x8d99f7
lea edi, [edi + ecx*2 - 0x67c3fffe]
movzx edx, cx
sbb ecx, edx
shl cx, 0x26
xor eax, ebx
xor eax, 0x5cbc3a97
jmp fcn.0087dacb
btc dx, dx
setb cl
not eax
bswap eax
shr byte [esp + ecx*4 - 0x2fff], 0xa5
neg eax
pop edx
rol dl, 0x41
rol eax, 1
not eax
xor ebx, eax
shl cl, 0x44
ror cl, 0xe6
adc edi, eax
add dx, 0xc68b
xchg dword [esp + ecx - 0xc00], edx
pop edx
jno fcn.008157bf
sub dword [esp + ecx - 0x7d3f648e], ecx
and word [esp + ecx - 0x7d3f648c], 0xd0b
sbb eax, 0x2689cb8a
call fcn.007e09bb
sub edi, 4
mov ecx, 0xb9a02007
lea edx, [ecx*4 + 0x2c262524]
mov edx, dword [edi + edx*2 - 0x254d4a80]
inc cx
xor edx, ebx
inc cx
xor edx, 0xe3a5bf86
neg ecx
not edx
sub ecx, ecx
jge 0xc18357
sub edi, 4
mov edx, 0xdb387096
mov eax, dword [edi]
xor eax, ebx
bswap eax
mov ecx, 0xc21cf580
neg eax
imul ecx, edx
xor dl, dh
lea ecx, [edx + edx*4 + 0x1c067e23]
xor eax, 0x89a09b7
neg edx
sub cx, 0x1a2c
bt edx, 0xb7
not eax
inc eax
shl dx, 0xa1
xor edx, ecx
not eax
sbb eax, 0x9d9474bb
sal cl, 0x62
shr cx, 0xe5
ror eax, 1
sal edx, 0x3f
dec dx
xor eax, 0x39bb6405
sal dl, cl
bswap edx
dec cx
not eax
jns 0x70e275
push eax
jl 0xc81ec8
mov edx, 0xb7202129
sub edi, 4
lea ecx, [edx*2 - 0x2d7a41fe]
mov edx, dword [ecx + edi - 0x40c60054]
movzx eax, cx
xor edx, ebx
bswap ecx
shl cx, 0x8a
xor edx, 0x2fa05d07
bswap eax
shl al, 0x22
bswap edx
push eax
dec edx
shr eax, 0x77
ror al, 0xa1
and ax, 0x1110
not edx
dec edx
xor ebx, edx
inc ecx
add ebp, edx
neg ecx
mov si, word [esi + eax*4 - 0x40]
sub cx, ax
pop eax
jno fcn.00d0b40c
dec ebx
jmp 0x743839
mov eax, 0x3986e1b4
and ax, 0x8009
mov eax, dword [ebp + ebx*4]
jno 0x87c5a2
movzx eax, cl
lea edx, [ecx + edx + 0x24936d1b]
xor edx, 0x3da2ec07
sal cx, 0x23
add cl, cl
neg edx
jmp 0xc3e2ca
call fcn.0084fe6e
jno 0x7dad09
mov edx, dword [ebp]
mov eax, dword [ebp + 4]
mov ecx, 0x5fabb213
bt ecx, 0x9a
push ecx
mov cl, byte [ebp + ecx - 0x5fabb20b]
ror byte [esp + 3], 0xa5
adc ebp, 5
inc dword [esp]
neg word [esp + 2]
sbb dword [esp], 0x58b5cd9a
shrd edx, eax, cl
mov eax, 0x8e89ba12
bt eax, 0xb2
movsx ecx, al
mov dword [ebp + ecx - 0x12], edx
and eax, dword [esp + ecx*4 - 0x48]
lea edi, [edi + ecx - 0x16]
mov eax, dword [ecx + edi - 0x12]
lea edx, [ecx*4 - 0xe5fd2e5]
xor dword [esp + ecx - 0x12], edx
xor eax, ebx
neg eax
ror ecx, 0x24
or cl, ch
bswap eax
rol word [esp + ecx - 0x20000001], 0x6f
add ecx, dword [esp + ecx - 0x20000001]
neg eax
jmp 0x877809
lea edi, [edi + eax*2 - 0x80d418]
ja 0x70732b
mov eax, dword [esi]
mov cl, byte [esi + 4]
adc edx, edx
jno 0xd48263
lea esi, [edx + esi - 0x54dd63b3]
shr eax, cl
movzx ecx, dx
lea ecx, [ecx + ecx*4 - 0x18c97afa]
or dx, 0xe7bc
mov dword [edx + esi - 0x54dde7bd], eax
btc ecx, ecx
call fcn.007b2ed8
aam 0xc3
invalid
jne 0xbedd5d
call fcn.00c3404e
sub edi, 4
mov edx, 0xf886c33e
lea ecx, [edx*8 + 0x69a3c2a8]
mov eax, dword [ecx + edi - 0x2dd9dc98]
shl dl, 0x44
lea ecx, [edx*2 - 0x18f44169]
xor eax, ebx
neg dl
not edx
xadd edx, ecx
bswap eax
lea ecx, [edx*2 + 0xbb72838]
rol eax, 1
bswap eax
rol eax, 3
xor ebx, eax
xchg edx, ecx
add ebp, eax
xadd edx, ecx
jb 0xcc8a40
mov ecx, 0x2498fa0f
lea edx, [ecx + ecx*2 - 0x57509cd9]
mov ax, word [esi + edx*4 - 0x59e94550]
mov cl, byte [ecx + esi - 0x2498fa0d]
neg dl
lea esi, [esi + edx*4 - 0x59e946ae]
ror dl, 0xe4
sub edx, edx
sar dl, 0x84
shl ax, cl
imul edx, edx
sar edx, 0x4f
mov word [edx + esi], ax
call fcn.00802093
lea eax, [edx + edx*8 + 0x1c3e5b2b]
bswap ecx
btc edx, edx
shr eax, 0x68
setbe al
inc ecx
push edx
xadd word [esp + edx*2 - 5], ax
inc dl
xor ebx, ecx
cbw
add esi, ecx
xchg edx, eax
jmp fcn.007e125a