Function at 0x180035520
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.180001830
mov dword [rsp + 0x20], 1
mov esi, r13d
mov r15, rbx
test ebx, ebx
jle 0x180035b10
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
or r14, 0xffffffffffffffff
nop dword [rax]
movzx r12d, byte [rsi + rbp]
inc rsi
cmp rsi, r15
je 0x18003599c
movzx r13d, byte [rsi + rbp]
inc rsi
cmp rsi, r15
je 0x1800358cc
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 0x1800358bf
lea rbx, [r8 + 1]
cmp rbx, 0xfffffffffffffffe
ja 0x1800358b2
mov rax, qword [rdi + 0x18]
cmp rax, rbx
jae 0x1800355fb
mov rdx, rbx
mov rcx, rdi
call fcn.180001f80
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
jmp 0x180035615
test rbx, rbx
jne 0x180035618
mov qword [rdi + 0x10], rbx
cmp rax, 0x10
jb 0x18003560f
mov rax, qword [rdi]
jmp 0x180035612
mov rax, rdi
mov byte [rax], 0
test rbx, rbx
setne al
test al, al
je 0x18003564d
mov rcx, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x18003562f
mov rax, qword [rdi]
jmp 0x180035632
mov rax, rdi
mov byte [rcx + rax], bpl
mov qword [rdi + 0x10], rbx
cmp qword [rdi + 0x18], 0x10
jb 0x180035646
mov rax, qword [rdi]
jmp 0x180035649
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 0x1800358a5
lea rbx, [r8 + 1]
cmp rbx, 0xfffffffffffffffe
ja 0x180035898
mov rax, qword [rdi + 0x18]
cmp rax, rbx
jae 0x1800356aa
mov rdx, rbx
mov rcx, rdi
call fcn.180001f80
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
jmp 0x1800356c9
test rbx, rbx
jne 0x1800356c9
xor r13d, r13d
mov qword [rdi + 0x10], r13
cmp rax, 0x10
jb 0x1800356c1
mov rax, qword [rdi]
jmp 0x1800356c4
mov rax, rdi
mov byte [rax], r13b
jmp 0x1800356cc
xor r13d, r13d
test rbx, rbx
setne al
test al, al
je 0x180035704
mov rcx, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x1800356e6
mov rax, qword [rdi]
jmp 0x1800356e9
mov rax, rdi
mov byte [rcx + rax], r12b
mov qword [rdi + 0x10], rbx
cmp qword [rdi + 0x18], 0x10
jb 0x1800356fd
mov rax, qword [rdi]
jmp 0x180035700
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 0x18003588b
lea rbx, [r8 + 1]
cmp rbx, 0xfffffffffffffffe
ja 0x18003587e
mov rax, qword [rdi + 0x18]
cmp rax, rbx
jae 0x180035763
mov rdx, rbx
mov rcx, rdi
call fcn.180001f80
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
jmp 0x18003577d
test rbx, rbx
jne 0x180035780
mov qword [rdi + 0x10], r13
cmp rax, 0x10
jb 0x180035777
mov rax, qword [rdi]
jmp 0x18003577a
mov rax, rdi
mov byte [rax], 0
test rbx, rbx
setne al
test al, al
je 0x1800357b5
mov rcx, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x180035797
mov rax, qword [rdi]
jmp 0x18003579a
mov rax, rdi
mov byte [rax + rcx], bpl
mov qword [rdi + 0x10], rbx
cmp qword [rdi + 0x18], 0x10
jb 0x1800357ae
mov rax, qword [rdi]
jmp 0x1800357b1
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 0x180035871
lea rbx, [r8 + 1]
cmp rbx, 0xfffffffffffffffe
ja 0x180035864
mov rax, qword [rdi + 0x18]
cmp rax, rbx
jae 0x1800357ff
mov rdx, rbx
mov rcx, rdi
call fcn.180001f80
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
jmp 0x180035819
test rbx, rbx
jne 0x18003581c
mov qword [rdi + 0x10], r13
cmp rax, 0x10
jb 0x180035813
mov rax, qword [rdi]
jmp 0x180035816
mov rax, rdi
mov byte [rax], 0
test rbx, rbx
setne al
test al, al
je 0x180035851
mov rcx, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x180035833
mov rax, qword [rdi]
jmp 0x180035836
mov rax, rdi
mov byte [rax + rcx], bpl
mov qword [rdi + 0x10], rbx
cmp qword [rdi + 0x18], 0x10
jb 0x18003584a
mov rax, qword [rdi]
jmp 0x18003584d
mov rax, rdi
mov byte [rax + rbx], 0
cmp rsi, r15
mov rbp, qword [rsp + 0x78]
jl 0x180035580
jmp 0x180035b10
lea rcx, str.string_too_long
call fcn.1800bc54c
int3
lea rcx, str.string_too_long
call fcn.1800bc54c
int3
lea rcx, str.string_too_long
call fcn.1800bc54c
int3
lea rcx, str.string_too_long
call fcn.1800bc54c
int3
lea rcx, str.string_too_long
call fcn.1800bc54c
int3
lea rcx, str.string_too_long
call fcn.1800bc54c
int3
lea rcx, str.string_too_long
call fcn.1800bc54c
int3
lea rcx, str.string_too_long
call fcn.1800bc54c
int3
movzx eax, r12b
shr rax, 2
movzx r8d, byte [rax + rdx]
mov edx, 1
mov rcx, rdi
call fcn.180018580
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.180018580
and ebx, 0xf
shl ebx, 2
movsxd rax, ebx
movzx r8d, byte [rax + rsi]
mov edx, 1
mov rcx, rdi
call fcn.180018580
mov r8, qword [rdi + 0x10]
sub r14, r8
cmp r14, 1
ja 0x18003594d
lea rcx, str.string_too_long
call fcn.1800bc54c
int3
lea rbx, [r8 + 1]
cmp rbx, 0xfffffffffffffffe
jbe 0x180035964
lea rcx, str.string_too_long
call fcn.1800bc54c
int3
mov rax, qword [rdi + 0x18]
cmp rax, rbx
jae 0x18003597d
mov rdx, rbx
mov rcx, rdi
call fcn.180001f80
jmp 0x180035ad8
test rbx, rbx
jne 0x180035adb
mov qword [rdi + 0x10], rbx
cmp rax, 0x10
jb 0x180035ad2
mov rax, qword [rdi]
jmp 0x180035ad5
movzx eax, r12b
shr rax, 2
movzx r8d, byte [rax + rdx]
mov edx, 1
mov rcx, rdi
call fcn.180018580
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.180018580
mov r8, qword [rdi + 0x10]
mov rax, r14
sub rax, r8
cmp rax, 1
ja 0x1800359f8
lea rcx, str.string_too_long
call fcn.1800bc54c
int3
lea rbx, [r8 + 1]
cmp rbx, 0xfffffffffffffffe
jbe 0x180035a0f
lea rcx, str.string_too_long
call fcn.1800bc54c
int3
mov rax, qword [rdi + 0x18]
cmp rax, rbx
jae 0x180035a25
mov rdx, rbx
mov rcx, rdi
call fcn.180001f80
jmp 0x180035a3f
test rbx, rbx
jne 0x180035a42
mov qword [rdi + 0x10], r13
cmp rax, 0x10
jb 0x180035a39
mov rax, qword [rdi]
jmp 0x180035a3c
mov rax, rdi
mov byte [rax], 0
test rbx, rbx
setne al
test al, al
je 0x180035a77
mov rcx, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x180035a59
mov rax, qword [rdi]
jmp 0x180035a5c
mov rax, rdi
mov byte [rax + rcx], 0x3d
mov qword [rdi + 0x10], rbx
cmp qword [rdi + 0x18], 0x10
jb 0x180035a70
mov rax, qword [rdi]
jmp 0x180035a73
mov rax, rdi
mov byte [rax + rbx], 0
mov r8, qword [rdi + 0x10]
sub r14, r8
cmp r14, 1
ja 0x180035a91
lea rcx, str.string_too_long
call fcn.1800bc54c
int3
lea rbx, [r8 + 1]
cmp rbx, 0xfffffffffffffffe
jbe 0x180035aa8
lea rcx, str.string_too_long
call fcn.1800bc54c
int3
mov rax, qword [rdi + 0x18]
cmp rax, rbx
jae 0x180035abe
mov rdx, rbx
mov rcx, rdi
call fcn.180001f80
jmp 0x180035ad8
test rbx, rbx
jne 0x180035adb
mov qword [rdi + 0x10], r13
cmp rax, 0x10
jb 0x180035ad2
mov rax, qword [rdi]
jmp 0x180035ad5
mov rax, rdi
mov byte [rax], 0
test rbx, rbx
setne al
test al, al
je 0x180035b10
mov rcx, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x180035af2
mov rax, qword [rdi]
jmp 0x180035af5
mov rax, rdi
mov byte [rax + rcx], 0x3d
mov qword [rdi + 0x10], rbx
cmp qword [rdi + 0x18], 0x10
jb 0x180035b09
mov rax, qword [rdi]
jmp 0x180035b0c
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