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

Disassembly:
and cl, al
adc esi, edx
call fcn.0094b2a8
call fcn.008fc230
lea esi, [esi + ecx - 0x2aa56357]
and cl, ch
dec eax
bswap eax
xor edx, ebx
lea eax, [eax*8 - 0x2fae47a]
xchg cx, ax
lea edx, [edx + eax - 0x63bb9481]
bts cx, 0xb1
inc ax
xor edx, 0xaa87769f
bswap edx
and eax, eax
dec edx
sar ecx, 0xc7
add al, al
adc ecx, 0x489f1d06
xor ebx, edx
add edi, edx
xchg cx, ax
cdq
xor edx, ecx
jge fcn.0092c225
ror edx, 1
call fcn.0082c735
bswap ecx
je 0x7233bc
call fcn.008e5d7b
mov eax, dword [ebp]
mov edx, 0x259e2525
mov edx, dword [ebp + edx*2 - 0x4b3c4a46]
mov ecx, 0x6b2c3eb7
bts cx, cx
sar cl, 0xc1
mov cl, byte [ebp + ecx - 0x6b2c3ed3]
adc ebp, 5
call fcn.00cb9552
movzx dx, byte [eax]
xor ecx, 0xa9ad35a3
lea esi, [esi + ecx*2 - 0x5b0485a6]
mov eax, ecx
sub cl, 0x19
mov word [esi + ecx*2 - 0x5b048572], dx
jp 0xcadb71
rol byte [esp + ecx - 0x2d8242b8], 0x81
lea ebp, [ecx + ebp - 0x2d8242bd]
sar ax, 0x2f
mov edx, 0x10ad301a
xchg byte [esp + ecx - 0x2d8242b7], dh
mov eax, dword [ebp + edx*2 - 0x215a7634]
push ecx
xor eax, ebx
and cl, dh
add dl, byte [esp + edx*4 - 0x42b4ec61]
xor eax, 0x1230692c
dec cx
neg eax
lea edx, [edx*4 - 0x57e55dea]
lea eax, [eax + edx - 0x5832c2df]
xor cx, 0x8fb8
not ecx
mov dword [esp + 3], 0xd63c4614
not eax
inc cl
xor ebx, eax
shl dword [esp + 4], 0x9d
btc ecx, ecx
adc edi, eax
shr dword [esp + 4], 0x6a
adc edx, edx
xchg byte [esp + 7], dh
pop edx
pop ecx
jb fcn.0073c645
mov ecx, 0xef939e29
movsx eax, cx
push eax
mov ax, word [edi]
rol cl, 0x86
sal ecx, cl
sub dword [esp + ecx - 0x4e792800], 0xc998ae83
mov dx, word [edi + ecx - 0x4e7927fe]
mov dword [esp + ecx - 0x4e792800], ecx
not cx
or cx, 0xd914
lea edi, [ecx + edi - 0x4e79dffd]
adc ax, dx
or ecx, ecx
movzx edx, byte [esp + ecx - 0x4e79dfff]
sub edx, edx
mov word [ecx + edi - 0x4e79dfff], ax
dec dword [esp + edx*2]
lea ebp, [ebp + edx*2 - 4]
shr dl, 0xe3
push ecx
add edx, dword [ebp + ecx - 0x4e79dfff]
inc ecx
shr cl, 0x63
xor edx, ebx
sub ecx, 0x85bb2dbc
neg edx
mov eax, 0xcab5b7b8
rol edx, 3
xadd word [esp + 4], ax
xchg byte [esp], cl
dec edx
rol edx, 2
neg ax
jg 0x779210
shl eax, 0xe6
bswap edx
sbb ecx, dword [esp + 4]
sal eax, 0x47
rol word [esp + ecx - 0x7a44d346], cl
xor ebx, edx
pop eax
sal eax, 0xe1
sar byte [esp + ecx - 0x7a44d347], 0xe3
add esi, edx
add dword [esp + ecx - 0x7a44d348], ecx
cdq
mov dword [esp + ecx - 0x7a44d348], esi
ret
push 0xf63d3d89
lea esp, [esp + 0x20]
jne 0xcacc04
mov eax, 0xd3081c02
movzx edx, al
pop esi
not ecx
mov dword [edi], ecx
sub esi, 4
mov edx, dword [esi]
call fcn.0076645b
lea ecx, [ecx + ecx*4 - 0x73c23451]
xor edx, ebx
dec edx
jmp 0x8f7ae5
neg edx
inc ecx
or ax, 0x4d2c
and al, ch
xor ebx, edx
sub cx, 0x5b06
adc ebp, edx
mov edx, ecx
sal dword [esp + eax*4 - 0x134b0], cl
sete byte [esp + eax - 0x4d2c]
mov dword [esp + eax - 0x4d2c], ebp
ret
mov esi, 0x77a2f1bd
push esi
pop esi
movzx esi, byte [eax + esi - 0x77a2f1bd]
push 0x9d804fa7
neg word [esp]
xor esi, ecx
shl dword [esp], 8
call fcn.00794ac8
call fcn.00933929
mov eax, dword [esi]
mov ecx, 0x99bad4b7
mov edx, ecx
btc edx, edx
mov edx, dword [esi + 4]
adc esi, 7
mov dword [eax], edx
mov edx, dword [edi]
bts ecx, ecx
adc edi, 3
movzx eax, cx
shr ax, 0x2d
not eax
xor edx, ebx
xor ax, cx
or eax, ecx
sub eax, eax
xor edx, 0x4aa389ba
push eax
bswap eax
inc edx
or ecx, eax
ror dword [esp + eax], cl
rol edx, 2
xor dword [esp + eax*2], ecx
sar ecx, cl
jp 0xa08221
mov ecx, 0x57b59b04
mov eax, dword [edi + ecx - 0x57b59b04]
mov edx, 0x20a4eaa
dec cl
push edx
lea edi, [edi + edx - 0x20a4ea6]
shr dl, 0x61
xor eax, ebx
xchg cx, dx
bts edx, 0x22
ror dword [esp + ecx - 0x57b54e55], 0x28
inc eax
not eax
sub eax, 0xfd3e6db9
dec edx
neg eax
rol eax, 1
xor ebx, eax
call fcn.00784cdb
jae 0x756e53