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

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
lea ecx, [ebp - 8]
mov edi, ebx
mov byte [ebp - 1], 0
call fcn.10045faf
cmp byte [ebp + 0x10], 0
jne 0x1004c443
cmp ebx, 0x14
jge 0x1004c3a1
push 0x14
pop edi
lea eax, [edi + 4]
push eax
lea ecx, [ebp - 8]
call fcn.10045ff1
mov esi, dword [ebp - 8]
lea eax, [edi + 4]
push eax
push 0
push esi
call fcn.100b40f0
lea eax, [ebx + 1]
push eax
push dword [ebp + 8]
push esi
call fcn.100144ff
add esp, 0x18
xor eax, eax
test ebx, ebx
jle 0x1004c3e5
mov cl, byte [ebp - 1]
mov edx, dword [ebp + 8]
shl cl, 1
add cl, byte [eax + edx]
inc eax
cmp eax, ebx
mov byte [ebp - 1], cl
jl 0x1004c3d2
mov cl, byte [ebp - 1]
shr cl, 5
mov eax, ebx
sar eax, 2
add al, cl
mov cl, byte [ebp - 1]
shl cl, 3
add al, cl
mov cl, byte [ebp - 1]
shr cl, 2
add al, cl
add al, bl
movzx eax, al
cdq
push 0x40
pop ecx
idiv ecx
xor ecx, ecx
test edi, edi
mov al, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp - 1], al
jle 0x1004c441
mov eax, dword [ebp - 8]
add eax, ecx
mov dword [ebp + 8], eax
mov eax, ecx
cdq
push 0x14
pop ebx
idiv ebx
mov eax, dword [ebp + 8]
mov dl, byte [edx + 0x100cdb9c]
xor dl, byte [eax]
xor dl, byte [ebp - 1]
inc ecx
cmp ecx, edi
mov byte [eax], dl
jl 0x1004c41c
mov ebx, edi
lea eax, [ebx + ebx*2 + 0x10]
mov ebx, dword [ebp + 0xc]
push eax
mov ecx, ebx
call fcn.10046168
mov eax, dword [ebx]
xor edx, edx
push 2
mov word [eax], dx
pop ecx
add eax, ecx
mov word [eax], dx
cmp byte [esi], dl
jne 0x1004c46c
mov esi, eax
jmp 0x1004c555
cmp byte [ebp + 0x10], 0
jne 0x1004c48a
movzx bx, byte [ebp - 1]
mov word [eax], 0x23
add eax, ecx
mov word [eax], 0x23
add eax, ecx
mov word [eax], bx
add eax, ecx
mov word [eax], dx
movzx ebx, byte [esi]
add edi, esi
inc esi
mov byte [ebp + 0xb], 8
cmp byte [ebp + 0xb], 6
jge 0x1004c4a7
cmp byte [ebp + 0xb], 0
jle 0x1004c509
cmp esi, edi
jne 0x1004c50b
mov dl, bl
and dl, 0x3f
cmp byte [ebp + 0x10], 0
je 0x1004c4bd
movzx ecx, dl
mov cl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
jmp 0x1004c4ee
test dl, dl
jne 0x1004c4c6
add dl, 0x2b
jmp 0x1004c4ec
cmp dl, 1
jne 0x1004c4d0
add dl, 0x2e
jmp 0x1004c4ec
cmp dl, 0xc
jae 0x1004c4da
add dl, 0x2e
jmp 0x1004c4ec
cmp dl, 0x26
jae 0x1004c4e4
add dl, 0x35
jmp 0x1004c4ec
cmp dl, 0x40
jae 0x1004c4ec
add dl, 0x3b
mov cl, dl
movzx cx, cl
mov word [eax], cx
inc eax
inc eax
shr ebx, 6
add byte [ebp + 0xb], 0xfa
jns 0x1004c497
mov word [eax], 0x3d
inc eax
inc eax
jmp 0x1004c497
cmp esi, edi
jae 0x1004c542
movzx edx, byte [esi]
mov cl, byte [ebp + 0xb]
add byte [ebp + 0xb], 8
shl edx, cl
or ebx, edx
inc esi
cmp esi, edi
jae 0x1004c542
movzx edx, byte [esi]
mov cl, byte [ebp + 0xb]
add byte [ebp + 0xb], 8
shl edx, cl
or ebx, edx
inc esi
cmp esi, edi
jae 0x1004c542
movzx edx, byte [esi]
mov cl, byte [ebp + 0xb]
shl edx, cl
or ebx, edx
inc esi
add byte [ebp + 0xb], 8
cmp byte [ebp + 0xb], 0
jg 0x1004c497
and word [eax], 0
mov eax, dword [ebp + 0xc]
mov esi, dword [eax]
lea ecx, [ebp - 8]
call fcn.1003f96c
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret