Function at 0x140108ca0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov qword [rsp + 0x28], r8
mov rax, qword [rdx]
test rax, rax
je 0x140108fa6
mov r15, rcx
mov rcx, rax
shr rcx, 0x3d
jne 0x140108fa6
test r9, r9
je 0x140108fa6
mov rcx, rax
shr rcx, 0x20
mov r8, rax
shl r8, 0x20
mov edx, dword [rdx + 0x18]
lea r10d, [rdx - 0x20]
test rcx, rcx
cmovne r8, rax
cmovne r10d, edx
mov rax, r8
shr rax, 0x30
mov rcx, r8
shl rcx, 0x10
lea edx, [r10 - 0x10]
test rax, rax
cmovne rcx, r8
cmovne edx, r10d
mov rax, rcx
shr rax, 0x38
mov r8, rcx
shl r8, 8
lea r11d, [rdx - 8]
test rax, rax
cmovne r8, rcx
cmovne r11d, edx
mov rax, r8
shr rax, 0x3c
mov rcx, r8
shl rcx, 4
lea r10d, [r11 - 4]
test rax, rax
cmovne rcx, r8
cmovne r10d, r11d
mov rdx, rcx
shr rdx, 0x3e
lea rax, [rcx*4]
test rdx, rdx
cmovne rax, rcx
lea edx, [r10 - 2]
cmovne edx, r10d
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 0x140108fa6
test rax, rax
setns cl
shl rax, cl
mov r10d, r8d
shl r10, 4
lea r11, [0x1401c7ea8]
mov r8, qword [r10 + r11]
mov rcx, rax
shr rcx, 0x20
mov edi, eax
mov esi, r8d
mov rax, r8
shr rax, 0x20
mov rbx, rax
imul rbx, rcx
imul rax, rdi
imul rcx, rsi
imul rsi, rdi
shr rsi, 0x20
mov edi, ecx
add rdi, rsi
mov r8d, eax
add r8, rdi
sub r8, 0xffffffff80000000
shr rcx, 0x20
add rcx, rbx
shr rax, 0x20
add rax, rcx
shr r8, 0x20
add r8, rax
add dx, word [r10 + r11 + 8]
mov eax, 0xffffffc0
sub eax, edx
mov edi, eax
and edi, 0x3f
mov rdx, r8
mov ecx, edi
shr rdx, cl
movzx ebx, word [rsp + 0xb0]
movzx r10d, word [r10 + r11 + 0xa]
mov r11d, 1
shl r11, cl
cmp edx, 0x2710
jae 0x140108e6f
cmp edx, 0x64
jae 0x140108e94
xor ecx, ecx
cmp edx, 0xa
setae cl
lea r13d, [rcx + rcx*8]
inc r13d
jmp 0x140108ef1
cmp edx, 0xf4240
jae 0x140108eb1
cmp edx, 0x186a0
setb cl
mov esi, 0x2710
mov r13d, 0x186a0
cmovb r13d, esi
xor cl, 5
jmp 0x140108ef1
cmp edx, 0x3e8
setb cl
mov esi, 0x64
mov r13d, 0x3e8
cmovb r13d, esi
xor cl, 3
jmp 0x140108ef1
cmp edx, 0x5f5e100
jae 0x140108ed6
cmp edx, 0x989680
setb cl
mov esi, 0xf4240
mov r13d, 0x989680
cmovb r13d, esi
xor cl, 7
jmp 0x140108ef1
cmp edx, 0x3b9aca00
setb cl
mov esi, 0x5f5e100
mov r13d, 0x3b9aca00
cmovb r13d, esi
xor cl, 9
movzx ecx, cl
mov r14d, ecx
sub r14d, r10d
mov esi, r14d
inc esi
cmp si, bx
jle 0x140108faa
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r15
movzx r10d, ax
lea rbp, [r11 - 1]
and r8, rbp
movsx rax, si
mov dword [rsp + 0x24], esi
sub esi, ebx
movsx rbx, bx
sub rax, rbx
cmp rax, r9
movsx r14, si
cmovae r14, r9
neg rcx
mov qword [rsp + 0x40], r9
mov rbx, r9
neg rbx
mov esi, 1
mov r12d, 0xcccccccd
mov r9, qword [rsp + 0x28]
nop word [rax + rax]
lea r15, [rbx + rsi]
mov eax, edx
xor edx, edx
div r13d
cmp r15, 1
je 0x140108fa6
add al, 0x30
mov byte [r9 + rsi - 1], al
cmp r14, rsi
je 0x140109021
lea rax, [rcx + rsi]
cmp rax, 1
je 0x14010908f
mov eax, r13d
imul rax, r12
shr rax, 0x23
inc rsi
cmp r13d, 0xa
mov r13d, eax
jae 0x140108f60
ud2
movabs rcx, 0xcccccccccccccccd
mov rax, r8
mul rcx
mov eax, r13d
mov ecx, edi
shl rax, cl
mov rcx, rax
sub rcx, r11
jbe 0x14010913a
cmp rcx, r11
jbe 0x14010913a
shr rdx, 3
mov r10, rax
sub r10, rdx
mov r8d, 2
mov ecx, edi
shl r8, cl
cmp r10, rdx
jbe 0x140109155
mov r9, rax
sub r9, rdx
sub r9, rdx
cmp r9, r8
jb 0x140109155
mov rax, qword [rsp + 0x28]
mov qword [r15], rax
mov qword [r15 + 8], 0
mov word [r15 + 0x10], si
jmp 0x140109141
mov eax, edx
mov ecx, edi
shl rax, cl
mov edx, r13d
shl rdx, cl
mov rcx, rdx
sub rcx, r11
mov rsi, qword [rsp + 0x40]
jbe 0x140109135
cmp rcx, r11
mov r15, qword [rsp + 0x30]
jbe 0x14010913a
add rax, r8
mov r10, rdx
sub r10, rax
mov r8d, 2
mov ecx, edi
shl r8, cl
cmp r10, rax
jbe 0x140109180
mov r9, rdx
sub r9, rax
sub r9, rax
cmp r9, r8
mov r9, qword [rsp + 0x28]
jb 0x140109180
cmp r14, rsi
jbe 0x14010912d
jmp 0x140108fa6
dec r10d
and r10d, 0x3f
mov edx, 1
mov r12, qword [rsp + 0x40]
mov rax, rdx
mov ecx, r10d
shr rdx, cl
test rdx, rdx
jne 0x140109135
cmp rsi, r12
jae 0x140108fa6
add r8, r8
lea rbx, [r8 + r8*4]
mov r8, rbx
and r8, rbp
lea rcx, [rax + rax]
lea rdx, [rcx + rcx*4]
mov ecx, edi
shr rbx, cl
add bl, 0x30
mov byte [r9 + rsi], bl
inc rsi
cmp r14, rsi
jne 0x1401090a0
mov rcx, r11
sub rcx, rdx
jbe 0x140109135
cmp rcx, rdx
mov r15, qword [rsp + 0x30]
jbe 0x14010913a
mov rcx, r11
sub rcx, r8
cmp rcx, r8
jbe 0x1401091c5
mov r9, r11
sub r9, r8
sub r9, r8
shl rax, 2
lea rax, [rax + rax*4]
cmp r9, rax
mov r9, qword [rsp + 0x28]
jb 0x1401091c5
cmp r14, r12
ja 0x140108fa6
mov qword [r15], r9
jmp 0x140109269
mov r15, qword [rsp + 0x30]
mov qword [r15], 0
mov rax, r15
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rdx
sub rcx, r11
sub rdx, r11
jbe 0x14010913a
sub rax, rcx
cmp rax, rdx
ja 0x14010913a
lea eax, [r14 + 2]
cmp ax, bx
jle 0x1401091b2
mov rdx, qword [rsp + 0x28]
mov byte [rdx], 0x31
mov ecx, 1
jmp 0x1401091b9
mov rcx, rax
sub rcx, r11
sub rax, r11
jbe 0x14010913a
sub rdx, rcx
cmp rdx, rax
ja 0x14010913a
cmp r14, rsi
ja 0x140108fa6
mov rcx, r9
mov rdx, r14
call fcn.140110530
test al, 1
jne 0x1401091ff
mov rax, qword [rsp + 0x28]
jmp 0x140109229
xor ecx, ecx
mov rdx, qword [rsp + 0x28]
mov qword [r15], rdx
mov qword [r15 + 8], rcx
jmp 0x140109271
mov rax, r8
sub rax, rdx
sub r8, rdx
jbe 0x14010913a
sub r11, rax
cmp r11, r8
ja 0x14010913a
cmp r14, r12
ja 0x140108fa6
mov rcx, r9
mov rdx, r14
call fcn.140110530
test al, 1
jne 0x140109233
mov rax, qword [rsp + 0x28]
jmp 0x14010925d
mov rax, qword [rsp + 0x38]
lea ecx, [rax + 2]
movzx eax, word [rsp + 0xb0]
mov dword [rsp + 0x24], ecx
cmp cx, ax
jle 0x1401091ab
cmp r14, rsi
mov rax, qword [rsp + 0x28]
jae 0x140109229
mov byte [rax + r14], dl
inc r14
cmp r14, rsi
jbe 0x140109266
jmp 0x140108fa6
mov rax, qword [rsp + 0x38]
lea ecx, [rax + 2]
movzx eax, word [rsp + 0xb0]
mov dword [rsp + 0x24], ecx
cmp cx, ax
jle 0x1401091f8
cmp r14, r12
mov rax, qword [rsp + 0x28]
jae 0x14010925d
mov byte [rax + r14], dl
inc r14
cmp r14, r12
ja 0x140108fa6
mov qword [r15], rax
mov qword [r15 + 8], r14
mov eax, dword [rsp + 0x24]
mov word [r15 + 0x10], ax
jmp 0x140109141