Function at 0x52a540
Capabilities:
Encode data using base64

Disassembly:
imul edx, edx, 0xa
pushfd
cmp cl, ah
sub edi, 4
pushal
push dword [edi]
pop dword [esp + 0x20]
call fcn.00524d5c
add byte [eax], al
dec esp
push eax
je 0x51a781
inc esp
push eax
add al, ch
cmp byte [ebp + 0x44c7fffb], al
mov dword [esp + 0x20], 0x52451b
jmp 0x524d44
lea esp, [esp + 0x24]
jne 0x52471a
inc al
rcl al, cl
daa
xor edx, edx
shr al, cl
seto al
pushal
cmc
mov eax, edx
sub esp, 0xffffffe0
add byte [eax], al
inc edi
je 0x51a7de
imul ebp, dword [esi + 0x64], 0x6552776f
arpl word [eax + eax + 0x68], si
mov bh, 0xe8
fstp qword [edi]
call fcn.00535da1
adc edx, esi
add byte [eax], al
dec ebp
popal
jo 0x51a7e7
imul esp, dword [ecx + 0x6c], 0x6552676f
arpl word [eax + eax + 0xf], si
mov dword [edi - 0x44], esi
add byte [eax], al
push 0x11c3165b
mov byte [esp], 0x22
xchg ecx, eax
call 0x51a715
ret
jmp 0x52a802
je 0x51a838
imul ebp, dword [esi + 0x64], 0x724f776f
inc ebp
jb 0x51a850
inc ebp
js 0x51a7ec
push es
imul ecx, ecx, 0x6b
in al, 0x6b
in eax, dx
outsb dx, byte [esi]
out dx, al
push 0xffffffffffffffd5
push esp
loope 0x51a7b6
push ebx
leave
sbb al, 0x15
jmp 0x9272453c
popfd
add byte [eax], al
je 0x5273a2
btc bx, 7
pushal
mov ebx, dword [esi]
cmc
call fcn.005266ad
shl dword [esi - 0x4bce44fc], 0x2b
mov byte [0xae1faf18], al
cmpsb byte [esi], byte es:[edi]
add al, 0xbb
xor dword [ebx + ebp + 0x1faf18a2], esi
scasb al, byte es:[edi]
sbb dword [eax - 0x22651bcc], ebp
dec eax
sbb edx, esp
push ebx
add al, byte [esi]
pop es
pushfd
mov ch, 0xe
invalid
lea esp, [esp + 0x30]
jne 0x4d2d68
cwde
cwde
call 0x4d2b3f
add byte [eax], al
push eax
outsd dx, dword [esi]
jae 0x52a5cb
dec ebp
jae 0x52a5ce
popal
inc ecx
add byte [eax], al
add byte [ecx + 0x73], cl
dec ecx
arpl word [edi + 0x6e], bp
imul esp, dword [ebx], 0x66243489
mov dword [esp], esi
movzx si, bl
ror si, 1
shrd esi, esi, cl
push edi
and si, dx
shl esi, cl
sbb si, 0xb8da
push ebx
shr si, cl
mov esi, eax
rcr edi, 0xb
setp al
xor di, 0xa971
shrd di, bx, 2
mov edi, edx
neg dl
mov dl, 0x80
and al, cl
call fcn.0052a753
add byte [eax], al
inc esi
jb 0x52a60c
insd dword es:[edi], dx
push edx
arpl word gs:[eax + eax], si
add byte [edi + 0x65], al
je 0x52a5fc
insb byte es:[edi], dx
inc ebx
je 0x52a62f
insb byte es:[edi], dx
dec ecx
inc esp
add byte [edi + 0x4cdc60d2], dh
aad 0x60
enter 0xffffffffffffcc73, 0x65
not dword [esi + 0x67]
not dword gs:[esi + 0x67]
push ebx
push ebx
inc ebp
push 0x3be54a8
loope 0x52a607
wait
dec ebp
push ss
push 0xfffffffffffffff3
sahf
bound ecx, qword [eax - 0x44e55798]
add bl, bl
pushal
xlatb
inc esi
dec edx
sbb esi, dword [eax - 0x31]
fcmovne st(0), st(6)
popfd
or al, 0x92
sub eax, 0x879f7271
jle 0x52a60e
stosd dword es:[edi], eax
add dl, ah
add eax, esp
cli
jmp [eax + 0x17]
xor al, 0x24
invalid
daa
mov dh, 0xcb
sub al, 0x50
std
out 0x78, al
faddp st(4)
jmp 0x52a63b
pop ebx
out dx, eax
or ebx, dword [ecx]
push cs
dec edi
out 0x7a, al
and bh, byte [ebp + 0x13]
jge 0x52a605
xchg dword [eax + ebp*2 + 0x326a64d3], edx
cdq
dec esi
jge 0x52a687
scasb al, byte es:[edi]
xor bh, dh
dec edx
mov dh, 0xe0
fmul qword [eax]
jne 0x52a61d
cmp eax, 0x43f63bf3
xchg esi, eax
sub dl, byte [edx - 0x377a08c5]
enter 0xffffffffffffd9af, 0x71
xchg ecx, eax
jae 0x52a6dc
fbld tbyte [edx]
enter 0xffffffffffff8080, 0xffffffffffffff8c
mov ah, 0x67
or dword [esi + edi*2], esp
das
mov dword [eax - 0x77], ebx
cmp ebp, dword [eax - 0x49]
dec eax
jecxz 0x52a69e
call fcn.005357ff
imul ebp, esi, 0x94025c
add byte [edx + 0x65], dl
mov cl, 0
add byte [ecx - 0x12], ch
pop esp
add dl, byte [eax + eax + 0x61655200]
popal
insb byte es:[edi], dx
imul edi, dword [edx + 0x65], 0x656c6150
je 0x52a712
add byte gs:[eax], al
add byte [ebx + 0x65], dl
je 0x52a6fa
js 0x52a71d
inc ebx
outsd dx, dword [esi]
insb byte es:[edi], dx
outsd dx, dword [esi]
jb 0x52a6af
add byte [eax], al
ja 0x52a714
jbe 0x52a71a
dec edi
dec edi
jne 0x52a72c
inc edi
je 0x52a70a
jne 0x52a72b
inc esp
jbe 0x52a735
add byte [eax], al
add byte [edi + 0x65], al
je 0x52a716
outsb dx, byte gs:[esi]
jne 0x52a716
je 0x52a734
insd dword es:[edi], dx
dec ecx
inc esp
add cl, bh
jmp 0x51a6fa
cmp al, 0xbb
sbb edi, dword [ebp - 0x65db54f0]
mov ebp, 0x9a24ab10
jno 0x52a693
out 0x6f, al
jge 0x52a6a6
jg 0x52a6df
scasd eax, dword es:[edi]
xchg ebp, eax
mov al, byte [0x94ead9ac]
and ah, byte [edx - 0x33f24900]
ja 0x52a6bc
jl 0x52a6b4
pop ds
mov edx, 0xc304
inc ebx
jb 0x52a76c
popal
je 0x52a76f
push edx
arpl word gs:[edx + edx*2 + 0x67], si
outsb dx, byte [esi]
add byte [eax], al
add byte [ebp + 0x6e], al
add byte [eax], al
inc ebp
outsb dx, byte [esi]
je 0x52a77d
jb 0x52a75d
jb 0x52a785
je 0x52a787
imul esp, dword [ebx + 0x61], 0x6365536c
je 0x52a78f
arpl word [ecx + 0x6c], sp
push ebx
arpl word gs:[ecx + ebp*2 + 0x6f], si
outsd dx, dword [esi]
outsb dx, byte [esi]
add byte [ebp + 0xf342464], cl
lea esp, [esp + 0x34]
invalid
and al, 0x34
xor al, 0xf
ja 0x4d2d68
xchg dword [0xf8fffa86], esi
clc
pushal
jmp 0x4d26e5
push esi
imul esi, dword [ebx + 0x69], 0x656c62
sbb al, byte [ebx]
imul esp, dword [edx + 0x6c], 0x31a0065
lodsb al, byte [esi]
cmp dword [ebx - 0x54ee5de6], eax
pop ds
lodsd eax, dword [esi]
lcall 0x744, 0xe1412366
pop es
xchg edi, eax
cmp dword [ebx], edx
jns 0x52a7d2
comiss xmm3, dword [eax]
aas
mov edx, 0x2c46e884
dec eax
lodsd eax, dword [esi]
lahf
adc eax, 0xc0c3501c
push cs
mov ecx, 0xee3f9459
inc eax
jecxz 0x52a805
jmp 0x74b45b49
mov ebp, esi
cmp dl, 0x42
cmp ebx, 3
pushal
mov byte [esp + 0xc], 0xdb
lea esp, [esp + 0x24]
je 0x4d2afc
push edi
lea esp, [esp + 4]
jmp 0x4d2b14
pushfd
push dword [esp]
movzx ecx, word [edi + ecx*2]
and al, 0xf
mov bh, 0xc
dec edi
sub di, 0xaff4
mov edi, dword [edx + 0x1c]
jmp 0x533490