Function at 0x10028e80
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10062b50
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
mov eax, dword [0x10077604]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov al, byte [esi + 0x20]
test al, al
je 0x100290ce
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x10028ec3
dec eax
mov dword [esi + 0x24], eax
mov edi, dword [esi + 0x24]
test edi, edi
js 0x100290bd
mov eax, 0x91a2b3c5
mov dword [ebp - 0x14], 0xf
imul edi
mov ecx, edi
mov dword [ebp - 0x18], 0
add edx, edi
mov byte [ebp - 0x28], 0
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0xe10
sub ecx, eax
mov eax, 0x88888889
imul ecx
mov eax, 0x88888889
add edx, ecx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
imul edi
add edx, edi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, ecx
shl eax, 4
sub eax, ecx
shl eax, 2
sub edi, eax
mov dword [ebp - 4], 0
push edi
push ebx
cmp ebx, 0xa
jae 0x10028f9c
sub esp, 0x18
cmp edi, 0xa
jae 0x10028f72
mov bh, 0x30
mov byte [ebp - 0x2c], 0
mov cl, 0x15
mov byte [ebp - 0x34], bh
mov dl, 0x54
xor al, al
xor ah, ah
mov ch, cl
mov bl, 0xa
mov dh, dl
xor ch, bh
xor al, bh
xor cl, bh
mov byte [ebp - 0x2e], ch
xor dl, bh
xor bl, bh
xor ah, bh
xor dh, bh
mov byte [ebp - 0x2d], dh
jmp 0x10028fef
mov dh, 0x6f
mov byte [ebp - 0x2d], 0
mov cl, 0x4a
mov byte [ebp - 0x34], dh
mov dl, 0xb
mov byte [ebp - 0x2d], 0
mov ah, cl
mov al, 0x5f
mov bl, 0x55
mov ch, dl
xor al, dh
xor cl, dh
xor dl, dh
xor bl, dh
xor ah, dh
xor ch, dh
mov byte [ebp - 0x2e], ch
jmp 0x10028fef
cmp edi, 0xa
jae 0x10028fcb
mov dh, 0x5a
mov byte [ebp - 0x2d], 0
mov al, 0x7f
mov byte [ebp - 0x34], dh
mov cl, 0x3e
mov byte [ebp - 0x2d], 0
mov ah, al
mov dl, 0x60
mov bl, 0x6a
mov ch, cl
xor al, dh
xor cl, dh
xor dl, dh
xor bl, dh
xor ah, dh
xor ch, dh
mov byte [ebp - 0x2e], ch
jmp 0x10028fec
mov ch, 0x55
mov byte [ebp - 0x2e], 0
mov al, 0x70
mov byte [ebp - 0x34], ch
mov cl, 0x31
mov byte [ebp - 0x2e], 0
mov bl, al
mov dl, 0x6f
mov ah, cl
xor al, ch
xor cl, ch
xor dl, ch
xor bl, ch
xor ah, ch
sub esp, 0x18
mov byte [ebp - 0x33], al
mov byte [ebp - 0x2f], ah
lea eax, [ebp - 0x33]
mov byte [ebp - 0x32], cl
mov ecx, esp
push eax
mov byte [ebp - 0x31], dl
mov byte [ebp - 0x30], bl
call fcn.100017e0
lea eax, [ebp - 0x68]
push eax
call fcn.100322e0
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10007e10
lea ecx, [ebp - 0x68]
call fcn.10001840
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x10069af0]
cmovae eax, dword [ebp - 0x28]
xor ecx, ecx
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x5f712759
mov byte [ebp - 0x3c], 0
nop word [eax + eax]
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x13
jb 0x10029050
sub esp, 0x18
mov byte [ebp - 0x3c], 0
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.100017e0
lea eax, [ebp - 0x68]
push eax
call fcn.100322e0
push eax
push dword [esi + 8]
mov byte [ebp - 4], 1
call fcn.100136d0
mov eax, dword [ebp - 0x54]
add esp, 0x28
cmp eax, 0x10
jb 0x1002909f
inc eax
push 1
push eax
push dword [ebp - 0x68]
call fcn.10002610
add esp, 0xc
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
cmp eax, 0x10
jb 0x100290bd
inc eax
push 1
push eax
push dword [ebp - 0x28]
call fcn.10002610
add esp, 0xc
cmp dword [esi + 0x24], 0
jg 0x100290ce
mov byte [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov al, byte [esi + 0x21]
test al, al
je 0x100292d7
movzx eax, word [esi + 0x28]
test ax, ax
jle 0x100290e7
dec eax
mov word [esi + 0x28], ax
movzx edi, word [esi + 0x28]
mov eax, edi
test ax, ax
js 0x100292c6
movsx eax, di
mov ecx, 0xe10
cdq
idiv ecx
mov eax, 0x88888889
mov dword [ebp - 0x14], 0xf
mov ecx, edx
mov dword [ebp - 0x18], 0
imul ecx
mov byte [ebp - 0x28], 0
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movzx ecx, ax
mov eax, edi
cwde
mov edi, 0x3c
cdq
idiv edi
movzx eax, dx
mov dword [ebp - 4], 2
push eax
push ecx
cmp ecx, 0xa
jae 0x100291aa
sub esp, 0x18
cmp eax, 0xa
jae 0x10029180
mov bh, 0x3f
mov byte [ebp - 0x2c], 0
mov al, 0xf
mov byte [ebp - 0x34], bh
mov cl, 0x1a
mov byte [ebp - 0x2c], 0
mov dl, 0x5b
mov ah, al
mov ch, cl
mov bl, 5
mov dh, dl
xor ch, bh
xor al, bh
mov byte [ebp - 0x2e], ch
xor cl, bh
xor dl, bh
xor bl, bh
xor ah, bh
xor dh, bh
mov byte [ebp - 0x2d], dh
jmp 0x100291fd
mov dh, 0x59
mov byte [ebp - 0x2d], 0
mov cl, 0x7c
mov byte [ebp - 0x34], dh
mov dl, 0x3d
mov byte [ebp - 0x2d], 0
mov ah, cl
mov al, 0x69
mov bl, 0x63
mov ch, dl
xor al, dh
xor cl, dh
xor dl, dh
xor bl, dh
xor ah, dh
xor ch, dh
mov byte [ebp - 0x2e], ch
jmp 0x100291fd
cmp eax, 0xa
jae 0x100291d9
mov dh, 0x49
mov byte [ebp - 0x2d], 0
mov al, 0x6c
mov byte [ebp - 0x34], dh
mov cl, 0x2d
mov byte [ebp - 0x2d], 0
mov ah, al
mov dl, 0x73
mov bl, 0x79
mov ch, cl
xor al, dh
xor cl, dh
xor dl, dh
xor bl, dh
xor ah, dh
xor ch, dh
mov byte [ebp - 0x2e], ch
jmp 0x100291fa
mov ch, 0x4a
mov byte [ebp - 0x2e], 0
mov al, 0x6f
mov byte [ebp - 0x34], ch
mov cl, 0x2e
mov byte [ebp - 0x2e], 0
mov bl, al
mov dl, 0x70
mov ah, cl
xor al, ch
xor cl, ch
xor dl, ch
xor bl, ch
xor ah, ch
sub esp, 0x18
mov byte [ebp - 0x33], al
mov byte [ebp - 0x2f], ah
lea eax, [ebp - 0x33]
mov byte [ebp - 0x32], cl
mov ecx, esp
push eax
mov byte [ebp - 0x31], dl
mov byte [ebp - 0x30], bl
call fcn.100017e0
lea eax, [ebp - 0x68]
push eax
call fcn.100322e0
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10007e10
lea ecx, [ebp - 0x68]
call fcn.10001840
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x10069ab0]
cmovae eax, dword [ebp - 0x28]
xor ecx, ecx
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x41176912
mov word [ebp - 0x3c], 0x6f
nop word [eax + eax]
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x14
jb 0x10029260
sub esp, 0x18
mov byte [ebp - 0x3b], 0
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.100017e0
lea eax, [ebp - 0x68]
push eax
call fcn.100322e0
push eax
push dword [esi + 0xc]
mov byte [ebp - 4], 3
call fcn.100136d0
mov eax, dword [ebp - 0x54]
add esp, 0x28
cmp eax, 0x10
jb 0x100292af
push 1
inc eax
push eax
push dword [ebp - 0x68]
call fcn.10002610
add esp, 0xc
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x100292c6
push 1
inc eax
push eax
push dword [ebp - 0x28]
call fcn.10002610
add esp, 0xc
cmp word [esi + 0x28], 0
jg 0x100292d7
xor eax, eax
mov byte [esi + 0x21], 0
mov word [esi + 0x28], ax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1005f6be
mov esp, ebp
pop ebp
ret