Function at 0x18003b390
Capabilities:
Encode data using base64

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
movsxd rbx, r8d
mov rbp, rdx
mov rdi, rcx
xor r13d, r13d
mov dword [rax - 0x48], r13d
call fcn.180001860
mov dword [rsp + 0x20], 1
mov esi, r13d
mov r15, rbx
test ebx, ebx
jle 0x18003b980
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
or r14, 0xffffffffffffffff
nop dword [rax]
movzx r12d, byte [rsi + rbp]
inc rsi
cmp rsi, r15
je 0x18003b80c
movzx r13d, byte [rsi + rbp]
inc rsi
cmp rsi, r15
je 0x18003b73c
movzx eax, byte [rsi + rbp]
mov byte [rsp + 0x80], al
inc rsi
movzx eax, r12b
shr rax, 2
movzx ebp, byte [rax + rdx]
mov r8, qword [rdi + 0x10]
mov rax, r14
sub rax, r8
cmp rax, 1
jbe 0x18003b72f
lea rbx, [r8 + 1]
cmp rbx, 0xfffffffffffffffe
ja 0x18003b722
mov rax, qword [rdi + 0x18]
cmp rax, rbx
jae 0x18003b46b
mov rdx, rbx
mov rcx, rdi
call fcn.180001f70
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
jmp 0x18003b485
test rbx, rbx
jne 0x18003b488
mov qword [rdi + 0x10], rbx
cmp rax, 0x10
jb 0x18003b47f
mov rax, qword [rdi]
jmp 0x18003b482
mov rax, rdi
mov byte [rax], 0
test rbx, rbx
setne al
test al, al
je 0x18003b4bd
mov rcx, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x18003b49f
mov rax, qword [rdi]
jmp 0x18003b4a2
mov rax, rdi
mov byte [rcx + rax], bpl
mov qword [rdi + 0x10], rbx
cmp qword [rdi + 0x18], 0x10
jb 0x18003b4b6
mov rax, qword [rdi]
jmp 0x18003b4b9
mov rax, rdi
mov byte [rbx + rax], 0
movzx ebp, r13b
movzx eax, r12b
and eax, 3
shl eax, 4
movsxd rcx, eax
mov eax, ebp
shr eax, 4
or rcx, rax
movzx r12d, byte [rcx + rdx]
mov r8, qword [rdi + 0x10]
mov rax, r14
sub rax, r8
cmp rax, 1
jbe 0x18003b715
lea rbx, [r8 + 1]
cmp rbx, 0xfffffffffffffffe
ja 0x18003b708
mov rax, qword [rdi + 0x18]
cmp rax, rbx
jae 0x18003b51a
mov rdx, rbx
mov rcx, rdi
call fcn.180001f70
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
jmp 0x18003b539
test rbx, rbx
jne 0x18003b539
xor r13d, r13d
mov qword [rdi + 0x10], r13
cmp rax, 0x10
jb 0x18003b531
mov rax, qword [rdi]
jmp 0x18003b534
mov rax, rdi
mov byte [rax], r13b
jmp 0x18003b53c
xor r13d, r13d
test rbx, rbx
setne al
test al, al
je 0x18003b574
mov rcx, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x18003b556
mov rax, qword [rdi]
jmp 0x18003b559
mov rax, rdi
mov byte [rcx + rax], r12b
mov qword [rdi + 0x10], rbx
cmp qword [rdi + 0x18], 0x10
jb 0x18003b56d
mov rax, qword [rdi]
jmp 0x18003b570
mov rax, rdi
mov byte [rbx + rax], 0
and ebp, 0xf
shl ebp, 2
movsxd rcx, ebp
movzx r12d, byte [rsp + 0x80]
mov eax, r12d
shr rax, 6
or rcx, rax
movzx ebp, byte [rcx + rdx]
mov r8, qword [rdi + 0x10]
mov rax, r14
sub rax, r8
cmp rax, 1
jbe 0x18003b6fb
lea rbx, [r8 + 1]
cmp rbx, 0xfffffffffffffffe
ja 0x18003b6ee
mov rax, qword [rdi + 0x18]
cmp rax, rbx
jae 0x18003b5d3
mov rdx, rbx
mov rcx, rdi
call fcn.180001f70
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
jmp 0x18003b5ed
test rbx, rbx
jne 0x18003b5f0
mov qword [rdi + 0x10], r13
cmp rax, 0x10
jb 0x18003b5e7
mov rax, qword [rdi]
jmp 0x18003b5ea
mov rax, rdi
mov byte [rax], 0
test rbx, rbx
setne al
test al, al
je 0x18003b625
mov rcx, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x18003b607
mov rax, qword [rdi]
jmp 0x18003b60a
mov rax, rdi
mov byte [rax + rcx], bpl
mov qword [rdi + 0x10], rbx
cmp qword [rdi + 0x18], 0x10
jb 0x18003b61e
mov rax, qword [rdi]
jmp 0x18003b621
mov rax, rdi
mov byte [rax + rbx], 0
movzx eax, r12b
and eax, 0x3f
movzx ebp, byte [rax + rdx]
mov r8, qword [rdi + 0x10]
mov rax, r14
sub rax, r8
cmp rax, 1
jbe 0x18003b6e1
lea rbx, [r8 + 1]
cmp rbx, 0xfffffffffffffffe
ja 0x18003b6d4
mov rax, qword [rdi + 0x18]
cmp rax, rbx
jae 0x18003b66f
mov rdx, rbx
mov rcx, rdi
call fcn.180001f70
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
jmp 0x18003b689
test rbx, rbx
jne 0x18003b68c
mov qword [rdi + 0x10], r13
cmp rax, 0x10
jb 0x18003b683
mov rax, qword [rdi]
jmp 0x18003b686
mov rax, rdi
mov byte [rax], 0
test rbx, rbx
setne al
test al, al
je 0x18003b6c1
mov rcx, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x18003b6a3
mov rax, qword [rdi]
jmp 0x18003b6a6
mov rax, rdi
mov byte [rax + rcx], bpl
mov qword [rdi + 0x10], rbx
cmp qword [rdi + 0x18], 0x10
jb 0x18003b6ba
mov rax, qword [rdi]
jmp 0x18003b6bd
mov rax, rdi
mov byte [rax + rbx], 0
cmp rsi, r15
mov rbp, qword [rsp + 0x78]
jl 0x18003b3f0
jmp 0x18003b980
lea rcx, str.string_too_long
call fcn.1800bcfdc
int3
lea rcx, str.string_too_long
call fcn.1800bcfdc
int3
lea rcx, str.string_too_long
call fcn.1800bcfdc
int3
lea rcx, str.string_too_long
call fcn.1800bcfdc
int3
lea rcx, str.string_too_long
call fcn.1800bcfdc
int3
lea rcx, str.string_too_long
call fcn.1800bcfdc
int3
lea rcx, str.string_too_long
call fcn.1800bcfdc
int3
lea rcx, str.string_too_long
call fcn.1800bcfdc
int3
movzx eax, r12b
shr rax, 2
movzx r8d, byte [rax + rdx]
mov edx, 1
mov rcx, rdi
call fcn.180014f10
movzx ebx, r13b
movzx eax, r12b
and eax, 3
shl eax, 4
movsxd rcx, eax
mov eax, ebx
shr eax, 4
or rcx, rax
lea rsi, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
movzx r8d, byte [rcx + rsi]
mov edx, 1
mov rcx, rdi
call fcn.180014f10
and ebx, 0xf
shl ebx, 2
movsxd rax, ebx
movzx r8d, byte [rax + rsi]
mov edx, 1
mov rcx, rdi
call fcn.180014f10
mov r8, qword [rdi + 0x10]
sub r14, r8
cmp r14, 1
ja 0x18003b7bd
lea rcx, str.string_too_long
call fcn.1800bcfdc
int3
lea rbx, [r8 + 1]
cmp rbx, 0xfffffffffffffffe
jbe 0x18003b7d4
lea rcx, str.string_too_long
call fcn.1800bcfdc
int3
mov rax, qword [rdi + 0x18]
cmp rax, rbx
jae 0x18003b7ed
mov rdx, rbx
mov rcx, rdi
call fcn.180001f70
jmp 0x18003b948
test rbx, rbx
jne 0x18003b94b
mov qword [rdi + 0x10], rbx
cmp rax, 0x10
jb 0x18003b942
mov rax, qword [rdi]
jmp 0x18003b945
movzx eax, r12b
shr rax, 2
movzx r8d, byte [rax + rdx]
mov edx, 1
mov rcx, rdi
call fcn.180014f10
movzx eax, r12b
and eax, 3
shl eax, 4
cdqe
lea rsi, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
movzx r8d, byte [rax + rsi]
mov edx, 1
mov rcx, rdi
call fcn.180014f10
mov r8, qword [rdi + 0x10]
mov rax, r14
sub rax, r8
cmp rax, 1
ja 0x18003b868
lea rcx, str.string_too_long
call fcn.1800bcfdc
int3
lea rbx, [r8 + 1]
cmp rbx, 0xfffffffffffffffe
jbe 0x18003b87f
lea rcx, str.string_too_long
call fcn.1800bcfdc
int3
mov rax, qword [rdi + 0x18]
cmp rax, rbx
jae 0x18003b895
mov rdx, rbx
mov rcx, rdi
call fcn.180001f70
jmp 0x18003b8af
test rbx, rbx
jne 0x18003b8b2
mov qword [rdi + 0x10], r13
cmp rax, 0x10
jb 0x18003b8a9
mov rax, qword [rdi]
jmp 0x18003b8ac
mov rax, rdi
mov byte [rax], 0
test rbx, rbx
setne al
test al, al
je 0x18003b8e7
mov rcx, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x18003b8c9
mov rax, qword [rdi]
jmp 0x18003b8cc
mov rax, rdi
mov byte [rax + rcx], 0x3d
mov qword [rdi + 0x10], rbx
cmp qword [rdi + 0x18], 0x10
jb 0x18003b8e0
mov rax, qword [rdi]
jmp 0x18003b8e3
mov rax, rdi
mov byte [rax + rbx], 0
mov r8, qword [rdi + 0x10]
sub r14, r8
cmp r14, 1
ja 0x18003b901
lea rcx, str.string_too_long
call fcn.1800bcfdc
int3
lea rbx, [r8 + 1]
cmp rbx, 0xfffffffffffffffe
jbe 0x18003b918
lea rcx, str.string_too_long
call fcn.1800bcfdc
int3
mov rax, qword [rdi + 0x18]
cmp rax, rbx
jae 0x18003b92e
mov rdx, rbx
mov rcx, rdi
call fcn.180001f70
jmp 0x18003b948
test rbx, rbx
jne 0x18003b94b
mov qword [rdi + 0x10], r13
cmp rax, 0x10
jb 0x18003b942
mov rax, qword [rdi]
jmp 0x18003b945
mov rax, rdi
mov byte [rax], 0
test rbx, rbx
setne al
test al, al
je 0x18003b980
mov rcx, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x18003b962
mov rax, qword [rdi]
jmp 0x18003b965
mov rax, rdi
mov byte [rax + rcx], 0x3d
mov qword [rdi + 0x10], rbx
cmp qword [rdi + 0x18], 0x10
jb 0x18003b979
mov rax, qword [rdi]
jmp 0x18003b97c
mov rax, rdi
mov byte [rax + rbx], 0
mov rax, rdi
mov rbx, qword [rsp + 0x88]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret