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

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov edi, dword [0x53ed90]
mov ebx, edx
lea eax, [edi + 2]
lea esi, [edi + 1]
imul eax, esi
imul eax, edi
mov dword [ebp - 4], ecx
cdq
mov ecx, 0x18
idiv ecx
cmp edx, 0xf
jne 0x41c05f
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_OpenThread]
mov ecx, dword [0x53ed90]
mov edx, 7
test eax, eax
cmove ecx, edx
mov dword [0x53ed90], ecx
mov ecx, ebx
call fcn.0041bf90
mov edi, eax
mov dword [ebp - 8], edi
call fcn.0041bea0
test al, al
jne 0x41c103
mov edx, dword [0x53ed90]
xor esi, esi
mov ecx, esi
and ecx, 1
dec ecx
not ecx
and ecx, edx
mov eax, esi
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, edx
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
sar eax, 1
not ecx
and ecx, edx
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, edx
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
sar eax, 1
not ecx
and ecx, edx
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, edx
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
sar eax, 1
not ecx
and ecx, edx
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, edx
sar ecx, 1
xor eax, ecx
inc esi
add edx, eax
cmp esi, 0x100
jl 0x41c080
mov dword [0x53ed90], edx
mov ecx, dword [ebp - 4]
test ecx, ecx
je 0x41c1ee
mov esi, dword [ebp + 8]
test esi, esi
je 0x41c1ee
cmp edi, dword [ebp + 0xc]
ja 0x41c1ee
xor eax, eax
test ebx, ebx
je 0x41c1b0
cmp eax, ebx
jae 0x41c137
movzx edx, byte [eax + ecx]
inc eax
jmp 0x41c139
xor edx, edx
cmp eax, ebx
jae 0x41c144
movzx edi, byte [eax + ecx]
inc eax
jmp 0x41c146
xor edi, edi
cmp eax, ebx
jae 0x41c151
movzx ecx, byte [eax + ecx]
inc eax
jmp 0x41c153
xor ecx, ecx
shl edx, 8
add edx, edi
shl edx, 8
add edx, ecx
mov ecx, edx
shr ecx, 0x12
and ecx, 0x3f
add esi, 4
movzx ecx, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_drhoqnrbsjocmbidnimkulnmokopbbjkdftdeebpsqtnshimrkiiekqpnsjamkseuraoapolrurocmjofrbdigjgooidjakhnuuf]
mov byte [esi - 4], cl
mov ecx, edx
shr ecx, 0xc
and ecx, 0x3f
movzx ecx, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_drhoqnrbsjocmbidnimkulnmokopbbjkdftdeebpsqtnshimrkiiekqpnsjamkseuraoapolrurocmjofrbdigjgooidjakhnuuf]
mov byte [esi - 3], cl
mov ecx, edx
shr ecx, 6
and ecx, 0x3f
and edx, 0x3f
movzx ecx, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_drhoqnrbsjocmbidnimkulnmokopbbjkdftdeebpsqtnshimrkiiekqpnsjamkseuraoapolrurocmjofrbdigjgooidjakhnuuf]
mov byte [esi - 2], cl
movzx ecx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_drhoqnrbsjocmbidnimkulnmokopbbjkdftdeebpsqtnshimrkiiekqpnsjamkseuraoapolrurocmjofrbdigjgooidjakhnuuf]
mov byte [esi - 1], cl
mov ecx, dword [ebp - 4]
cmp eax, ebx
jb 0x41c130
mov esi, dword [ebp + 8]
mov edi, dword [ebp - 8]
mov eax, 0xaaaaaaab
mul ebx
shr edx, 1
xor ecx, ecx
lea eax, [edx + edx*2]
sub ebx, eax
cmp dword [ebx*4 + 0x5221f8], ecx
jle 0x41c1e0
lea eax, [esi - 1]
add eax, edi
mov edi, edi
mov byte [eax], 0x3d
inc ecx
lea eax, [eax - 1]
cmp ecx, dword [ebx*4 + 0x5221f8]
jl 0x41c1d0
mov eax, dword [ebp + 0x10]
mov dword [eax], edi
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret