Function at 0x4fa960
Capabilities:
Encode data using base64

Disassembly:
lea r12, [rsp - 0x48]
cmp r12, qword [r14 + 0x10]
jbe 0x4faf35
push rbp
mov rbp, rsp
sub rsp, 0xc0
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rbx
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rdi
mov rdx, qword [r9]
nop dword [rax]
test rdx, rdx
je 0x4fa9e2
mov r8, qword [r9 + 8]
cmp r8, 2
jge 0x4fa9c0
mov r8, qword [0x006a3fc0]
mov r10, qword [0x006a3fc8]
jmp 0x4fa9f0
cmp r8, 0x7fffffff
jle 0x4fa9d9
mov r8, qword [0x006a3fd0]
mov r10, qword [0x006a3fd8]
jmp 0x4fa9f0
xor r8d, r8d
xor r10d, r10d
nop
jmp 0x4fa9f0
mov r8, qword [0x006a3fb0]
mov r10, qword [0x006a3fb8]
test r8, r8
jne 0x4fad72
mov r8, qword [rdx + 0x10]
lea r10, [r8 - 1]
nop
test r10, r10
jl 0x4faa68
mov rdx, qword [rdx + 8]
mov rdx, qword [rdx + r8*8 - 8]
mov r8, rdx
shr rdx, 1
or rdx, r8
mov r8, rdx
shr rdx, 2
or rdx, r8
mov r8, rdx
shr rdx, 4
or rdx, r8
mov r8, rdx
shr rdx, 8
or rdx, r8
mov r8, rdx
shr rdx, 0x10
or rdx, r8
mov r8, rdx
shr rdx, 0x20
or rdx, r8
shl r10, 6
bsr rdx, rdx
mov r8, 0xffffffffffffffff
cmove rdx, r8
lea rdx, [rdx + r10]
lea rdx, [rdx + 1]
jmp 0x4faa6a
xor edx, edx
lea r8, [rdx + 7]
sar r8, 0x3f
shr r8, 0x3d
lea rdx, [r8 + rdx]
lea rdx, [rdx + 7]
sar rdx, 3
mov r8, qword [rsp + 0xd8]
cmp r8, rdx
jg 0x4faad7
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x118], rdi
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x130], r9
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rbx
mov rcx, qword [rax + 0x28]
mov rax, rbx
call rcx
lea rcx, [rax + rax]
lea rcx, [rcx + 2]
mov rdx, qword [rsp + 0x50]
cmp rcx, rdx
jle 0x4faaf5
mov rdi, qword [0x006a3ff0]
mov rsi, qword [0x006a3ff8]
xor eax, eax
xor ebx, ebx
mov rcx, rbx
add rsp, 0xc0
pop rbp
ret
mov rax, qword [rsp + 0x130]
mov rbx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0xe0]
xor esi, esi
call sym.crypto_rsa.decrypt
nop dword [rax]
test rdi, rdi
jne 0x4fad62
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x70], rbx
mov rdx, qword [rsp + 0x100]
mov rsi, qword [rdx + 0x38]
mov rax, qword [rsp + 0x108]
mov rbx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0xf0]
mov rdi, qword [rsp + 0xf8]
call rsi
mov rdx, qword [rsp + 0x100]
mov rsi, qword [rdx + 0x30]
mov rax, qword [rsp + 0x108]
xor ebx, ebx
xor ecx, ecx
mov rdi, rcx
call rsi
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0xa8], rax
mov rdx, qword [rsp + 0x100]
mov rsi, qword [rdx + 0x20]
mov rax, qword [rsp + 0x108]
call rsi
mov rdx, qword [rsp + 0x70]
test rdx, rdx
jbe 0x4faf2a
mov rcx, qword [rsp + 0x100]
mov rdx, qword [rcx + 0x28]
mov rbx, qword [rsp + 0xb0]
movzx esi, byte [rbx]
mov dword [rsp + 0x44], esi
mov rax, qword [rsp + 0x108]
call rdx
lea rcx, [rax + 1]
mov rdx, qword [rsp + 0x78]
cmp rdx, rcx
jb 0x4faf25
cmp rcx, 1
jb 0x4faf18
mov qword [rsp + 0x58], rax
lea rcx, [rdx - 1]
mov qword [rsp + 0x60], rcx
neg rcx
sar rcx, 0x3f
and ecx, 1
mov qword [rsp + 0x98], rcx
mov rsi, qword [rsp + 0x100]
mov rdi, qword [rsi + 0x28]
mov rax, qword [rsp + 0x108]
call rdi
lea rcx, [rax + 1]
mov rdx, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x98]
add rbx, rdx
mov r9, qword [rsp + 0x70]
cmp r9, rcx
jb 0x4faf0d
mov qword [rsp + 0xa0], rbx
sub r9, rax
mov qword [rsp + 0x98], r9
mov r10, qword [rsp + 0x78]
sub r10, rax
mov qword [rsp + 0x90], r10
lea r11, [r10 - 1]
mov qword [rsp + 0x88], r11
lea r12, [r9 - 1]
mov qword [rsp + 0x80], r12
mov r13, r11
neg r11
sar r11, 0x3f
and r11, rcx
lea r8, [r11 + rdx]
mov qword [rsp + 0xb8], r8
mov rax, rbx
mov rbx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x110]
mov rsi, qword [rsp + 0x118]
mov r9, r12
mov r10, r13
call sym.crypto_rsa.mgf1XOR
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x110]
mov rsi, qword [rsp + 0x118]
mov r8, qword [rsp + 0xa0]
mov r9, qword [rsp + 0x58]
mov r10, qword [rsp + 0x60]
call sym.crypto_rsa.mgf1XOR
mov rdx, qword [rsp + 0x100]
mov r11, qword [rdx + 0x28]
mov rax, qword [rsp + 0x108]
call r11
mov rdx, qword [rsp + 0x88]
cmp rax, rdx
ja 0x4faf05
mov rcx, qword [rsp + 0x68]
nop dword [rax + rax]
cmp rcx, rax
jne 0x4fad5e
mov rdx, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xa8]
xor eax, eax
xor esi, esi
jmp 0x4faeed
xor eax, eax
jmp 0x4fad88
xor eax, eax
xor ebx, ebx
mov rcx, rbx
add rsp, 0xc0
pop rbp
ret
xor eax, eax
xor ebx, ebx
mov rcx, rbx
mov rdi, r8
mov rsi, r10
add rsp, 0xc0
pop rbp
ret
mov qword [rsp + 0x48], rax
mov rcx, qword [rsp + 0x100]
mov rcx, qword [rcx + 0x28]
mov rax, qword [rsp + 0x108]
call rcx
mov rcx, qword [rsp + 0x80]
cmp rax, rcx
ja 0x4faed7
mov rcx, qword [rsp + 0x90]
sub rcx, rax
mov rbx, qword [rsp + 0x98]
sub rbx, rax
lea rdx, [rcx - 1]
neg rdx
sar rdx, 0x3f
and rdx, rax
mov r8, qword [rsp + 0xb8]
add rdx, r8
lea r8, [rbx - 1]
xor eax, eax
mov esi, 1
xor edi, edi
xor r9d, r9d
jmp 0x4fae4d
movzx r10d, byte [rax + rdx]
lea r11d, [r10 - 1]
shr r11d, 0x1f
not r11
xor r10d, 1
movzx r10d, r10b
dec r10d
shr r10d, 0x1f
mov r12d, r10d
and r10, rsi
mov r13, r10
neg r10
and r10, rax
dec r13
and r9, r13
dec r12
and rsi, r12
and r11, rsi
mov r12, r11
neg r11
and r11d, 1
dec r12
and rdi, r12
inc rax
nop
nop
or r9, r10
or rdi, r11
cmp rax, r8
jl 0x4fadf5
not rdi
not rsi
mov r10d, dword [rsp + 0x44]
dec r10d
shr r10d, 0x1f
mov r11, qword [rsp + 0x48]
and r11, r10
and r11, rdi
and rsi, r11
cmp rsi, 1
jne 0x4faeb1
lea rax, [r9 + 1]
nop dword [rax]
cmp rax, r8
ja 0x4faecf
sub rbx, r9
sub rcx, r9
add rcx, 0xfffffffffffffffe
add rbx, 0xfffffffffffffffe
mov r8, rcx
neg r8
sar r8, 0x3f
and r8, rax
lea rax, [r8 + rdx]
xor edi, edi
xor esi, esi
add rsp, 0xc0
pop rbp
ret
mov rdi, qword [0x006a3ff0]
mov rsi, qword [0x006a3ff8]
xor eax, eax
xor ebx, ebx
mov rcx, rbx
add rsp, 0xc0
pop rbp
ret
mov rcx, r8
call sym.runtime.panicSliceB
call sym.runtime.panicSliceB
movzx edi, byte [rax + rbx]
movzx r8d, byte [rax + rdx]
xor edi, r8d
inc rax
or esi, edi
cmp rcx, rax
jg 0x4faedc
movzx eax, sil
dec eax
nop
shr eax, 0x1f
nop dword [rax]
jmp 0x4fad88
mov rcx, rax
call sym.runtime.panicSliceAcap
mov rax, rcx
mov rcx, r9
call sym.runtime.panicSliceB
mov eax, 1
xor ecx, ecx
nop
call sym.runtime.panicSliceB
call sym.runtime.panicSliceAcap
xor eax, eax
mov rcx, rax
call sym.runtime.panicIndex
nop
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x68], r9
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
mov r8, qword [rsp + 0x60]
mov r9, qword [rsp + 0x68]
jmp sym.crypto_rsa.decryptOAEP