Function at 0xd3318a
Capabilities:
Encode data using base64

Disassembly:
push ecx
pop eax
pop ecx
jmp edi
lea ecx, [eax + ecx - 0x6134dea6]
imul eax, eax
rol ecx, 1
div word [esp + eax + 3]
mul word [esp + eax - 0xa4ec]
mov dword [esp + eax*4 - 0x2d878], edx
bswap ecx
neg eax
js 0x1520309
mov ecx, 0xb23681b7
mov ax, word [ebp]
mov dx, word [ebp + 2]
or ecx, 0xda97b888
or cx, cx
push ecx
adc ax, dx
movzx edx, word [esp]
mov word [edx + ebp - 0xb9bd], ax
mov edx, dword [edi + edx*4 - 0x2e700]
xor edx, ebx
movsx eax, byte [esp]
bt cx, 0x1d
inc edx
sar eax, 0xbd
lea ecx, [ecx + eax*8 - 0x1c8b452]
xor edx, eax
cwde
xor cl, al
btc ecx, eax
bswap edx
xor edx, 0xaea6febf
add cl, ah
add eax, eax
adc ecx, ecx
xor ebx, edx
push eax
add esi, edx
movzx eax, byte [edi - 5]
dec cx
add edi, 0xfffffffb
movsx edx, cx
xchg word [esp + edx*8 - 0x598f], cx
xor al, bl
inc edx
shl word [esp + edx*2 - 0x1663], 0xcd
neg al
sal ecx, cl
adc cl, dh
ror al, 1
not al
call fcn.0157ba4b
sub ecx, 0x6d29722e
and al, 0x11
ror eax, 0x74
bswap ecx
xor ebx, ecx
add edi, ecx
mov edx, dword [ebp + eax*2 - 0x77c01564]
mov ecx, eax
mov cl, byte [ebp + ecx*2 - 0x77c01560]
sal eax, 7
rol eax, 0x9c
lea ebp, [ebp + eax*2 - 0x1e00ab1a]
dec al
cwde
setno al
mov byte es:[edx + eax*2 - 0xaa02], cl
mov ecx, eax
add eax, 0xdba23aaf
mov edx, ecx
jmp edi
mov dword [esi], ecx
mov eax, 0xc6a27831
sub ebp, 4
jmp 0x144c573
lea edx, [eax + eax*2 - 0x3f6eeae9]
mov ecx, dword [ebp + edx*2 - 0x28f0fb54]
bt ax, 1
dec al
ror eax, 0xb0
xor ecx, ebx
not ax
rol ecx, 1
btr ax, dx
lea ecx, [ecx + edx + 0x4b11ed71]
sal byte [esp + edx - 0x86f6], 0x47
xor ecx, ebx
bts dx, 0xab
sbb edx, eax
not ecx
rol ecx, 2
mov dword [esp + edx - 0x8f01], eax
shl word [esp + edx*8 - 0x47808], 0x4f
lea ecx, [ecx + eax - 0x67e520ce]
neg ecx
xor ebx, ecx
btc edx, 0x97
jb 0x14f06c4
sal ax, 0x2d
add ebp, ecx
div eax
mov dword [esp + edx - 0x23c84000], ebp
ret 8
bts eax, 0x32
btc eax, ecx
not edx
lea eax, [ecx + eax - 0x48f7c8f6]
jb 0x146d296
sar ecx, cl
lea edx, [edx + ecx - 0xeeeb4c1]
sub cl, ah
inc al
xor edx, 0xb00a9fa2
bt eax, ecx
push ecx
xor ebx, edx
add eax, eax
setno byte [esp + eax*8 + 0x77b748b1]
adc edi, edx
shr cl, 6
mov eax, dword [ebp + eax + 0xef6e916]
bts ecx, ecx
setb cl
movsx edx, cx
mov dx, word [ebp + 4]
xor cx, 0x880e
xchg word [esp], cx
adc ebp, 6
shr dword [esp], cl
inc cx
mov word ss:[eax], dx
jbe 0xc51e30
xor ebx, ecx
add edx, eax
adc edi, ecx
mov edx, dword [ebp - 4]
movzx ecx, ax
cwde
dec cl
mov cl, byte [ebp + eax - 0x49e2]
pop eax
shl edx, cl
cwde
movzx ecx, al
mov dword [ebp + ecx*2 - 0x1e0], edx
lea edx, [eax + ecx*4 - 0x6f66b5c9]
sar ecx, 0x2b
lea ebp, [ebp + ecx*8 - 2]
xchg ch, al
neg dword [esp + ecx - 0xef00]
pop eax
jno fcn.0149336d
movzx dx, byte [ebp]
mov eax, 0xea9ee583
movzx ecx, al
inc eax
mov al, byte [ecx + ebp - 0x81]
sal ecx, cl
push ecx
lea ebp, [ebp + ecx*2 - 0x82e]
sub ecx, 0x3929df8f
sbb cl, cl
xor dl, cl
rol cx, 0xed
push ecx
lea ecx, [ecx*8 - 0x4ae4a5fb]
not al
and dl, al
xor ecx, ecx
mov word [ebp + ecx*2], dx
movzx eax, cl
movsx edx, byte [esp + ecx + 4]
shr word [esp + ecx*2], 0x41
lea edi, [edi + ecx*2 - 4]
xchg ecx, eax
jae 0x13bea17
add eax, dword [edi + ecx*2]
xor eax, ebx
inc dword [esp + ecx]
inc eax
ror eax, 2
not eax
ror dword [esp + ecx*4 + 3], 0x30
neg eax
sub eax, 0xe6b73ea3
shr edx, 0x2f
jae 0x152ee38
xor edx, ebx
movsx ecx, al
inc edx
jmp 0x14cc33c
neg ecx
xor eax, 0x2b9f2fad
shl dword [esp + ecx*2], 0xdf
xor ebx, eax
add esi, eax
mov eax, edx
ror eax, 8
mov dword [esp + ecx], esi
ret 4