Function at 0x41bc00
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x24
mov esi, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
cmp edx, esi
jb 0x41c0fe
mov eax, dword [ebp + 8]
mov ebx, edx
xor edi, edi
mov ecx, 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
sub ebx, esi
jne 0x41bc4e
test edx, edx
je 0x41bd5c
mov ecx, dword [ebp - 0x18]
mov byte [eax + 4], 1
add ecx, esi
mov dword [eax + 8], ecx
jmp 0x41be60
mov ecx, dword [ebp + 0xc]
mov edi, esi
movzx eax, byte [ecx + esi]
xor esi, esi
cmp eax, 0x3d
jne 0x41bc71
mov eax, dword [ebp + 8]
add esi, edi
mov word [eax + 4], 0x3d00
mov dword [eax + 8], esi
jmp 0x41be60
mov edi, dword [ebp + 0x24]
mov esi, eax
mov dword [ebp - 0x14], eax
movzx eax, byte [edi + eax]
cmp al, 0xff
mov dword [ebp - 0x30], eax
je 0x41bd27
mov edi, dword [ebp + 0x14]
lea eax, [ecx + edx]
lea esi, [ecx + edi + 1]
cmp esi, eax
je 0x41bd43
add ecx, edi
mov dword [ebp - 0x20], eax
mov esi, 1
movzx eax, byte [ecx + 1]
cmp eax, 0x3d
je 0x41bc5e
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x14], eax
movzx edx, byte [edx + eax]
cmp dl, 0xff
mov dword [ebp - 0x1c], edx
je 0x41be7a
lea esi, [ecx + 2]
cmp esi, dword [ebp - 0x20]
je 0x41be84
movzx eax, byte [ecx + 2]
lea edi, [ecx + 3]
cmp eax, 0x3d
jne 0x41beab
mov eax, dword [ebp - 0x20]
mov edx, eax
sub edx, esi
cmp edi, eax
je 0x41bf35
mov esi, dword [ebp + 0x14]
mov edi, edx
mov eax, 3
mov edx, 2
cmp byte [ecx + eax], 0x3d
jne 0x41bf7f
test eax, eax
je 0x41bf97
inc eax
cmp ebx, eax
jne 0x41bcfd
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x18], 2
jmp 0x41bf74
xor ebx, ebx
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x14]
add ebx, esi
mov byte [eax + 4], 0
mov byte [eax + 5], cl
mov dword [eax + 8], ebx
jmp 0x41be60
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x30]
mov esi, edi
mov dword [ebp - 0x18], 1
xor edi, edi
test edx, edx
jne 0x41bc3d
xor edx, edx
xor ebx, ebx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x24], 0
movzx ecx, byte [ebp + 0x2c]
test cl, cl
je 0x41bd93
movzx ecx, cl
cmp ecx, 1
jne 0x41be54
mov ecx, dword [ebp - 0x18]
add ecx, edi
test cl, 3
jne 0x41be5c
movzx ecx, byte [ebp - 0x30]
mov dword [ebp - 0x1c], edx
movzx edx, byte [ebp - 0x24]
mov dword [ebp - 0x20], edi
movzx edi, byte [ebp - 0x2c]
movzx eax, bl
mov ebx, dword [ebp - 0x18]
shl eax, 0x14
shl ecx, 0x1a
shl edi, 0xe
shl edx, 8
or eax, ecx
or edx, edi
or edx, eax
cmp byte [ebp + 0x28], 0
lea eax, [ebx + ebx]
lea eax, [eax + eax*2]
jne 0x41bdee
mov ecx, eax
mov edi, esi
mov esi, edx
and cl, 0x18
shl esi, cl
test esi, esi
je 0x41bdee
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x14]
lea ecx, [edi + ebx - 1]
mov byte [eax + 4], 2
mov byte [eax + 5], dl
mov dword [eax + 8], ecx
jmp 0x41be60
mov ecx, dword [ebp + 0x20]
cmp ebx, 2
jb 0x41be36
mov esi, dword [ebp + 0x1c]
shr eax, 3
xor edi, edi
sub esi, ecx
cmovb esi, edi
cmp eax, 1
adc eax, 0
nop dword [eax]
mov edi, dword [ebp + 0x18]
cmp ecx, dword [ebp + 0x1c]
mov ebx, 0
lea edi, [edi + ecx]
cmovae edi, ebx
sub esi, 1
jb 0x41be6e
mov ebx, edx
shr edx, 0x18
inc ecx
shl ebx, 8
mov byte [edi], dl
dec eax
mov edx, ebx
jne 0x41be10
xor eax, eax
cmp dword [ebp - 0x20], 0
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp + 8]
setne al
add esi, dword [ebp + 0x14]
mov dword [edx], eax
mov eax, edx
mov dword [edx + 4], esi
mov dword [edx + 8], ecx
jmp 0x41be66
test edi, edi
je 0x41bd93
mov byte [eax + 4], 3
mov dword [eax], 2
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
mov byte [eax + 4], 4
mov dword [eax + 8], edi
jmp 0x41be60
mov ebx, 1
jmp 0x41bd29
mov dword [ebp - 0x18], 2
xor edi, edi
xor edx, edx
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x24], 0
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp - 0x1c]
jmp 0x41bd71
mov esi, dword [ebp + 0x24]
mov edx, eax
mov dword [ebp - 0x14], edx
movzx eax, byte [esi + eax]
cmp al, 0xff
je 0x41bf5f
cmp edi, dword [ebp - 0x20]
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x2c], eax
je 0x41bf69
movzx edx, byte [ecx + 3]
lea esi, [ecx + 4]
cmp dl, 0x3d
jne 0x41bfa0
mov edx, dword [ebp - 0x20]
mov eax, edx
sub eax, edi
mov edi, eax
mov eax, esi
xor esi, esi
cmp eax, edx
je 0x41c05f
add ebx, 0xfffffffc
mov edx, 3
lea eax, [esi + 4]
mov dword [ebp - 0x28], eax
movzx eax, byte [ecx + esi + 4]
cmp al, 0x3d
jne 0x41c084
mov eax, dword [ebp - 0x28]
cmp eax, 2
jb 0x41c0bd
inc esi
cmove edx, eax
cmp ebx, esi
jne 0x41befb
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x18], 3
jmp 0x41be9d
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp - 0x1c]
mov edi, edx
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x18], 2
mov dword [ebp - 0x24], 0
mov edx, 2
jmp 0x41bd71
mov ebx, 2
jmp 0x41bd29
xor edi, edi
xor edx, edx
mov dword [ebp - 0x18], 3
mov eax, dword [ebp + 8]
mov ebx, dword [ebp - 0x1c]
jmp 0x41bd6a
mov edx, 2
mov eax, dword [ebp + 8]
add edx, esi
mov word [eax + 4], 0x3d00
mov dword [eax + 8], edx
jmp 0x41be60
mov edi, esi
xor esi, esi
jmp 0x41bc5e
mov dword [ebp - 0x14], esi
mov byte [ebp - 0xd], dl
xor edx, edx
mov dword [ebp - 0x28], 3
mov esi, 4
movzx eax, byte [ebp - 0xd]
mov edi, dword [ebp + 0x24]
mov ebx, dword [ebp - 0x1c]
movzx ecx, al
movzx ecx, byte [edi + ecx]
cmp cl, 0xff
je 0x41c04e
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 4
cmp edi, dword [ebp - 0x20]
je 0x41c070
movzx eax, byte [edi]
cmp al, 0x3d
jne 0x41c094
cmp esi, 2
jb 0x41c0bf
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x20]
mov edx, edi
lea eax, [edx + 1]
mov edi, ecx
sub edi, edx
cmp eax, ecx
je 0x41c0d6
mov ecx, 1
mov edx, esi
lea eax, [esi + ecx]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax + ecx]
cmp al, 0x3d
jne 0x41c0ea
mov eax, dword [ebp - 0x28]
cmp eax, 2
jb 0x41c0fa
test ecx, ecx
cmove edx, eax
mov eax, dword [ebp - 0x14]
lea eax, [eax + ecx + 1]
inc ecx
cmp eax, dword [ebp - 0x20]
jne 0x41c016
jmp 0x41c0d8
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp - 0x28]
jmp 0x41bd2f
mov edx, 3
mov dword [ebp - 0x18], 3
jmp 0x41be96
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x24], ecx
movzx ecx, byte [ebp - 0xd]
xor edi, edi
mov dword [ebp - 0x14], ecx
jmp 0x41bd71
cmp esi, 0xffffffff
mov byte [ebp - 0xd], al
je 0x41c0c7
mov esi, dword [ebp + 0x14]
jmp 0x41bf84
mov ebx, esi
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x14], eax
movzx ecx, al
mov eax, dword [ebp + 0x24]
cmp byte [eax + ecx], 0xff
mov eax, dword [ebp + 8]
je 0x41bd2f
push 0x4bc4ac
push 4
push 4
call dbg.panic_bounds_check
xor esi, esi
mov edi, dword [ebp + 0x14]
jmp 0x41bc5e
lea eax, [esi + ecx + 5]
add esi, 5
mov dword [ebp - 0x14], eax
jmp 0x41bfb4
mov edx, esi
movzx eax, byte [ebp - 0xd]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x14]
jmp 0x41bd71
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp - 0x28]
test ecx, ecx
jne 0x41bf84
jmp 0x41c099
add esi, ecx
jmp 0x41c0bf
push 0x4bc4bc
push edx
push esi
call dbg.slice_start_index_len_fail
nop word [eax + eax]