Function at 0x100080c40
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov r14, r8
mov r13, r9
mov ebx, edx
lea r8, [0x1004a9500]
mov r12, rcx
test rcx, rcx
jne 0x100080c84
mov edi, 0x80070057
mov rcx, qword [0x1004a9500]
jmp 0x1000810e0
test r9, r9
je 0x100080c73
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r12
repne scasw ax, word [rdi]
mov r15d, 0x80070216
not rcx
dec rcx
mov eax, ecx
mov rdx, rcx
cmp rcx, rax
je 0x100080ceb
mov edi, r15d
mov rcx, qword [0x1004a9500]
cmp rcx, r8
je 0x100080ce5
test byte [rcx + 0x3c], 2
je 0x100080ce5
mov rcx, qword [rcx + 0x30]
lea r8, [0x10003f9c0]
mov edx, 0x16
mov r9d, r15d
call fcn.10005c358
mov edx, dword [rsp + 0x50]
lea r8, [0x1004a9500]
jmp 0x100080ced
mov edx, dword [rsp + 0x50]
jmp 0x100080cf4
xor edi, edi
mov rcx, qword [0x1004a9500]
test edi, edi
js 0x1000810e0
xor ebp, ebp
cmp edx, ebx
mov eax, 0x100
cmovb ebx, edx
lea rdi, [0x1000427c0]
lea edx, [rbp + 0xa]
lea rsi, [r12 + rbx*2]
mov rbx, r12
cmp r12, rsi
jae 0x100080dca
cmp word [rbx], ax
jae 0x100080d5d
movzx eax, word [rbx]
cmp byte [rax + rdi], 0x3f
jbe 0x100080d67
cmp word [rbx], 0x20
je 0x100080db0
cmp word [rbx], 9
je 0x100080db0
cmp word [rbx], 0xd
je 0x100080db0
cmp word [rbx], dx
je 0x100080db0
test ebp, ebp
je 0x100080d5d
mov eax, ebp
and eax, 3
je 0x100080dca
cmp word [rbx], 0x3d
jne 0x100080d5d
cmp eax, 1
jne 0x100080dca
mov edi, 0x80070057
jmp 0x1000810e0
lea eax, [rbp + 1]
cmp eax, ebp
jb 0x100080d74
mov ebp, eax
xor edi, edi
jmp 0x100080da1
mov edi, r15d
cmp rcx, r8
je 0x100080da1
test byte [rcx + 0x3c], 2
je 0x100080da1
mov rcx, qword [rcx + 0x30]
lea r8, [0x10003f9c0]
mov r9d, r15d
call fcn.10005c358
mov rcx, qword [0x1004a9500]
mov edx, 0xa
test edi, edi
js 0x1000810e0
lea rdi, [0x1000427c0]
add rbx, 2
cmp rbx, rsi
jae 0x100080dca
lea r8, [0x1004a9500]
mov eax, 0x100
jmp 0x100080d22
mov r8d, ebp
xor edi, edi
shr r8d, 2
test r8d, r8d
je 0x100080e2a
lea ebx, [r8 + r8*2]
mov eax, 0xaaaaaaab
mul ebx
shr edx, 1
cmp edx, r8d
je 0x100080e2c
mov edi, r15d
lea rsi, [0x1004a9500]
cmp rcx, rsi
je 0x100080e24
test byte [rcx + 0x3c], 2
je 0x100080e24
mov rcx, qword [rcx + 0x30]
lea r8, [0x10003f9c0]
mov edx, 0xc
mov r9d, r15d
call fcn.10005c358
mov ebx, dword [rsp + 0x50]
mov rcx, qword [0x1004a9500]
jmp 0x100080e33
mov ebx, dword [rsp + 0x50]
jmp 0x100080e33
xor ebx, ebx
lea rsi, [0x1004a9500]
test edi, edi
js 0x1000810e0
mov eax, ebp
and eax, 3
sub eax, 1
je 0x1000810d7
sub eax, 1
je 0x100080e99
cmp eax, 1
jne 0x100080edb
lea eax, [rbx + 1]
cmp eax, ebx
jb 0x100080e64
mov ebx, eax
xor edi, edi
jmp 0x100080e91
mov edi, r15d
cmp rcx, rsi
je 0x100080e91
test byte [rcx + 0x3c], 2
je 0x100080e91
mov rcx, qword [rcx + 0x30]
lea r8, [0x10003f9c0]
mov edx, 0xa
mov r9d, r15d
call fcn.10005c358
mov rcx, qword [0x1004a9500]
test edi, edi
js 0x1000810e0
lea eax, [rbx + 1]
cmp eax, ebx
jb 0x100080ea6
mov ebx, eax
xor edi, edi
jmp 0x100080ed3
mov edi, r15d
cmp rcx, rsi
je 0x100080ed3
test byte [rcx + 0x3c], 2
je 0x100080ed3
mov rcx, qword [rcx + 0x30]
lea r8, [0x10003f9c0]
mov edx, 0xa
mov r9d, r15d
call fcn.10005c358
mov rcx, qword [0x1004a9500]
test edi, edi
js 0x1000810e0
test r14, r14
jne 0x100080eeb
mov dword [r13], ebx
xor edi, edi
jmp 0x10008110a
cmp dword [r13], ebx
jae 0x100080efb
mov edi, 0x8007007a
jmp 0x1000810e0
mov rsi, r14
add rbx, r14
test ebp, ebp
je 0x10008104e
xor eax, eax
mov edx, 4
xor edi, edi
cmp ebp, edx
mov r8d, ebp
mov dword [rsp + 0x50], eax
cmova r8, rdx
test r8, r8
je 0x100080f6b
lea rdx, [rsp + 0x50]
lea r9, [0x1000427c0]
mov r10d, 0x100
jmp 0x100080f46
movzx eax, ax
cmp byte [rax + r9], 0x3f
jbe 0x100080f51
add r12, 2
movzx eax, word [r12]
cmp r10w, ax
ja 0x100080f38
mov al, byte [r12]
inc edi
add r12, 2
mov byte [rdx], al
mov eax, edi
inc rdx
cmp rax, r8
jb 0x100080f46
mov eax, dword [rsp + 0x50]
cmp rsi, rbx
jae 0x100081044
movzx edx, byte [rsp + 0x51]
movzx eax, al
lea r8, [0x1000427c0]
mov cl, byte [rax + r8]
mov al, byte [rdx + r8]
shr al, 4
shl cl, 2
or cl, al
mov byte [rsi], cl
inc rsi
cmp edi, 2
jbe 0x100080fc0
cmp rsi, rbx
jae 0x10008103a
movzx eax, byte [rsp + 0x52]
mov cl, byte [rax + r8]
mov al, byte [rdx + r8]
shl al, 4
shr cl, 2
or cl, al
mov byte [rsi], cl
inc rsi
cmp edi, 3
jbe 0x100080fe4
cmp rsi, rbx
jae 0x10008103a
movzx eax, byte [rsp + 0x52]
mov cl, byte [rax + r8]
movzx eax, byte [rsp + 0x53]
shl cl, 6
or cl, byte [rax + r8]
mov byte [rsi], cl
inc rsi
mov eax, ebp
sub eax, edi
cmp eax, ebp
ja 0x100080ff2
mov ebp, eax
xor edi, edi
jmp 0x100081026
mov edi, r15d
mov rcx, qword [0x1004a9500]
lea rax, [0x1004a9500]
cmp rcx, rax
je 0x10008102d
test byte [rcx + 0x3c], 2
je 0x10008102d
mov rcx, qword [rcx + 0x30]
lea r8, [0x10003f830]
mov edx, 0xb
mov r9d, r15d
call fcn.10005c358
mov rcx, qword [0x1004a9500]
test edi, edi
js 0x1000810e0
jmp 0x100080f01
mov edi, 0x8000ffff
jmp 0x100080c78
mov edi, 0x8000ffff
jmp 0x1000810e0
sub rsi, r14
mov eax, esi
cmp rsi, rax
je 0x100081092
mov edi, r15d
lea rax, [0x1004a9500]
cmp rcx, rax
je 0x10008108c
test byte [rcx + 0x3c], 2
je 0x10008108c
mov rcx, qword [rcx + 0x30]
lea r8, [0x10003f830]
mov edx, 0x16
mov r9d, edi
call fcn.10005c358
mov rcx, qword [0x1004a9500]
test edi, edi
js 0x1000810e0
jmp 0x1000810dc
xor edi, edi
test rsi, rsi
jns 0x1000810cd
mov edi, r15d
lea rax, [0x1004a9500]
cmp rcx, rax
je 0x1000810cd
test byte [rcx + 0x3c], 2
je 0x1000810cd
mov rcx, qword [rcx + 0x30]
lea r8, [0x10003f830]
mov edx, 0x15
mov r9d, r15d
call fcn.10005c358
mov rcx, qword [0x1004a9500]
test edi, edi
js 0x10008105b
mov dword [r13], esi
jmp 0x10008108c
mov edi, 0x80070057
test edi, edi
jns 0x10008110a
lea rax, [0x1004a9500]
cmp rcx, rax
je 0x10008110a
test byte [rcx + 0x3c], 2
je 0x10008110a
mov rcx, qword [rcx + 0x30]
lea r8, [0x10003f8f0]
mov edx, 0xf
mov r9d, edi
call fcn.10005c358
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
mov eax, edi
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret