Function at 0x140017040
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x90
mov rax, qword [rdx]
test rax, rax
je 0x14001744a
mov rbx, rcx
mov rcx, qword [rdx + 8]
test rcx, rcx
je 0x14001744a
mov rsi, qword [rdx + 0x10]
test rsi, rsi
je 0x14001744a
add rsi, rax
jb 0x14001744a
mov r11, rax
sub r11, rcx
jb 0x14001744a
mov rcx, rsi
shr rcx, 0x3d
jne 0x14001744a
mov ecx, dword [rdx + 0x18]
mov rdx, rsi
shr rdx, 0x20
mov r9, rsi
shl r9, 0x20
lea r10d, [rcx - 0x20]
test rdx, rdx
cmovne r9, rsi
cmovne r10d, ecx
mov rdx, r9
shr rdx, 0x30
mov rdi, r9
shl rdi, 0x10
lea esi, [r10 - 0x10]
test rdx, rdx
cmovne rdi, r9
cmovne esi, r10d
mov rdx, rdi
shr rdx, 0x38
mov r9, rdi
shl r9, 8
lea r10d, [rsi - 8]
test rdx, rdx
cmovne r9, rdi
cmovne r10d, esi
mov rdx, r9
shr rdx, 0x3c
mov r14, r9
shl r14, 4
lea edi, [r10 - 4]
test rdx, rdx
cmovne r14, r9
cmovne edi, r10d
mov rdx, r14
shr rdx, 0x3e
lea rsi, [r14*4]
test rdx, rdx
cmovne rsi, r14
lea ebp, [rdi - 2]
cmovne ebp, edi
xor edx, edx
test rsi, rsi
setns dl
sub ebp, edx
sub cx, bp
js 0x14001744a
and ecx, 0x3f
mov r9, r11
shl r9, cl
mov rdx, r9
shr rdx, cl
cmp rdx, r11
jne 0x14001744a
mov rdx, rax
shl rdx, cl
mov r10, rdx
shr r10, cl
cmp r10, rax
jne 0x14001744a
mov eax, 0xffffffa0
sub eax, ebp
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 0x14001744a
mov r15, r8
mov qword [rsp + 0x10], rbx
test rsi, rsi
setns cl
shl rsi, cl
mov ebx, eax
shl rbx, 4
lea r11, [0x14019de08]
mov r12, qword [rbx + r11]
movzx eax, word [rbx + r11 + 0xa]
mov dword [rsp], eax
mov rax, rsi
shr rax, 0x20
mov rcx, rax
mov qword [rsp + 0x40], rax
mov r10d, esi
mov r8d, r12d
shr r12, 0x20
mov r13, r12
imul r13, r10
mov rax, r8
imul rax, rcx
imul r10, r8
shr r10, 0x20
mov esi, eax
add rsi, r10
mov r14d, r13d
add r14, rsi
add bp, word [rbx + r11 + 8]
mov r11, r9
shr r11, 0x20
mov r10d, r9d
mov rcx, r12
imul rcx, r11
mov qword [rsp + 0x18], rcx
mov rsi, r12
imul rsi, r10
imul r11, r8
imul r10, r8
shr r10, 0x20
mov r9d, r11d
add r9, r10
mov r10d, esi
add r10, r9
mov r9, rdx
shr r9, 0x20
mov edx, edx
mov rdi, r12
imul rdi, rdx
mov rcx, r8
imul rcx, r9
imul r8, rdx
shr r8, 0x20
mov edx, ecx
add rdx, r8
mov r8d, edi
add r8, rdx
mov rbx, r12
imul rbx, qword [rsp + 0x40]
sub r14, 0xffffffff80000000
shr rax, 0x20
shr r13, 0x20
shr r14, 0x20
neg ebp
sub r10, 0xffffffff80000000
shr r11, 0x20
mov qword [rsp + 0x20], r11
shr rsi, 0x20
mov qword [rsp + 8], rsi
shr r10, 0x20
mov qword [rsp + 0x80], r12
imul r12, r9
sub r8, 0xffffffff80000000
shr rcx, 0x20
mov qword [rsp + 0x68], rcx
add r12, rcx
shr rdi, 0x20
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x50], rbx
lea rcx, [rbx + rax]
add rcx, r13
mov qword [rsp + 0x30], r14
lea rbx, [r14 + rcx]
inc rbx
mov r14, r12
and ebp, 0x3f
mov r11, rbx
mov ecx, ebp
shr r11, cl
mov eax, 1
shl rax, cl
mov qword [rsp + 0x60], rdi
add r14, rdi
shr r8, 0x20
mov qword [rsp + 0x88], rax
lea rdi, [rax - 1]
cmp r11d, 0x2710
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x70], r9
jae 0x140017341
cmp r11d, 0x64
jae 0x14001736c
xor ecx, ecx
cmp r11d, 0xa
setae cl
lea r9d, [rcx + rcx*8]
inc r9d
jmp 0x140017388
cmp r11d, 0xf4240
jae 0x14001762d
cmp r11d, 0x186a0
setb cl
mov edx, 0x2710
mov r9d, 0x186a0
cmovb r9d, edx
xor cl, 5
jmp 0x140017388
cmp r11d, 0x3e8
setb cl
mov edx, 0x64
mov r9d, 0x3e8
cmovb r9d, edx
xor cl, 3
mov rax, qword [rsp + 0x20]
mov edx, dword [rsp]
mov r12, qword [rsp + 0x18]
mov qword [rsp + 0x58], r8
add r14, r8
mov qword [rsp], r14
mov rsi, rbx
and rsi, rdi
movzx r8d, cl
mov ecx, r8d
sub ecx, edx
inc ecx
mov dword [rsp + 0x2c], ecx
add rax, r12
add rax, qword [rsp + 8]
add rax, r10
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], rax
sub rbx, rax
mov qword [rsp + 0x48], rbx
lea r10, [rbx + 1]
mov r12, r10
mov qword [rsp + 0x18], rdi
and r12, rdi
xor r14d, r14d
nop word cs:[rax + rax]
mov eax, r11d
xor edx, edx
div r9d
add al, 0x30
mov rdi, r15
mov byte [r15 + r14], al
mov r11d, edx
mov rdx, r11
mov r13, rbp
mov ecx, ebp
shl rdx, cl
lea rbp, [r14 + 1]
lea r15, [rdx + rsi]
mov rbx, r10
sub rbx, r15
ja 0x14001744c
cmp r8, r14
je 0x140017542
mov eax, r9d
mov ecx, 0xcccccccd
imul rax, rcx
shr rax, 0x23
mov r14, rbp
cmp r9d, 0xa
mov r9d, eax
mov r15, rdi
mov rbp, r13
jae 0x1400173f0
ud2
mov r11d, r9d
mov ecx, r13d
shl r11, cl
mov r12, qword [rsp + 8]
sub r12, qword [rsp]
lea r9, [r12 + 1]
dec r12
cmp rbx, r11
setb r8b
cmp r12, r15
jbe 0x140017664
cmp rbx, r11
mov rcx, qword [rsp + 0x10]
jb 0x1400176a2
mov qword [rsp + 8], r9
mov r13, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x38]
lea r9, [rcx + r13]
add r9, qword [rsp + 0x30]
add r9, qword [rsp + 0x50]
mov r10, r9
sub r10, qword [rsp]
sub r10, r15
lea r15, [rsi + r11]
mov r8, qword [rsp + 0x68]
add r8, r15
add r8, qword [rsp + 0x60]
add r8, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x70]
sub rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x80]
imul rcx, rbx
add rcx, r8
sub rcx, r13
sub rcx, qword [rsp + 0x38]
sub rcx, qword [rsp + 0x30]
sub r9, qword [rsp + 0x20]
sub r9, r15
sub r9, rdx
add r9, 2
mov r13, rdi
nop dword [rax]
lea rbx, [rdx + r15]
cmp rbx, r12
jb 0x140017516
lea r8, [rdx + rcx]
cmp r10, r8
jb 0x14001768f
dec al
mov byte [r13 + r14], al
sub r9, r11
setb r8b
add rsi, r11
cmp rbx, r12
jae 0x14001753a
sub r10, r11
add rcx, r11
add r15, r11
test r8b, r8b
je 0x140017500
add rdx, rsi
jmp 0x140017695
inc r14
mov r8d, 1
mov rbx, rdi
mov rcx, r13
mov r15, qword [rsp + 8]
mov r13, qword [rsp + 0x88]
mov r10, qword [rsp + 0x18]
nop word cs:[rax + rax]
cmp r14, 0x10
ja 0x14001744a
mov rax, r8
add rsi, rsi
lea rdx, [rsi + rsi*4]
mov rsi, rdx
and rsi, r10
add r8, r8
lea r8, [r8 + r8*4]
add r12, r12
lea r12, [r12 + r12*4]
shr rdx, cl
lea r9d, [rdx + 0x30]
mov byte [rbx + r14], r9b
inc r14
mov r9, r12
sub r9, rsi
jbe 0x140017570
sub r15, qword [rsp]
imul r15, r8
lea rcx, [r15 + r8]
cmp r9, r13
setb r10b
jb 0x1400176ed
sub r15, r8
mov r8, r15
sub r8, rsi
jbe 0x1400176ed
add dl, 0x2f
mov r11, r13
sub r11, r15
mov rdi, r12
sub rdi, r13
sub rdi, rsi
nop dword [rax + rax]
lea r9, [rsi + r13]
cmp r9, r15
jb 0x140017606
lea r10, [r11 + rsi]
cmp r8, r10
jb 0x1400176ea
mov byte [rbx + r14 - 1], dl
sub rdi, r13
setb r10b
cmp r9, r15
jae 0x1400176f0
dec dl
sub r8, r13
mov rsi, r9
test r10b, r10b
je 0x1400175f0
jmp 0x1400176f0
cmp r11d, 0x5f5e100
mov rax, qword [rsp + 0x20]
mov r12, qword [rsp + 0x18]
jae 0x14001766b
cmp r11d, 0x989680
setb cl
mov edx, 0xf4240
mov r9d, 0x989680
cmovb r9d, edx
xor cl, 7
mov edx, dword [rsp]
jmp 0x140017395
mov rcx, qword [rsp + 0x10]
jmp 0x1400176a2
cmp r11d, 0x3b9aca00
setb cl
mov edx, 0x5f5e100
mov r9d, 0x3b9aca00
cmovb r9d, edx
xor cl, 9
mov edx, dword [rsp]
jmp 0x140017395
add rdx, rsi
xor r8d, r8d
mov r15, rdx
mov rcx, qword [rsp + 0x10]
mov r9, qword [rsp + 8]
mov rax, r9
sub rax, r15
jbe 0x1400176bc
test r8b, r8b
jne 0x1400176bc
add r11, r15
sub r11, r9
jb 0x1400176e1
cmp rax, r11
jae 0x1400176e1
cmp r15, 2
jb 0x1400176e1
mov rax, qword [rsp + 0x48]
add rax, 0xfffffffffffffffd
cmp r15, rax
ja 0x1400176e1
mov qword [rcx], rdi
mov qword [rcx + 8], rbp
mov eax, dword [rsp + 0x2c]
mov word [rcx + 0x10], ax
jmp 0x140017737
mov qword [rcx], 0
jmp 0x140017737
xor r10d, r10d
mov r9, rsi
mov rdx, rcx
sub rdx, r9
jbe 0x14001770a
test r10b, r10b
jne 0x14001770a
add r13, r9
sub r13, rcx
jb 0x14001772b
cmp rdx, r13
jae 0x14001772b
lea rcx, [rax*4]
lea rcx, [rcx + rcx*4]
cmp rcx, r9
ja 0x14001772b
shl rax, 3
lea rax, [rax + rax*4]
sub r12, rax
cmp r9, r12
jbe 0x14001774b
mov rax, qword [rsp + 0x10]
mov qword [rax], 0
add rsp, 0x90
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x10]
mov qword [rax], rbx
mov qword [rax + 8], r14
mov ecx, dword [rsp + 0x2c]
mov word [rax + 0x10], cx
jmp 0x140017737