Function at 0x4e8f12
Capabilities:
Encode data using base64
Encrypt data using aes
Encrypt data using speck
Reference aes constants

Disassembly:
pop dword [esp]
lea esp, [esp + 2]
mov dword [esp], ecx
pushal
lea esp, [esp + 0x20]
pushfd
push dword [esp + 2]
pushal
pop word [esp + 0x11]
lea esp, [esp + 0x1c]
push dword [esp + 7]
mov word [esp + 4], sp
jmp 0x4e904a
push di
lea esp, [esp + 2]
push ebp
mov ebp, esp
push di
pushfd
pop word [esp]
push word [esp + 3]
pushfd
jmp 0x4e8eb8
pushfd
push dword [esp + 3]
mov byte [esp + 5], dh
mov dword [esp + 3], edx
mov word [esp + 2], dx
push dword [esp + 6]
mov byte [esp + 0xa], ah
pop dword [esp + 2]
mov dword [esp + 3], edi
push edi
mov word [esp + 1], cx
lea edi, [ecx + ecx]
push sp
xchg word [esp], di
push dword [esp + 3]
xchg word [esp + 3], di
mov di, word [esp + 8]
lea edi, [ebx*4]
push edi
lea edi, [eax*4]
lea esp, [esp + 7]
pop di
lea esp, [esp + 1]
mov dword [esp], ebx
mov di, 0x680d
mov bh, byte [esp]
mov edi, dword [esp]
setb bl
lea ebx, [ebx + 0x279f]
mov di, 0x4e3
bswap ebx
mov bl, 0xaf
mov bl, byte [esp]
mov di, 0x1860
mov bl, ah
lea edi, [eax + eax]
lea ebx, [ecx - 0x59f1]
push esi
lea esi, [esi + ebp]
mov edi, eax
mov esi, 0x24df61d7
lea esi, [edx + ebp]
not esi
mov esi, dword [esp]
xchg bx, si
pop esi
mov bx, 0x774
mov edi, ebp
mov bl, byte [esp]
bswap di
mov di, word [esp]
lea edi, [0x63b40bf5]
mov bx, di
mov edi, 0x3da777ac
not bl
mov bh, byte [esp]
pop ebx
lea edi, [eax - 0x29]
lea edi, [eax*4]
mov edi, 0x766d4abb
mov edi, dword [esp]
not edi
mov di, word [esp]
bswap edi
mov edi, 0xb760bcd
mov di, word [esp]
mov di, 0x4750
bswap di
bswap di
mov edi, dword [esp + 3]
lea esp, [esp + 8]
lea esp, [esp + 4]
jmp 0x4e8eef
mov bx, si
bswap bx
mov bh, 0x5e
xchg dh, bh
lea edx, [eax + esi]
mov dword [esp], eax
popal
mov al, byte [ecx]
jmp 0x52a633
pop dword [esp + 5]
mov byte [esp + 5], ch
lea esp, [esp + 2]
mov dword [esp + 4], ecx
pushfd
lea esp, [esp + 8]
pushfd
mov dword [esp], ebx
push ebx
pop word [esp]
mov byte [esp], dh
mov byte [esp], ah
mov byte [esp], cl
pushfd
lea esp, [esp + 2]
lea esp, [esp + 4]
push edi
pushal
mov cl, byte [esp]
bswap di
jmp 0x4e9026
cmp bl, 0x30
jb 0x529c20
cmp bl, 0x39
jbe 0x529be1
ja 0x529c20
cmp dl, 0x61
jb 0x529bf4
cmp dl, 0x7a
jbe 0x529c88
ja 0x529bf4
jmp 0x529c44
mov dl, byte [ecx + 2]
cmp dl, 0x41
jb 0x529bc5
cmp dl, 0x5a
jbe 0x529c88
ja 0x529bc5
cmp dl, 0x30
jb 0x529c5f
cmp dl, 0x39
jbe 0x529c88
ja 0x529c5f
pop ds
lcall 0x4fc3, 0x5c9a6f08
fistp qword [edx + 0x571de349]
lds ebx, [edx]
cmp bl, 0x61
jb 0x529bb9
cmp bl, 0x7a
jbe 0x529be1
ja 0x529bb9
cmp bl, 0x2b
je 0x529be1
cmp bl, 0x2f
jne 0x529c43
je 0x529be1
in eax, dx
jge 0x529c34
div dword [eax]
out 0x6e, al
cld
wait
jbe 0x529bf9
mov bl, 0x3a
test al, 0xcf
cmp bh, al
push esp
push ss
jecxz 0x529c73
mov eax, 0x403
rol byte [ebx], 4
add byte [eax], al
jmp 0x529d01
cmp dl, 0x2b
je 0x529c88
cmp dl, 0x2f
je 0x529c88
cmp dl, 0x3d
jne 0x529c43
je 0x529c88
xor bh, byte [esi + 0x72c64b2c]
sub esp, dword [esi + 0x6fae5334]
arpl di, si
add dh, cl
cmp dword [ecx], esp
xor ah, bl
cwde
ror dword [edi], 1
dec ebx
invalid
mov cl, byte [ecx + 3]
cmp cl, 0x41
jb 0x529db6
cmp cl, 0x5a
jmp 0x529cf0
cmp al, 0x2b
je 0x52a2c5
cmp al, 0x2f
jne 0x529c43
je 0x52a2c5
cmp cl, 0x30
jmp 0x529cf8
cmp cl, 0x2b
je 0x529d20
cmp cl, 0x2f
je 0x529d20
cmp cl, 0x3d
je 0x529d20
jne 0x529c43
test dword [edx], edx
and bh, 0x12
cmpsd dword [esi], dword es:[edi]
sbb cl, byte [esi + 0x24967b1c]
mov eax, dword [0x2e762138]
jbe 0x529d20
ja 0x529db6
jb 0x529ccc
cmp cl, 0x39
jbe 0x529d20
ja 0x529ccc
pop edi
pushal
push sp
bswap bx
xchg word [esp + 0xa], bx
push bp
jmp 0x52a140
cmp dl, 0x3d
jne 0x529d6a
mov dword [edi], 1
jmp 0x529d37
cmp al, 0x2b
jmp 0x529e10
cmp al, 0x2f
jne 0x529dce
push 0x3f
jmp 0x529dea
cmc
stc
sub esp, 0x17
pop word [esp + 1]
lea esp, [esp + 1]
xor ebx, ebx
pushal
push dword [esp + 0x19]
mov byte [esp + 0xc], dh
lea esp, [esp + 7]
lea esp, [esp + 1]
lea esp, [esp + 0x30]
cmp cl, 0x3d
setne bl
inc ebx
inc ebx
mov dword [edi], ebx
mov bl, byte [ebp - 1]
jmp 0x529d37
cmp cl, 0x61
jb 0x529cba
cmp cl, 0x7a
jbe 0x529d20
ja 0x529cba
cmp al, 0x39
ja 0x529ded
movzx eax, al
add eax, 4
jmp 0x529e3a
pop eax
jmp 0x529e3a
cmp al, 0x5a
movzx eax, al
ja 0x529e1a
sub eax, 0x41
jmp 0x529e3a
jne 0x529d49
push 0x3e
jmp 0x529dea
sub eax, 0x47
jmp 0x529e3a
push cx
push word [esp]
push word [esp + 3]
push word [esp]
push dword [esp + 7]
mov dword [esp + 2], eax
pop word [esp + 7]
push si
mov dword [esp + 8], esi
lea esp, [esp + 8]
cmp bl, 0x2b
jne 0x529e9b
push 0x3e
jmp 0x529e77
pop esi
jmp 0x529f78
cmp bl, 0x5a
ja 0x529f12
sub esi, 0x41
jmp 0x529f78
cmp bl, 0x2f
jmp 0x52a000
movzx esi, bl
cmp bl, 0x39
ja 0x529e7d
add esi, 4
jmp 0x529f78
cmp al, 0x30
jb 0x529ca6
cmp al, 0x39
jbe 0x52a2c5
ja 0x529ca6
push ebx
mov ebx, ebp
lea ebx, [ebx - 8]
mov edx, dword [ebx]
pop ebx
jmp 0x529fc4
mov ecx, dword [ebp - 8]
jmp 0x52a0f6
sub esi, 0x47
jmp 0x529f78
pop edx
jmp 0x529fc4
cmp dl, 0x2f
jmp 0x529fe1
cmp dl, 0x39
jmp 0x52a068
cmp dl, 0x5a
movzx edx, dl
ja 0x52a030
sub edx, 0x41
jmp 0x529fc4
push eax
pushal
setp ch
pushal
mov dl, 0x32
pop word [esp + 6]
mov bh, 0xdf
lea esp, [esp + 2]
mov dword [esp + 0x38], edi
pushfd
lea esp, [esp]
mov word [esp + 1], di
push word [esp + 3]
lea esp, [esp + 2]
lea esp, [esp + 0x20]
popal
mov edi, dword [eax]
pop eax
cmp edi, 2
jb 0x529ee3
cmp dl, 0x2b
jne 0x529f36
push 0x3e
jmp 0x529f17
cmp edi, 3
jne 0x529ef1
cmp cl, 0x2b
jmp 0x52a035
jne 0x529f48
push 0x3f
jmp 0x529f17
jne 0x529ead
push 0x3f
jmp 0x529e77
cmp cl, 0x2f
jne 0x52a190
push 0x3f
jmp 0x52a049
sub edx, 0x47
jmp 0x529fc4
jne 0x52a00d
push 0x3e
jmp 0x52a049
pop ecx
jmp 0x52a0f6
ja 0x529f5a
movzx edx, dl
add edx, 4
jmp 0x529fc4
sub ecx, 0x47
jmp 0x52a0f6
cmp edi, 3
jne 0x52a0c9
pushfd
sub esp, 0xc
push dword [esp + 0xa]
jmp 0x52a0a7
cmp cl, 0x5a
movzx ecx, cl
ja 0x52a079
sub ecx, 0x41
jmp 0x52a0f6
mov byte [esp + 0xa], al
or eax, ecx
lea esp, [esp + 0x14]
jmp 0x52a0c9
push ebx
mov ebx, ebp
lea ebx, [ebx + 8]
mov ecx, dword [ebx]
pop ebx
mov edx, eax
pushfd
push word [esp]
lea esp, [esp + 2]
lea esp, [esp + 2]
push word [esp + 1]
jmp 0x52a15e
shl eax, 6
or eax, esi
shl eax, 0xc
lea esi, [ecx*4]
bswap si
bswap si
mov si, 0x7cfc
mov esi, dword [esp]
mov esi, dword [esp]
push bp
mov byte [esp], bh
lea esp, [esp + 2]
lea esp, [esp + 4]
cmp edi, 2
jb 0x52a07e
shl edx, 6
or eax, edx
jmp 0x52a07e
cmp edi, 3
jne 0x52a1a4
mov byte [ecx + 2], al
jmp 0x52a1a4
xchg dword [esp + 0x15], ebx
pop ebx
pop bx
not bh
lea esp, [esp + 2]
jmp 0x52a1ab
shr edx, 0x10
pushfd
mov byte [esp + 1], dh
push dx
lea esp, [esp + 3]
lea esp, [esp + 2]
mov byte [esp], bl
lea esp, [esp + 1]
lea esp, [esp + 4]
mov byte [ecx], dl
cmp edi, 2
jmp 0x52a1d0
cmp cl, 0x39
ja 0x52a09a
movzx ecx, cl
add ecx, 4
jmp 0x52a0f6
xor eax, eax
jmp 0x529d01
mov ebx, dword [esp + 0x1c]
pushal
push dword [esp]
push word [esp + 0x11]
pushfd
push word [esp + 0x1e]
push dword [esp + 0xc]
jmp 0x52a25b
jb 0x52a136
mov edx, eax
push eax
mov word [esp], sp
push dword [esp + 2]
mov dword [esp + 1], ecx
lea esp, [esp + 3]
mov word [esp], ax
pop word [esp]
lea esp, [esp + 3]
shr edx, 8
push esi
lea esp, [esp]
push word [esp + 2]
mov dword [esp], edx
push dword [esp + 2]
mov dword [esp + 5], edi
lea esp, [esp + 2]
lea esp, [esp + 8]
mov byte [ecx + 1], dl
jmp 0x52a136
mov byte [esp + 0x14], ah
mov byte [esp + 0x14], cl
mov byte [esp + 0x17], cl
lea esp, [esp + 0x50]
leave
ret
push edx
mov edx, ebp
lea edx, [edx + 8]
mov ecx, dword [edx]
pop edx
mov byte [ecx], dl
cmp esi, 0x1a
jae 0x52a38a
jmp 0x52a34e
mov bl, byte [ecx + 1]
mov byte [ebp - 1], bl
cmp bl, 0x41
jb 0x529c14
cmp bl, 0x5a
jbe 0x529be1
ja 0x529c14
pushal
push word [esp + 4]
push word [esp + 5]
mov dword [esp + 0x18], esi
stc
mov word [esp + 1], sp
push dword [esp + 0x1c]
mov byte [esp + 0x11], dh
push dword [esp + 0x21]
xor edx, edx
push ecx
jmp 0x52a3dd
cmp dword [ebp + 0xc], 2
mov edx, dword [ebp + 8]
mov byte [edx + 1], cl
jb 0x52a4ad
cmp edi, 0x1a
jae 0x52a45c
lea ecx, [edi + 0x41]
jmp 0x52a420
lea ecx, [esi + 0x41]
jmp 0x52a322
cmc
clc
sub esp, 0x1c
push dword [esp + 0x11]
sub esp, 4
pushal
mov byte [esp + 1], ah
pop dword [esp + 2]
pop word [esp + 0x19]
lea esp, [esp + 2]
cmp esi, eax
push eax
pop word [esp]
mov word [esp], bx
jmp 0x52a3b9
cmp esi, 0x34
jae 0x52a353
lea ecx, [esi + 0x47]
jmp 0x52a322
xor ecx, ecx
cmp esi, eax
setne cl
lea ecx, [ecx*4 + 0x2b]
jmp 0x52a322
mov word [esp], cx
lea esp, [esp]
lea esp, [esp + 2]
lea esp, [esp + 0x3c]
jae 0x52a394
lea ecx, [esi - 4]
jmp 0x52a322
push dword [esp + 2]
pop word [esp + 3]
push cx
lea esp, [esp + 0x34]
cmp ecx, eax
setne dl
lea edx, [edx*4 + 0x2b]
jmp 0x52a272
cmp edi, eax
push edx
mov dword [esp], ecx
push ebx
mov byte [esp + 6], ch
lea esp, [esp + 8]
jae 0x52a43c
lea ecx, [edi - 4]
jmp 0x52a420
mov byte [edx + 2], cl
jmp 0x52a547
xor ecx, ecx
sub esp, 0x18
cmp edi, eax
push dx
push word [esp]
mov word [esp + 1], dx
jmp 0x52a484
cmp edi, 0x34
jae 0x52a3fd
lea ecx, [edi + 0x47]
jmp 0x52a420
lea esp, [esp + 0x18]
setne cl
lea ecx, [ecx*4 + 0x2b]
jmp 0x52a420
mov dword [esp], ecx
pop word [esp]
push word [esp]
mov dword [esp], eax
push cx
lea esp, [esp + 4]
lea esp, [esp + 2]
jmp 0x52a466
mov byte [edx + 2], 0x3d
jmp 0x52a547
mov byte [edx + 3], cl
jmp 0x52a59b
cmp ebx, 0x34
jae 0x52a51f
lea ecx, [ebx + 0x47]
jmp 0x52a4b6
mov byte [edx + 3], 0x3d
jmp 0x52a59b
cmp ebx, eax
jae 0x52a5ba
lea ecx, [ebx - 4]
jmp 0x52a4b6
cmp dword [ebp + 0xc], 3
jne 0x52a503
cmp ebx, 0x1a
jae 0x52a4de
lea ecx, [ebx + 0x41]
jmp 0x52a4b6
cmp al, 0x61
jb 0x529ecb
cmp al, 0x7a
jbe 0x52a2c5
ja 0x529ecb
mov esi, dword [esp + 0x1d]
lea esp, [esp + 0x24]
lea esp, [esp + 4]
jmp 0x52a60c
pop edi
pop esi
pop ebx
pop ebp
ret
xor ecx, ecx
cmp ebx, eax
push sp
push word [esp + 1]
lea esp, [esp + 3]
lea esp, [esp]
push bx
lea esp, [esp + 1]
mov byte [esp], bh
mov byte [esp], bh
lea esp, [esp + 2]
setne cl
lea ecx, [ecx*4 + 0x2b]
jmp 0x52a4b6
mov dword [esp], edx
lea esp, [esp + 2]
lea esp, [esp + 8]
cmp al, 0x41
jb 0x52a6ff
jmp 0x52a6ba
pushal
lea esp, [esp + 0x20]
mov al, byte [ecx]
push edx
mov dword [esp], ebx
pushfd
pop word [esp]
mov byte [esp], bh
pushfd
push dword [esp]
jmp 0x52a5eb
cmp al, 0x41
jb 0x52a567
cmp al, 0x5a
jbe 0x52a2c5
ja 0x52a567
cmp al, 0x30
jmp 0x52a698
cmp al, 0x2b
je 0x52a67c
cmp al, 0x2f
jne 0x52a6e1
je 0x52a67c
cmp byte [edi + 0x3b94a2f], bh
invalid
mov dl, byte [ecx + 1]
cmp dl, 0x41
jb 0x52a6c1
cmp dl, 0x5a
jmp 0x52b2d3
jb 0x52a65d
cmp al, 0x39
jbe 0x52a67c
ja 0x52a65d
movsb byte es:[edi], byte [esi]
daa
mov bh, 0xd2
and ecx, ebp
fcom dword [edx - 0x40]
cmpsd dword [esi], dword es:[edi]
push edx
out 0x60, al
jmp 0x2d3dbf2c
cmp al, 0x5a
jbe 0x52a67c
ja 0x52a6ff
cmp dl, 0x61
jb 0x52adc0
cmp dl, 0x7a
jbe 0x52b324
ja 0x52adc0
lea eax, [edx + ebx*4]
std
or al, 0xce
pushal
xchg bh, al
rol byte [ebx], 4
add byte [eax], al
cmp al, 0x61
jb 0x52a64b
cmp al, 0x7a
jbe 0x52a67c
ja 0x52a64b
dec edi
rcl byte [esi + 0x31], 0xc0
add cl, byte [eax + eax - 0x4bff0e6a]
jne 0x52a71d
mov word [eax], es
xchg esi, eax
int1
add byte [ebp + esi*2 - 0x7f69108], dh
outsb dx, byte [esi]
or eax, edi
cmp dword [ebp - 0x53], edx
cmp dl, 0x30
jb 0x52ab05
cmp dl, 0x39
jbe 0x52b324
ja 0x52ab05
cmp esi, 0x34
jae 0x52ae3d
lea ecx, [esi + 0x47]
jmp fcn.0052ae82
xor ecx, ecx
cmp esi, 0x3e
setne cl
lea ecx, [ecx*4 + 0x2b]
jmp fcn.0052ae82
cmp esi, 0x3e
jae 0x52ae16
lea ecx, [esi - 4]
jmp fcn.0052ae82
jbe 0x52b324
ja 0x52a6c1
push cx
lea esp, [esp]
mov word [esp], cx
lea esp, [esp + 2]
push ebx
push eax
jmp 0x52b4a0
call 0x4e9283
mov eax, dword [ebp + 0xc]
pop ecx
add esi, 4
setnp ch
lea ecx, [eax + edx]
setbe ch
mov ecx, dword [esp]
pushal
mov byte [esp + 7], dl
mov dword [esp + 0x10], ebp
push dword [esp + 0xe]
push word [esp + 0x11]
push dword [esp + 0x24]
mov dword [esp + 0x1d], esp
mov dword [esp + 0x19], esi
lea esp, [esp + 2]
lea esp, [esp + 0x2c]
mov dword [eax], esi
pop esi
xor eax, eax
pop ebx
leave
ret