Function at 0x1005ca50
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov ebx, dword [ebp + 0xc]
lea eax, [edx + 0x3f]
push esi
shr eax, 6
mov esi, edx
sub esi, eax
mov dword [ebp - 8], edx
inc esi
mov dword [ebp - 0x10], ecx
push edi
xor edi, edi
mov dword [ebp - 0xc], edi
lea eax, [esi + esi*2]
shr eax, 2
cmp eax, dword [ebx]
ja 0x1005cd1f
cmp edx, 3
jbe 0x1005cd1a
nop dword [eax]
lea eax, [ebp - 0xc]
push eax
lea edx, [ebp - 8]
call fcn.1005c9b0
add esp, 4
test eax, eax
jne 0x1005cd0e
mov eax, dword [ebp - 0xc]
mov dl, byte [eax + ecx]
inc eax
mov byte [ebp - 2], dl
mov dword [ebp - 0xc], eax
test dl, dl
je 0x1005cd15
dec dword [ebp - 8]
lea eax, [ebp - 0xc]
push eax
lea edx, [ebp - 8]
call fcn.1005c9b0
add esp, 4
test eax, eax
jne 0x1005cd24
mov eax, dword [ebp - 0xc]
dec dword [ebp - 8]
mov dl, byte [eax + ecx]
inc eax
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
mov byte [ebp - 1], dl
lea edx, [ebp - 8]
push eax
call fcn.1005c9b0
add esp, 4
test eax, eax
jne 0x1005cd24
mov eax, dword [ebp - 0xc]
lea edx, [ebp - 8]
dec dword [ebp - 8]
mov bl, byte [eax + ecx]
inc eax
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push eax
mov byte [ebp - 3], bl
call fcn.1005c9b0
add esp, 4
test eax, eax
jne 0x1005cd24
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
dec esi
mov dword [ebp - 8], esi
mov bh, byte [eax + ecx]
inc eax
mov dword [ebp - 0xc], eax
cmp bl, 0x3d
jne 0x1005cb42
cmp bh, bl
jne 0x1005cd02
mov dl, byte [ebp - 2]
cmp dl, 0x2b
jb 0x1005cd02
mov al, byte [ebp - 1]
cmp al, 0x2b
jb 0x1005cd02
cmp bl, 0x2b
jb 0x1005cd02
cmp bh, 0x2b
jb 0x1005cd02
cmp dl, 0x7a
ja 0x1005cd02
cmp al, 0x7a
ja 0x1005cd02
cmp bl, 0x7a
ja 0x1005cd02
cmp bh, 0x7a
ja 0x1005cd02
xor ecx, ecx
cmp bh, 0x3d
setne cl
xor eax, eax
cmp bl, 0x3d
setne al
add ecx, edi
inc eax
add eax, ecx
mov ecx, dword [ebp + 0xc]
cmp eax, dword [ecx]
ja 0x1005cd1f
sub dl, 0x2b
mov bl, 0x3f
sub bl, dl
movzx edx, dl
mov ecx, edx
shr bl, 7
and ecx, 0xf
dec bl
or ecx, 0x40
mov al, bl
not al
and edx, 0x3f
mov cl, byte [ecx + 0x100a6808]
and cl, al
mov al, byte [edx + 0x100a6808]
and al, bl
mov bl, 0x3f
or cl, al
mov al, byte [ebp - 1]
sub al, 0x2b
mov byte [ebp - 4], cl
movzx edx, al
sub bl, al
mov ecx, edx
shr bl, 7
and ecx, 0xf
dec bl
or ecx, 0x40
and edx, 0x3f
mov al, bl
not al
mov ah, byte [ecx + 0x100a6808]
mov ch, byte [ebp - 3]
and ah, al
mov al, byte [edx + 0x100a6808]
and al, bl
or ah, al
mov byte [ebp - 2], ah
cmp ch, 0x3d
jne 0x1005cc22
xor al, al
jmp 0x1005cc56
mov al, ch
mov bl, 0x3f
sub al, 0x2b
sub bl, al
movzx edx, al
mov eax, edx
shr bl, 7
and eax, 0xf
dec bl
or eax, 0x40
and edx, 0x3f
mov cl, bl
not cl
mov al, byte [eax + 0x100a6808]
mov ah, byte [ebp - 2]
and al, cl
mov cl, byte [edx + 0x100a6808]
and cl, bl
or al, cl
cmp bh, 0x3d
jne 0x1005cc5f
xor dl, dl
jmp 0x1005cc94
mov cl, bh
mov bl, 0x3f
sub cl, 0x2b
movzx esi, cl
sub bl, cl
mov edx, esi
shr bl, 7
and edx, 0xf
dec bl
or edx, 0x40
and esi, 0x3f
mov cl, bl
not cl
mov dl, byte [edx + 0x100a6808]
and dl, cl
mov cl, byte [esi + 0x100a6808]
mov esi, dword [ebp - 8]
and cl, bl
or dl, cl
mov dh, byte [ebp - 4]
cmp dh, 0xff
je 0x1005cd02
cmp ah, 0xff
je 0x1005cd02
cmp al, 0xff
je 0x1005cd02
cmp dl, 0xff
je 0x1005cd02
mov bl, al
shl dh, 2
mov cl, ah
shl bl, 6
shr cl, 4
or bl, dl
or cl, dh
mov edx, dword [ebp + 8]
mov byte [edi + edx], cl
inc edi
cmp ch, 0x3d
je 0x1005ccd3
shr al, 2
shl ah, 4
or al, ah
mov byte [edi + edx], al
inc edi
cmp bh, 0x3d
je 0x1005cce8
mov ecx, dword [ebp - 0x10]
mov byte [edi + edx], bl
inc edi
cmp esi, 3
ja 0x1005ca90
mov ebx, dword [ebp + 0xc]
test edx, edx
je 0x1005ccf7
cmp dword [ebx], edi
jbe 0x1005ccf7
mov byte [edi + edx], 0
mov dword [ebx], edi
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffff66
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffff7c
jne 0x1005cd24
mov edx, dword [ebp + 8]
jmp 0x1005cce8
mov edx, dword [ebp + 8]
jmp 0x1005cceb
mov eax, 0xffffff53
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret