Function at 0xa22053
Capabilities:
Encode data using base64
Encode data using xor
Encrypt data using aes mixcolumns step

Disassembly:
xor edi, ecx
call fcn.00938921
push 0x138efc1f
xor byte [esp + 1], 0x2a
sbb esi, 4
dec word [esp + 1]
shr dword [esp], 0xf6
mov eax, dword [esi]
xor eax, ebx
pop ecx
imul ecx, ecx
dec eax
lea edx, [ecx + ecx*4 + 0x4a3ebbb5]
ror eax, 3
lea edx, [edx - 0x257970d5]
xor eax, 0x21bc698d
imul ecx, edx
neg eax
btc dx, 0x38
setb dl
ror eax, 1
sub dx, dx
sar cx, 0xe1
shr dl, 0x82
xor ebx, eax
add ebp, eax
imul ecx, ecx
movsx eax, dl
lea esi, [esi + eax*4 - 4]
add eax, 0xceb0c92a
mov eax, dword [esi + ecx - 0x7dad9240]
xor edx, ecx
xadd ecx, edx
or ecx, 0x36926218
xor eax, ebx
bts edx, ecx
call fcn.008e01e0
mov edx, 0x8d34f22e
lea edi, [edx + edx*2 + 0x6415c49b]
pop edi
call fcn.00705830
mov eax, 0xfda5fab1
sub edi, 1
movzx eax, byte [edi]
xor al, bl
mov edx, 0x839e7c39
sub al, 0x96
inc edx
movzx ecx, dl
rol al, 1
or edx, ecx
imul dx, dx
and ecx, 0x12150208
sbb al, 0x20
sar ecx, cl
not al
xor al, 0x9d
add ecx, edx
neg cl
inc cl
xor bl, al
and dx, dx
ror cx, 0xaa
add cx, cx
adc eax, esp
neg edx
not cx
dec cx
mov edx, dword [eax + edx - 0x7c61c2dc]
ror ecx, 0x6b
lea ebp, [ecx + ebp - 0x2c1073c6]
movzx eax, cl
xadd ecx, eax
sal cl, cl
mov dword [ecx + ebp - 0x2c107440], edx
not eax
lea edi, [edi + ecx - 0x2c107444]
movsx edx, ax
rol ax, 0x2b
mov ecx, dword [edi + ecx*2 - 0x5820e880]
xor ecx, ebx
sub dl, dl
btr dx, 0x25
bswap ecx
cdq
rol ecx, 2
not al
cbw
sar edx, 0x87
bswap ecx
shl dl, 0x85
setne dl
not ecx
neg ecx
shl ax, 0x4e
shl dl, 0xe5
push eax
dec ecx
cdq
xor al, 0xaf
xor ebx, ecx
jmp 0x957e65
js 0x70583b
mov dword [esp], 0x38b84e12
lea esp, [esp + 0xc]
jmp 0x90135e
mov edi, 0x9999ab0d
and di, 0x123a
and edi, edi
movzx edi, byte [eax]
ja 0x733d49
mov ecx, 0x6033c115
lea esi, [esi + ecx - 0x6033c119]
mov edx, 0xf8b9e730
lea eax, [edx + ecx*2 - 0x167e8345]
bt eax, eax
mov eax, dword [esi + ecx - 0x6033c115]
shr edx, cl
xchg dh, dl
lea edx, [ecx - 0x58d38680]
xor eax, ebx
rol eax, 3
not eax
bswap ecx
rol eax, 1
btc cx, cx
dec edx
neg eax
dec dx
xor dx, 0x1009
inc cl
xor eax, 0xd00bb029
xor ebx, eax
dec cl
shl edx, cl
adc ebp, eax
add edx, 0x6412a590
rdtsc
seto cl
sbb cx, cx
shl ecx, 0x90
lea edi, [edi + ecx*4 - 8]
mov dword [ecx + edi + 4], eax
jp 0xa3ad75
jne 0xcbe29f
movsx ecx, ax
mov eax, dword [ebp + edx*8 - 0x7fff8]
cmova ecx, edx
shl dx, 0xee
btr edx, ecx
xor eax, ebx
bts ecx, edx
sub ecx, 0x1b861730
ror eax, 3
or cx, cx
seta dl
inc eax
not ecx
dec dx
push ecx
neg eax
neg ecx
adc cl, ch
xchg dword [esp + edx - 0xc000], ecx
dec eax
xor ebx, eax
lea edx, [edx - 0x7463e172]
add esi, eax
xadd cl, ch
mov dword [esp + ecx - 0x1b863248], esi
ret
push edi
mov dword [esp], 0x41696152
call fcn.00991696
add dl, 0xb7
movzx eax, cl
sar eax, cl
push ecx
neg dl
push eax
dec ax
not al
not dl
jp 0x983a20
shl dword [esp], 0x2f
dec dx
add esi, ecx
not al
pop edx
jmp fcn.0089b138
sal byte [esp + eax - 0xfefd], 0xe4
sbb dl, 0x8e
xor eax, dword [esp + eax*4 - 0x3fbfc]
sar ecx, cl
xor bl, dl
lea edx, [esp + edx + 0xc]
sar cx, 0xe
rol al, 0xe1
or cl, 0xb0
movzx cx, byte [edx]
sbb ebp, 2
mov edx, dword [esp + 8]
xadd edx, eax
mov word [ebp], cx
imul dword [esp]
pop edx
pop ecx
pop edx
jno fcn.0098b9e9
ror dl, 0x41
lea ebp, [edx + ebp - 0x6610dcd5]
and edx, edx
mov eax, ecx
jge 0xca0d68
jns 0x9ce188
cmp esi, ebx
jl 0x9ce13b
stosd dword es:[edi], eax
iretd
pop edx
or al, 0x83
mov dh, byte [edi]
push esp
pop edx
or al, 0xe7
sar byte [edi + 0x54], 1
pop edx
or al, 0x9f
call 0xcf735a6
js 0x9ce194
cwde
dec ebp
sbb dword [ebx], eax
jnp 0x9ce124
aam 0xf0
add byte [ebp + 0x78a07e58], bl
call dword [0x78a04ed8]
jmp [eax + edx*4 - 0x7a]
insd dword es:[edi], dx
or dword [edi], 0x9489c8b6
push es
invalid
lea esp, [esp + 0x14]
jne 0x785cba
jmp 0x70d5a2
mov dword [edi + ecx], edx
lea edx, [ecx*8 + 0x5bae119f]
movzx eax, dl
jbe fcn.008ca50c
mov edx, 0xd3be612d
movsx ecx, dl
mov ax, word [ecx + esi - 0x2d]
mov dx, word [esi + ecx - 0x2b]
lea ecx, [ecx*2 - 0x74c414da]
add esi, 2
not ax
ror cx, 0x87
or cx, 0x9dbf
not dx
jns 0xcbf67c
adc ecx, 0x8e0c820a
lea ecx, [ecx*8 + 0x1e3bb288]
or ax, dx
mov word [esi], ax
mov edx, 0x6610dca3
jmp 0x9ce110
mov eax, dword [edx + ebp - 0x6610dcd1]
jae 0x8ffdbf
inc eax
bswap eax
bswap ecx
btr edx, eax
shr eax, 0x7a
dec edx
adc ecx, 0xf611e233
btr dx, 2
sar al, 0x47
rol ecx, 1
btc eax, 0xbc
xor ebx, ecx
add edi, ecx
mov ecx, edx
mov edx, dword [ebp + eax - 0x10000000]
mov cl, byte [ebp + eax*4 - 0x3ffffffc]
or al, ah
dec al
lea ebp, [ebp + eax - 0x100000f9]
shl eax, 0xc1
sal eax, 0x28
mov byte [edx + eax*2 - 0x3fc00], cl
jmp edi
xor ecx, 0x8f886d1e
xor ebx, eax
push ecx
btc ecx, 0x17
ror dword [esp], cl
add edi, eax
call fcn.009d407c
imul ecx, dword [edi + esi*4 + 0x70], 0xfffffffd
inc edi
stosd dword es:[edi], eax
xchg ebp, eax
cli
inc ecx
aad 0xc
or al, 0x39
pop edx
jmp 0x9d66cab
not edx
xor eax, ebx
inc eax
neg ecx
lea ecx, [edx + edx*4 + 0x632e7492]
ror eax, 1
neg eax
inc cx
xchg dh, dl
ror eax, 1
jmp 0xca5faa
bswap ecx
xor al, dh
dec ecx
not ecx
and byte [esp + eax - 0x35726ef5], dh
shl edx, 0xd
neg dword [esp + eax - 0x35726ef1]
ror ecx, 2
and dl, byte [esp + eax - 0x35726ef4]
btc dx, dx
shl eax, 2
xor ebx, ecx
xor dword [esp + edx*2 - 0x6746bffc], 0x83ad8011
xadd dx, ax
add esi, ecx
xadd eax, edx
mov dword [esp + eax*8 - 0x4b63df30], 0xf11e421c
mov ecx, dword [esp + eax - 0x96c7bde]
mov ax, word [eax + edi - 0x96c7be6]
ror edx, 0xd5
xchg dword [esp + ecx - 0x357289cb], edx
mov cl, byte [edi + edx*2 - 0x312333e0]
lea edi, [edi + edx*4 - 0x624667c2]
sal ax, cl
sar dl, 0x26
xchg byte [esp + edx - 0x189199fc], dh
movzx ecx, dx
mov word [edi + edx*2 - 0x31235dfe], ax
xor edx, 0xf9b019a8
je fcn.00ca705e
mov dword [esp + ecx*8 - 0x577f8], esi
ret 8