Function at 0x4c9577
Capabilities:
Encode data using base64

Disassembly:
sub esp, 0x10
push ebx
push ebp
mov ebp, edx
mov eax, ecx
mov dword [esp + 0xc], eax
push esi
push edi
test ebp, ebp
je 0x4c9592
test eax, eax
je 0x4c97c8
mov edi, dword [esp + 0x24]
test edi, edi
je 0x4c97c8
cmp dword [esp + 0x28], 0
je 0x4c97c8
mov esi, dword [0x7be030]
test ebp, ebp
jne 0x4c9605
mov eax, fcn.00634313
test esi, esi
cmove esi, eax
xor ebx, ebx
inc ebx
mov ecx, esi
push ebx
call dword [0x68f308]
call esi
pop ecx
test eax, eax
jne 0x4c95f4
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x4c97f4
push 3
pop ebx
mov ecx, ebx
mov dword [esi], ebx
call fcn.004cab21
mov dword [esi + 0x10], 0xa9
jmp 0x4c97e3
mov byte [eax], 0
mov dword [edi], eax
mov eax, dword [esp + 0x28]
and dword [eax], 0
jmp 0x4c97f6
push 3
xor edx, edx
lea eax, [ebp + 2]
pop ebx
div ebx
mov edi, eax
mov eax, fcn.00634313
shl edi, 2
test esi, esi
mov dword [esp + 0x1c], edi
cmove esi, eax
lea ecx, [edi + 1]
push ecx
mov ecx, esi
call dword [0x68f308]
call esi
mov edx, eax
pop ecx
test edx, edx
jne 0x4c9658
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x4c97f4
mov ecx, ebx
mov dword [esi], ebx
call fcn.004cab21
mov dword [esi + 0x10], 0xb9
jmp 0x4c97e3
push 2
pop eax
xor ecx, ecx
mov dword [esp + 0x18], eax
xor esi, esi
mov dword [esp + 0x10], ecx
cmp ebp, eax
jbe 0x4c9705
mov ecx, dword [esp + 0x14]
add ecx, eax
xor edi, edi
mov dword [esp + 0x10], ecx
movzx eax, byte [ecx - 2]
add esi, ebx
shr eax, 2
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [edi + edx], al
movzx ecx, byte [ecx - 1]
mov eax, dword [esp + 0x10]
shr ecx, 4
movzx eax, byte [eax - 2]
shl eax, 4
or ecx, eax
and ecx, 0x3f
mov al, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [edi + edx + 1], al
mov eax, dword [esp + 0x10]
movzx ecx, byte [eax]
movzx eax, byte [eax - 1]
shl eax, 2
shr ecx, 6
or ecx, eax
and ecx, 0x3f
mov al, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov ecx, dword [esp + 0x10]
mov byte [edi + edx + 2], al
movzx eax, byte [ecx]
add ecx, ebx
and eax, 0x3f
mov dword [esp + 0x10], ecx
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [edi + edx + 3], al
add edi, 4
mov eax, dword [esp + 0x18]
add eax, ebx
mov dword [esp + 0x18], eax
cmp eax, ebp
jb 0x4c967b
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
cmp esi, ebp
jae 0x4c97b4
lea eax, [ebp - 1]
lea edi, [ecx + 1]
lfence
cmp eax, esi
jne 0x4c975c
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
movzx eax, byte [esi + ecx]
shr eax, 2
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [edx + ebp], al
movzx eax, byte [esi + ecx]
and eax, ebx
shl eax, 4
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [edi + edx], al
mov eax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
inc edi
cmp eax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__
jne 0x4c97b4
mov word [edi + edx], 0x3d3d
add edi, 2
jmp 0x4c97b4
mov ebx, dword [esp + 0x14]
movzx eax, byte [esi + ebx]
shr eax, 2
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [ecx + edx], al
movzx ecx, byte [esi + ebx + 1]
movzx eax, byte [esi + ebx]
shl eax, 4
shr ecx, 4
or ecx, eax
and ecx, 0x3f
mov al, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [edi + edx], al
movzx eax, byte [esi + ebx + 1]
and eax, 0xf
mov al, byte [eax*4 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
mov byte [edi + edx + 1], al
mov eax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
add edi, 2
cmp eax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__
jne 0x4c97b4
mov byte [edi + edx], 0x3d
inc edi
mov eax, dword [esp + 0x24]
mov bl, 1
mov byte [edx + edi], 0
mov dword [eax], edx
mov eax, dword [esp + 0x28]
mov dword [eax], edi
jmp 0x4c97f6
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x4c97f4
xor ebx, ebx
inc ebx
mov ecx, ebx
mov dword [esi], ebx
call fcn.004cab21
mov dword [esi + 0x10], 0x9f
mov dword [esi + 4], eax
mov dword [esi + 8], str._encode
mov dword [esi + 0xc], str.J:JenkinsWorkspaceWX_Win_spark_client_framework_thirdpartycjose_source_src_base64.c
xor bl, bl
pop edi
pop esi
pop ebp
mov al, bl
pop ebx
add esp, 0x10
ret