Function at 0x140015140
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
test rdx, rdx
je 0x140015422
mov rax, rdx
shr rax, 0x3d
jne 0x140015422
mov r14, rcx
mov rax, rdx
shr rax, 0x20
mov rcx, rdx
shl rcx, 0x20
lea r10d, [r8 - 0x20]
test rax, rax
cmovne rcx, rdx
cmovne r10d, r8d
mov rax, rcx
shr rax, 0x30
mov rdx, rcx
shl rdx, 0x10
lea r8d, [r10 - 0x10]
test rax, rax
cmovne rdx, rcx
cmovne r8d, r10d
mov rax, rdx
shr rax, 0x38
mov rcx, rdx
shl rcx, 8
lea r10d, [r8 - 8]
test rax, rax
cmovne rcx, rdx
cmovne r10d, r8d
mov rax, rcx
shr rax, 0x3c
mov rdx, rcx
shl rdx, 4
lea r8d, [r10 - 4]
test rax, rax
cmovne rdx, rcx
cmovne r8d, r10d
mov rcx, rdx
shr rcx, 0x3e
lea rax, [rdx*4]
test rcx, rcx
cmovne rax, rdx
lea edx, [r8 - 2]
cmovne edx, r8d
xor ecx, ecx
test rax, rax
setns cl
sub edx, ecx
mov ecx, 0xffffffa0
sub ecx, edx
movsx ecx, cx
lea ecx, [rcx + rcx*4]
shl ecx, 4
add ecx, 0x153b0
movsxd rcx, ecx
imul r8, rcx, 0x7b4dc993
mov rcx, r8
shr rcx, 0x3f
sar r8, 0x2a
add r8d, ecx
cmp r8d, 0x51
jae 0x140015422
test rax, rax
setns cl
shl rax, cl
mov esi, r8d
shl rsi, 4
lea rdi, [0x1401bf358]
mov r8, qword [rsi + rdi]
mov rcx, rax
shr rcx, 0x20
mov eax, eax
mov r10d, r8d
shr r8, 0x20
mov r11, r8
imul r11, rcx
imul r8, rax
imul rcx, r10
imul r10, rax
shr r10, 0x20
mov ebx, ecx
add rbx, r10
mov eax, r8d
add rax, rbx
sub rax, 0xffffffff80000000
shr rcx, 0x20
add rcx, r11
shr r8, 0x20
add r8, rcx
shr rax, 0x20
add dx, word [rsi + rdi + 8]
add rax, r8
mov ecx, 0xffffffc0
sub ecx, edx
movzx r10d, cx
mov r8d, r10d
and r8d, 0x3f
mov rdx, rax
mov ecx, r8d
shr rdx, cl
mov r11d, 1
shl r11, cl
lea r13, [r11 - 1]
mov r12, rax
and r12, r13
je 0x1400155c9
movzx ebp, word [rsp + 0xa8]
movzx esi, word [rsi + rdi + 0xa]
cmp edx, 0x2710
jae 0x140015307
cmp edx, 0x64
jae 0x14001532a
xor ecx, ecx
cmp edx, 0xa
setae cl
lea ebx, [rcx + rcx*8]
inc ebx
jmp 0x140015381
cmp edx, 0xf4240
jae 0x140015345
cmp edx, 0x186a0
setb cl
mov edi, 0x2710
mov ebx, 0x186a0
cmovb ebx, edi
xor cl, 5
jmp 0x140015381
cmp edx, 0x3e8
setb cl
mov edi, 0x64
mov ebx, 0x3e8
cmovb ebx, edi
xor cl, 3
jmp 0x140015381
cmp edx, 0x5f5e100
jae 0x140015368
cmp edx, 0x989680
setb cl
mov edi, 0xf4240
mov ebx, 0x989680
cmovb ebx, edi
xor cl, 7
jmp 0x140015381
cmp edx, 0x3b9aca00
setb cl
mov edi, 0x5f5e100
mov ebx, 0x3b9aca00
cmovb ebx, edi
xor cl, 9
movzx ecx, cl
mov r15d, ecx
sub r15d, esi
mov edi, r15d
inc edi
cmp di, bp
jle 0x140015424
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r14
mov r15, qword [rsp + 0xa0]
movsx rax, di
mov dword [rsp + 0x24], edi
mov esi, edi
sub esi, ebp
movsx rdi, bp
sub rax, rdi
cmp rax, r15
movsx rdi, si
cmovae rdi, r15
neg rcx
neg r15
mov esi, 1
mov r14d, 0xcccccccd
nop dword [rax]
lea rbp, [r15 + rsi]
mov eax, edx
xor edx, edx
div ebx
cmp rbp, 1
je 0x140015422
add al, 0x30
mov byte [r9 + rsi - 1], al
cmp rdi, rsi
je 0x1400154aa
lea rax, [rcx + rsi]
cmp rax, 1
je 0x140015515
mov eax, ebx
imul rax, r14
shr rax, 0x23
inc rsi
cmp ebx, 0xa
mov ebx, eax
jae 0x1400153e0
ud2
movabs rcx, 0xcccccccccccccccd
mul rcx
mov eax, ebx
mov ecx, r8d
shl rax, cl
mov rcx, rax
sub rcx, r11
jbe 0x1400155c9
cmp rcx, r11
jbe 0x1400155c9
shr rdx, 3
mov rcx, rax
sub rcx, rdx
cmp rcx, rdx
jbe 0x14001547a
mov r10, rax
sub r10, rdx
sub r10, rdx
mov esi, 2
mov ecx, r8d
shl rsi, cl
cmp r10, rsi
jae 0x1400155ef
sub rdx, r11
jbe 0x1400155c9
sub rax, rdx
cmp rax, rdx
ja 0x1400155c9
lea eax, [r15 + 2]
cmp ax, bp
jle 0x140015663
mov byte [r9], 0x31
mov ecx, 1
jmp 0x140015665
mov eax, edx
mov ecx, r8d
shl rax, cl
mov edx, ebx
shl rdx, cl
mov rcx, rdx
sub rcx, r11
jbe 0x1400155e1
cmp rcx, r11
mov rbx, qword [rsp + 0x28]
jbe 0x140015509
add rax, r12
mov rcx, rdx
sub rcx, rax
cmp rcx, rax
jbe 0x1400154f8
mov r10, rdx
sub r10, rax
sub r10, rax
mov esi, 2
mov ecx, r8d
shl rsi, cl
cmp r10, rsi
jae 0x140015601
sub rax, r11
jbe 0x140015509
sub rdx, rax
cmp rdx, rax
jbe 0x140015606
mov qword [rbx], 0
jmp 0x1400155d0
dec r10d
and r10d, 0x3f
mov edx, 1
mov r14, qword [rsp + 0x28]
movzx ebp, word [rsp + 0xa8]
mov r15, qword [rsp + 0x30]
nop word cs:[rax + rax]
mov rax, rdx
mov ecx, r10d
shr rdx, cl
test rdx, rdx
jne 0x1400155c9
cmp rsi, qword [rsp + 0xa0]
jae 0x140015422
add r12, r12
lea rbx, [r12 + r12*4]
mov r12, rbx
and r12, r13
lea rcx, [rax + rax]
lea rdx, [rcx + rcx*4]
mov ecx, r8d
shr rbx, cl
add bl, 0x30
mov byte [r9 + rsi], bl
inc rsi
cmp rdi, rsi
jne 0x140015540
mov rcx, r11
sub rcx, rdx
jbe 0x1400155c9
cmp rcx, rdx
jbe 0x1400155c9
mov rcx, r11
sub rcx, r12
cmp rcx, r12
jbe 0x1400155b8
mov r8, r11
sub r8, r12
sub r8, r12
shl rax, 2
lea rax, [rax + rax*4]
cmp r8, rax
jae 0x140015676
sub r12, rdx
jbe 0x1400155c9
sub r11, r12
cmp r11, r12
jbe 0x14001567b
mov qword [r14], 0
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x28]
mov qword [rax], 0
jmp 0x1400155d0
mov qword [r14], r9
mov qword [r14 + 8], 0
mov word [r14 + 0x10], di
jmp 0x1400155d0
mov qword [rbx], r9
jmp 0x140015652
mov rsi, r9
mov rcx, r9
mov rdx, rdi
call fcn.14000f4d0
test al, 1
je 0x140015641
mov rax, qword [rsp + 0x30]
lea ecx, [rax + 2]
movzx eax, word [rsp + 0xa8]
mov dword [rsp + 0x24], ecx
cmp cx, ax
jle 0x140015641
cmp rdi, qword [rsp + 0xa0]
jae 0x140015641
mov byte [rsi + rdi], dl
inc rdi
cmp rdi, qword [rsp + 0xa0]
ja 0x140015422
mov qword [rbx], rsi
mov qword [rbx + 8], rdi
mov eax, dword [rsp + 0x24]
mov word [rbx + 0x10], ax
jmp 0x1400155d0
xor ecx, ecx
mov qword [r14], r9
mov qword [r14 + 8], rcx
mov word [r14 + 0x10], ax
jmp 0x1400155d0
mov qword [r14], r9
jmp 0x1400156bb
mov rsi, r9
mov rcx, r9
mov rdx, rdi
call fcn.14000f4d0
test al, 1
je 0x1400156aa
lea eax, [r15 + 2]
mov dword [rsp + 0x24], eax
cmp ax, bp
jle 0x1400156aa
cmp rdi, qword [rsp + 0xa0]
jae 0x1400156aa
mov byte [rsi + rdi], dl
inc rdi
cmp rdi, qword [rsp + 0xa0]
ja 0x140015422
mov qword [r14], rsi
mov qword [r14 + 8], rdi
mov eax, dword [rsp + 0x24]
mov word [r14 + 0x10], ax
jmp 0x1400155d0