Function at 0x180104a00
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov rax, qword [rdx]
test rax, rax
je 0x180104e1c
mov rdi, rcx
mov rcx, qword [rdx + 8]
test rcx, rcx
je 0x180104e1c
mov rsi, qword [rdx + 0x10]
test rsi, rsi
je 0x180104e1c
add rsi, rax
jb 0x180104e1c
mov r10, rax
sub r10, rcx
jb 0x180104e1c
cmp r9, 0x10
jbe 0x180104e1c
mov rcx, rsi
shr rcx, 0x3d
jne 0x180104e1c
mov ecx, dword [rdx + 0x18]
mov rdx, rsi
shr rdx, 0x20
mov r14, rsi
shl r14, 0x20
lea r11d, [rcx - 0x20]
test rdx, rdx
cmovne r11d, ecx
cmovne r14, rsi
mov rdx, r14
shr rdx, 0x30
mov rbx, r14
shl rbx, 0x10
lea esi, [r11 - 0x10]
test rdx, rdx
cmovne esi, r11d
cmovne rbx, r14
mov rdx, rbx
shr rdx, 0x38
mov r14, rbx
shl r14, 8
lea r11d, [rsi - 8]
test rdx, rdx
cmovne r11d, esi
cmovne r14, rbx
mov rdx, r14
shr rdx, 0x3c
mov rbx, r14
shl rbx, 4
lea esi, [r11 - 4]
test rdx, rdx
cmovne esi, r11d
cmovne rbx, r14
mov rdx, rbx
shr rdx, 0x3e
lea r11d, [rsi - 2]
test rdx, rdx
cmovne r11d, esi
lea rsi, [rbx*4]
cmovne rsi, rbx
xor edx, edx
test rsi, rsi
setns dl
sub r11d, edx
sub cx, r11w
js 0x180104e1c
and ecx, 0x3f
mov r15, r10
shl r15, cl
mov rdx, r15
shr rdx, cl
cmp rdx, r10
jne 0x180104e1c
mov rdx, rax
shl rdx, cl
mov r10, rdx
shr r10, cl
cmp r10, rax
jne 0x180104e1c
mov qword [rsp + 8], r9
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x28], r8
mov eax, 0xffffffa0
sub eax, r11d
cwde
lea eax, [rax + rax*4]
shl eax, 4
add eax, 0x153b0
cdqe
imul rax, rax, 0x7b4dc993
mov rcx, rax
shr rcx, 0x3f
sar rax, 0x2a
add eax, ecx
cmp eax, 0x51
jae 0x180104e1c
test rsi, rsi
setns cl
shl rsi, cl
mov eax, eax
shl rax, 4
lea rcx, [0x180131db0]
mov rbx, qword [rax + rcx]
movzx r8d, word [rax + rcx + 0xa]
mov dword [rsp], r8d
mov r12, rsi
shr r12, 0x20
mov r10d, esi
mov r14d, ebx
mov r8, rbx
shr r8, 0x20
mov r13, r8
imul r13, r10
mov rdi, r14
imul rdi, r12
imul r10, r14
shr r10, 0x20
mov esi, edi
add rsi, r10
mov r9d, r13d
add r9, rsi
add r11w, word [rax + rcx + 8]
mov r10, r15
shr r10, 0x20
mov eax, r15d
mov r15, r10
mov rcx, r8
imul rcx, r10
mov qword [rsp + 0x20], rcx
mov rbp, r8
imul rbp, rax
imul r15, r14
imul rax, r14
shr rax, 0x20
mov r10d, r15d
add r10, rax
mov eax, ebp
add rax, r10
mov r10, rdx
shr r10, 0x20
mov edx, edx
mov rbx, r8
imul rbx, rdx
mov rcx, r14
imul rcx, r10
imul r14, rdx
shr r14, 0x20
mov edx, ecx
add rdx, r14
mov r14d, ebx
add r14, rdx
mov rdx, r8
imul rdx, r12
sub r9, 0xffffffff80000000
shr rdi, 0x20
shr r13, 0x20
shr r9, 0x20
neg r11d
sub rax, 0xffffffff80000000
shr r15, 0x20
shr rbp, 0x20
shr rax, 0x20
mov qword [rsp + 0x50], r8
mov rsi, r8
mov qword [rsp + 0x68], r10
imul rsi, r10
sub r14, 0xffffffff80000000
shr rcx, 0x20
mov qword [rsp + 0x60], rcx
add rsi, rcx
shr rbx, 0x20
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x48], rdx
lea rcx, [rdx + rdi]
add rcx, r13
mov qword [rsp + 0x30], r9
lea r10, [r9 + rcx]
inc r10
and r11d, 0x3f
mov rdx, r10
mov ecx, r11d
shr rdx, cl
mov r9d, 1
shl r9, cl
mov qword [rsp + 0x58], rbx
add rsi, rbx
mov rbx, r14
shr rbx, 0x20
mov qword [rsp + 0x90], r9
lea rcx, [r9 - 1]
mov qword [rsp + 0x38], rcx
cmp edx, 0x2710
mov qword [rsp + 0x88], r12
mov qword [rsp + 0x80], r13
jae 0x180104d19
cmp edx, 0x64
jae 0x180104d42
xor ecx, ecx
cmp edx, 0xa
setae cl
lea r9d, [rcx + rcx*8]
inc r9d
jmp 0x180104d5d
cmp edx, 0xf4240
jae 0x180104ffd
cmp edx, 0x186a0
setb cl
mov edi, 0x2710
mov r9d, 0x186a0
cmovb r9d, edi
xor cl, 5
jmp 0x180104d5d
cmp edx, 0x3e8
setb cl
mov edi, 0x64
mov r9d, 0x3e8
cmovb r9d, edi
xor cl, 3
mov r8d, dword [rsp]
add rsi, rbx
mov qword [rsp], rsi
mov rdi, r10
mov r14, qword [rsp + 0x38]
and rdi, r14
movzx esi, cl
mov ecx, esi
sub ecx, r8d
inc ecx
mov dword [rsp + 0x14], ecx
add r15, qword [rsp + 0x20]
add r15, rbp
add r15, rax
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x70], r15
sub r10, r15
mov qword [rsp + 0x40], r10
lea r13, [r10 + 1]
mov rbp, r13
and rbp, r14
neg rsi
mov r15, qword [rsp + 8]
neg r15
mov r14d, 1
nop dword [rax]
lea rcx, [r15 + r14]
mov eax, edx
xor edx, edx
div r9d
cmp rcx, 1
je 0x180104e1c
add al, 0x30
mov r12d, edx
mov ecx, r11d
shl r12, cl
mov rcx, qword [rsp + 0x28]
mov byte [rcx + r14 - 1], al
lea r8, [r12 + rdi]
mov r10, r13
sub r10, r8
ja 0x180104e1e
lea rax, [rsi + r14]
cmp rax, 1
je 0x180104f12
mov eax, r9d
mov ecx, 0xcccccccd
imul rax, rcx
shr rax, 0x23
inc r14
cmp r9d, 0xa
mov r9d, eax
jae 0x180104dc0
ud2
mov edx, r9d
mov ecx, r11d
shl rdx, cl
mov r13, qword [rsp + 0x20]
sub r13, qword [rsp]
lea rcx, [r13 + 1]
dec r13
cmp r10, rdx
setb sil
cmp r13, r8
jbe 0x180105029
cmp r10, rdx
mov r15, qword [rsp + 0x28]
jb 0x18010505d
mov qword [rsp + 8], rcx
mov rsi, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x78]
lea r9, [rsi + rbp]
add r9, qword [rsp + 0x30]
add r9, qword [rsp + 0x48]
mov r10, r9
sub r10, qword [rsp]
sub r10, r12
sub r10, rdi
lea r11, [rdi + rdx]
mov rcx, qword [rsp + 0x60]
add rcx, r11
add rcx, qword [rsp + 0x58]
add rcx, rbx
mov r8, qword [rsp + 0x68]
sub r8, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x50]
imul rbx, r8
add rbx, rcx
sub rbx, rbp
mov rcx, rbx
sub rcx, rsi
sub rcx, qword [rsp + 0x30]
sub r9, qword [rsp + 0x70]
sub r9, r11
sub r9, r12
add r9, 2
nop dword [rax]
lea r8, [r12 + r11]
cmp r8, r13
jb 0x180104ee6
lea rsi, [r12 + rcx]
cmp r10, rsi
jb 0x180105050
dec al
mov byte [r15 + r14 - 1], al
sub r9, rdx
setb sil
add rdi, rdx
cmp r8, r13
jae 0x180104f0a
sub r10, rdx
add rcx, rdx
add r11, rdx
test sil, sil
je 0x180104ed0
add r12, rdi
jmp 0x180105055
mov r8d, 1
mov r15, qword [rsp + 0x28]
mov rax, qword [rsp + 8]
mov r12, qword [rsp + 0x20]
mov rsi, qword [rsp]
mov r13, qword [rsp + 0x38]
cmp r14, rax
jae 0x180104e1c
mov rbx, r8
add rdi, rdi
lea rdx, [rdi + rdi*4]
mov rdi, rdx
and rdi, r13
lea rcx, [r8 + r8]
lea r8, [rcx + rcx*4]
mov r9, rbp
add r9, rbp
lea rbp, [r9 + r9*4]
mov ecx, r11d
shr rdx, cl
lea ecx, [rdx + 0x30]
mov byte [r15 + r14], cl
inc r14
mov r10, rbp
sub r10, rdi
jbe 0x180104f30
sub r12, rsi
imul r12, r8
lea rcx, [r12 + r8]
mov rax, qword [rsp + 0x90]
cmp r10, rax
setb r10b
jb 0x180105095
sub r12, r8
mov r8, r12
sub r8, rdi
jbe 0x180105095
add dl, 0x2f
mov r11, rax
sub r11, r12
lea rsi, [r9 + r9*4]
sub rsi, rax
sub rsi, rdi
nop word cs:[rax + rax]
lea r9, [rdi + rax]
cmp r9, r12
jb 0x180104fd6
lea r10, [r11 + rdi]
cmp r8, r10
jb 0x180105092
mov byte [r15 + r14 - 1], dl
sub rsi, rax
setb r10b
cmp r9, r12
jae 0x180105098
dec dl
sub r8, rax
mov rdi, r9
test r10b, r10b
je 0x180104fc0
jmp 0x180105098
cmp edx, 0x5f5e100
mov r8d, dword [rsp]
jae 0x180105030
cmp edx, 0x989680
setb cl
mov edi, 0xf4240
mov r9d, 0x989680
cmovb r9d, edi
xor cl, 7
jmp 0x180104d61
mov r15, qword [rsp + 0x28]
jmp 0x18010505d
cmp edx, 0x3b9aca00
setb cl
mov edi, 0x5f5e100
mov r9d, 0x3b9aca00
cmovb r9d, edi
xor cl, 9
jmp 0x180104d61
add r12, rdi
xor esi, esi
mov r8, r12
mov rcx, qword [rsp + 8]
mov rax, rcx
sub rax, r8
jbe 0x180105077
test sil, sil
jne 0x180105077
add rdx, r8
sub rdx, rcx
jb 0x1801050e9
cmp rax, rdx
jae 0x1801050e9
cmp r8, 2
mov rax, qword [rsp + 0x18]
jb 0x1801050ee
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffffd
cmp r8, rcx
jbe 0x1801050d8
jmp 0x1801050ee
xor r10d, r10d
mov r9, rdi
mov rdx, rcx
sub rdx, r9
jbe 0x1801050b2
test r10b, r10b
jne 0x1801050b2
add rax, r9
sub rax, rcx
jb 0x1801050e9
cmp rdx, rax
jae 0x1801050e9
lea rcx, [rbx*4]
lea rcx, [rcx + rcx*4]
cmp rcx, r9
mov rax, qword [rsp + 0x18]
ja 0x1801050ee
shl rbx, 3
lea rcx, [rbx + rbx*4]
sub rbp, rcx
cmp r9, rbp
ja 0x1801050ee
mov qword [rax], r15
mov qword [rax + 8], r14
mov ecx, dword [rsp + 0x14]
mov word [rax + 0x10], cx
jmp 0x1801050f5
mov rax, qword [rsp + 0x18]
mov qword [rax], 0
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret