Function at 0x4ce6c0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
lea eax, [ebp + 0x14]
push eax
lea ecx, [ebp + 0xc]
call fcn.0044f920
test al, al
jne 0x4cea32
xor edi, edi
cmp byte [ebp + 0x10], 0
mov ecx, dword [ebp + 0xc]
jne 0x4ce721
cmp ecx, edi
je 0x4ce718
mov eax, dword [ecx + 0x20]
cmp dword [eax], edi
je 0x4ce704
mov edx, dword [ecx + 0x30]
cmp dword [edx], edi
jle 0x4ce704
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4ce70e
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
mov ecx, dword [ebp + 0xc]
cmp eax, 0xffffffff
je 0x4ce718
mov byte [ebp + 0x11], al
jmp 0x4ce71d
xor ecx, ecx
mov dword [ebp + 0xc], ecx
mov byte [ebp + 0x10], 1
mov eax, dword [ebp + 0x20]
mov dl, byte [ebp + 0x11]
mov bl, dl
cmp eax, edi
je 0x4ce77d
mov esi, dword [eax + 0x24]
movzx ecx, dl
shr ecx, 2
movsx dx, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
lea ecx, [eax + 0x24]
movzx edx, dx
cmp dword [esi], edi
je 0x4ce763
mov esi, dword [eax + 0x34]
cmp dword [esi], edi
jle 0x4ce763
mov eax, esi
dec dword [eax]
mov eax, dword [ecx]
mov ecx, dword [eax]
lea esi, [ecx + 2]
mov dword [eax], esi
mov word [ecx], dx
mov eax, edx
jmp 0x4ce770
mov esi, dword [eax]
mov ecx, eax
mov eax, dword [esi + 0xc]
push edx
call eax
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
mov ecx, dword [ebp + 0xc]
jne 0x4ce781
mov byte [ebp + 0x1c], 1
cmp ecx, edi
je 0x4ce7ba
mov edx, dword [ecx + 0x20]
lea eax, [ecx + 0x20]
cmp dword [edx], edi
je 0x4ce7a8
mov edx, dword [ecx + 0x30]
cmp dword [edx], edi
jle 0x4ce7a8
mov ecx, edx
dec dword [ecx]
mov eax, dword [eax]
mov ecx, dword [eax]
lea edx, [ecx + 1]
mov dword [eax], edx
movzx eax, byte [ecx]
jmp 0x4ce7af
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
cmp eax, 0xffffffff
je 0x4ce7ba
mov byte [ebp + 0x10], 0
jmp 0x4ce7c1
mov dword [ebp + 0xc], edi
mov byte [ebp + 0x10], 1
lea eax, [ebp + 0x14]
push eax
lea ecx, [ebp + 0xc]
call fcn.0044f920
test al, al
jne 0x4cea46
mov ecx, dword [ebp + 0xc]
cmp byte [ebp + 0x10], al
jne 0x4ce813
cmp ecx, edi
je 0x4ce80a
mov eax, dword [ecx + 0x20]
cmp dword [eax], edi
je 0x4ce7f6
mov edx, dword [ecx + 0x30]
cmp dword [edx], edi
jle 0x4ce7f6
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4ce800
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
mov ecx, dword [ebp + 0xc]
cmp eax, 0xffffffff
je 0x4ce80a
mov byte [ebp + 0x11], al
jmp 0x4ce80f
xor ecx, ecx
mov dword [ebp + 0xc], ecx
mov byte [ebp + 0x10], 1
mov eax, dword [ebp + 0x20]
mov dl, byte [ebp + 0x11]
mov byte [ebp - 5], dl
cmp eax, edi
je 0x4ce87b
mov esi, dword [eax + 0x24]
and bl, 3
shl bl, 4
movzx edx, dl
movzx ecx, bl
shr edx, 4
or ecx, edx
movsx cx, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
lea edx, [eax + 0x24]
movzx ecx, cx
cmp dword [esi], edi
je 0x4ce861
mov esi, dword [eax + 0x34]
cmp dword [esi], edi
jle 0x4ce861
mov eax, esi
dec dword [eax]
mov eax, dword [edx]
mov edx, dword [eax]
lea esi, [edx + 2]
mov dword [eax], esi
mov word [edx], cx
mov eax, ecx
jmp 0x4ce86e
mov edx, dword [eax]
push ecx
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
mov ecx, dword [ebp + 0xc]
jne 0x4ce87f
mov byte [ebp + 0x1c], 1
cmp ecx, edi
je 0x4ce8b8
mov edx, dword [ecx + 0x20]
lea eax, [ecx + 0x20]
cmp dword [edx], edi
je 0x4ce8a6
mov edx, dword [ecx + 0x30]
cmp dword [edx], edi
jle 0x4ce8a6
mov ecx, edx
dec dword [ecx]
mov eax, dword [eax]
mov ecx, dword [eax]
lea edx, [ecx + 1]
mov dword [eax], edx
movzx eax, byte [ecx]
jmp 0x4ce8ad
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
cmp eax, 0xffffffff
je 0x4ce8b8
mov byte [ebp + 0x10], 0
jmp 0x4ce8bf
mov dword [ebp + 0xc], edi
mov byte [ebp + 0x10], 1
lea eax, [ebp + 0x14]
push eax
lea ecx, [ebp + 0xc]
call fcn.0044f920
test al, al
jne 0x4ceb0d
mov ecx, dword [ebp + 0xc]
cmp byte [ebp + 0x10], al
jne 0x4ce911
cmp ecx, edi
je 0x4ce908
mov eax, dword [ecx + 0x20]
cmp dword [eax], edi
je 0x4ce8f4
mov edx, dword [ecx + 0x30]
cmp dword [edx], edi
jle 0x4ce8f4
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4ce8fe
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
mov ecx, dword [ebp + 0xc]
cmp eax, 0xffffffff
je 0x4ce908
mov byte [ebp + 0x11], al
jmp 0x4ce90d
xor ecx, ecx
mov dword [ebp + 0xc], ecx
mov byte [ebp + 0x10], 1
mov eax, dword [ebp + 0x20]
mov dl, byte [ebp + 0x11]
mov bl, dl
cmp eax, edi
je 0x4ce97f
mov cl, byte [ebp - 5]
mov esi, dword [eax + 0x24]
and cl, 0xf
add cl, cl
add cl, cl
movzx edx, dl
movzx ecx, cl
shr edx, 6
or ecx, edx
movsx cx, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
lea edx, [eax + 0x24]
movzx ecx, cx
cmp dword [esi], edi
je 0x4ce962
mov esi, dword [eax + 0x34]
cmp dword [esi], edi
jle 0x4ce962
mov eax, esi
dec dword [eax]
mov eax, dword [edx]
mov edx, dword [eax]
lea esi, [edx + 2]
mov dword [eax], esi
mov word [edx], cx
mov eax, ecx
jmp 0x4ce96f
mov edx, dword [eax]
push ecx
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0xc]
jne 0x4ce983
mov byte [ebp + 0x1c], 1
cmp eax, edi
je 0x4ce9d7
mov esi, dword [eax + 0x24]
movzx edx, bl
and edx, 0x3f
movsx cx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
movzx edx, cx
lea ecx, [eax + 0x24]
cmp dword [esi], edi
je 0x4ce9bd
mov esi, dword [eax + 0x34]
cmp dword [esi], edi
jle 0x4ce9bd
mov eax, esi
dec dword [eax]
mov eax, dword [ecx]
mov ecx, dword [eax]
lea esi, [ecx + 2]
mov dword [eax], esi
mov word [ecx], dx
mov eax, edx
jmp 0x4ce9ca
mov esi, dword [eax]
push edx
mov edx, dword [esi + 0xc]
mov ecx, eax
call edx
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
mov ecx, dword [ebp + 0xc]
jne 0x4ce9db
mov byte [ebp + 0x1c], 1
cmp ecx, edi
je 0x4cea14
mov edx, dword [ecx + 0x20]
lea eax, [ecx + 0x20]
cmp dword [edx], edi
je 0x4cea02
mov edx, dword [ecx + 0x30]
cmp dword [edx], edi
jle 0x4cea02
mov ecx, edx
dec dword [ecx]
mov eax, dword [eax]
mov ecx, dword [eax]
lea edx, [ecx + 1]
mov dword [eax], edx
movzx eax, byte [ecx]
jmp 0x4cea09
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
cmp eax, 0xffffffff
je 0x4cea14
mov byte [ebp + 0x10], 0
jmp 0x4cea1b
mov dword [ebp + 0xc], edi
mov byte [ebp + 0x10], 1
lea eax, [ebp + 0x14]
push eax
lea ecx, [ebp + 0xc]
call fcn.0044f920
test al, al
je 0x4ce6e2
mov esi, dword [ebp + 8]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x20]
mov dword [esi], ecx
mov dword [esi + 4], edx
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x20]
cmp ecx, edi
je 0x4cea9e
mov esi, dword [ecx + 0x24]
and bl, 3
shl bl, 4
movzx edx, bl
movsx ax, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
movzx edx, ax
lea eax, [ecx + 0x24]
cmp dword [esi], edi
je 0x4cea86
mov esi, dword [ecx + 0x34]
cmp dword [esi], edi
jle 0x4cea86
mov ecx, esi
dec dword [ecx]
mov eax, dword [eax]
mov ecx, dword [eax]
lea esi, [ecx + 2]
mov dword [eax], esi
mov word [ecx], dx
mov eax, edx
jmp 0x4cea91
mov eax, dword [ecx]
push edx
mov edx, dword [eax + 0xc]
call edx
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
mov ecx, dword [ebp + 0x20]
jne 0x4ceaa2
mov byte [ebp + 0x1c], 1
mov edx, dword [ebp + 0x1c]
mov ebx, 2
mov dword [ebp - 0x10], edx
mov esi, ecx
nop
cmp esi, edi
je 0x4ceaf2
mov eax, dword [esi + 0x24]
cmp dword [eax], edi
je 0x4ceada
mov ecx, dword [esi + 0x34]
cmp dword [ecx], edi
jle 0x4ceada
mov eax, ecx
dec dword [eax]
mov eax, dword [esi + 0x24]
mov ecx, dword [eax]
lea edx, [ecx + 2]
mov dword [eax], edx
mov eax, 0x3d
mov word [ecx], ax
jmp 0x4ceaf6
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
push 0x3d
mov ecx, esi
call eax
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
jne 0x4ceaf6
mov byte [ebp - 0x10], 1
dec ebx
cmp ebx, edi
jg 0x4ceab0
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov dword [eax], edx
mov dword [eax + 4], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x20]
cmp ecx, edi
je 0x4ceb68
mov al, byte [ebp - 5]
mov esi, dword [ecx + 0x24]
and al, 0xf
add al, al
add al, al
movzx eax, al
movsx dx, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
lea eax, [ecx + 0x24]
movzx edx, dx
cmp dword [esi], edi
je 0x4ceb50
mov esi, dword [ecx + 0x34]
cmp dword [esi], edi
jle 0x4ceb50
mov ecx, esi
dec dword [ecx]
mov eax, dword [eax]
mov ecx, dword [eax]
lea esi, [ecx + 2]
mov dword [eax], esi
mov word [ecx], dx
mov eax, edx
jmp 0x4ceb5b
mov eax, dword [ecx]
push edx
mov edx, dword [eax + 0xc]
call edx
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
mov ecx, dword [ebp + 0x20]
jne 0x4ceb6c
mov byte [ebp + 0x1c], 1
mov edx, dword [ebp + 0x1c]
push ecx
push edx
mov eax, 1
lea edi, [ebp - 0x10]
call fcn.004ceba0
mov edx, dword [eax]
mov ecx, dword [ebp + 8]
mov eax, dword [eax + 4]
add esp, 8
pop edi
pop esi
mov dword [ecx + 4], eax
mov dword [ecx], edx
mov eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret