Function at 0x180026690
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
test rdx, rdx
je 0x18002699c
mov rax, rdx
shr rax, 0x3d
jne 0x18002699c
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 r11d, [r8 - 8]
test rax, rax
cmovne rcx, rdx
cmovne r11d, r8d
mov rax, rcx
shr rax, 0x3c
mov rdx, rcx
shl rdx, 4
lea r10d, [r11 - 4]
test rax, rax
cmovne rdx, rcx
cmovne r10d, r11d
mov rcx, rdx
shr rcx, 0x3e
lea rax, [rdx*4]
test rcx, rcx
cmovne rax, rdx
lea r8d, [r10 - 2]
cmovne r8d, r10d
xor ecx, ecx
test rax, rax
setns cl
sub r8d, ecx
mov ecx, 0xffffffa0
sub ecx, r8d
movsx ecx, cx
lea ecx, [rcx + rcx*4]
shl ecx, 4
add ecx, 0x153b0
movsxd rcx, ecx
imul rdx, rcx, 0x7b4dc993
mov rcx, rdx
shr rcx, 0x3f
sar rdx, 0x2a
add edx, ecx
cmp edx, 0x51
jae 0x18002699c
test rax, rax
setns cl
shl rax, cl
mov r10d, edx
shl r10, 4
lea rsi, [0x180193028]
mov rdx, qword [r10 + rsi]
mov rcx, rax
shr rcx, 0x20
mov eax, eax
mov ebx, edx
shr rdx, 0x20
mov r11, rdx
imul r11, rcx
imul rdx, rax
imul rcx, rbx
imul rbx, rax
shr rbx, 0x20
mov edi, ecx
add rdi, rbx
mov eax, edx
add rax, rdi
sub rax, 0xffffffff80000000
shr rcx, 0x20
add rcx, r11
shr rdx, 0x20
add rdx, rcx
shr rax, 0x20
add rax, rdx
add r8w, word [r10 + rsi + 8]
mov edx, 0xffffffc0
sub edx, r8d
mov r8d, edx
and r8d, 0x3f
mov rbx, rax
mov ecx, r8d
shr rbx, cl
mov r11d, 1
shl r11, cl
lea rdi, [r11 - 1]
mov r13, rax
and r13, rdi
je 0x180026a06
movzx ebp, word [rsp + 0xb8]
movzx ecx, word [r10 + rsi + 0xa]
cmp ebx, 0x2710
mov qword [rsp + 0x40], rdi
jae 0x18002685f
cmp ebx, 0x64
jae 0x180026884
xor r10d, r10d
cmp ebx, 0xa
setae r10b
lea esi, [r10 + r10*8]
inc esi
jmp 0x1800268e1
cmp ebx, 0xf4240
jae 0x1800268a1
cmp ebx, 0x186a0
setb r10b
mov edi, 0x2710
mov esi, 0x186a0
cmovb esi, edi
xor r10b, 5
jmp 0x1800268e1
cmp ebx, 0x3e8
setb r10b
mov edi, 0x64
mov esi, 0x3e8
cmovb esi, edi
xor r10b, 3
jmp 0x1800268e1
cmp ebx, 0x5f5e100
jae 0x1800268c6
cmp ebx, 0x989680
setb r10b
mov edi, 0xf4240
mov esi, 0x989680
cmovb esi, edi
xor r10b, 7
jmp 0x1800268e1
cmp ebx, 0x3b9aca00
setb r10b
mov edi, 0x5f5e100
mov esi, 0x3b9aca00
cmovb esi, edi
xor r10b, 9
movzx r12d, r10b
mov r15d, r12d
sub r15d, ecx
mov edi, r15d
inc edi
cmp di, bp
jle 0x1800269a0
mov qword [rsp + 0x30], r11
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x20], r14
movzx r10d, dx
mov r11, qword [rsp + 0xb0]
movsx rax, di
mov dword [rsp + 0x2c], edi
mov ecx, edi
sub ecx, ebp
movsx rdx, bp
sub rax, rdx
cmp rax, r11
movsx r14, cx
cmovae r14, r11
neg r12
mov rbp, r11
neg rbp
mov r15d, 1
mov edi, 0xcccccccd
nop word cs:[rax + rax]
lea r11, [r15 + rbp]
mov eax, ebx
xor edx, edx
div esi
cmp r11, 1
je 0x18002699c
mov ecx, edx
mov eax, ebx
xor edx, edx
div esi
add al, 0x30
mov byte [r9 + r15 - 1], al
cmp r14, r15
je 0x180026a12
lea rax, [r12 + r15]
cmp rax, 1
je 0x180026af4
mov eax, esi
imul rax, rdi
shr rax, 0x23
inc r15
mov ebx, ecx
cmp esi, 0xa
mov esi, eax
jae 0x180026950
ud2
movabs rcx, 0xcccccccccccccccd
mul rcx
mov eax, esi
mov ecx, r8d
shl rax, cl
mov rcx, rax
sub rcx, r11
jbe 0x180026a06
cmp rcx, r11
jbe 0x180026a06
shr rdx, 3
mov rcx, rax
sub rcx, rdx
cmp rcx, rdx
jbe 0x1800269f5
mov rsi, r11
mov r11, rax
sub r11, rdx
sub r11, rdx
mov r10d, 2
mov ecx, r8d
shl r10, cl
cmp r11, r10
mov r11, rsi
jae 0x180026bca
sub rdx, r11
jbe 0x180026a06
sub rax, rdx
cmp rax, rdx
jbe 0x180026bdc
mov qword [r14], 0
jmp 0x180026bb9
mov eax, ecx
mov ecx, r8d
shl rax, cl
mov edx, esi
shl rdx, cl
mov rcx, rdx
mov r10, qword [rsp + 0x30]
sub rcx, r10
jbe 0x180026bad
cmp rcx, r10
jbe 0x180026bad
add rax, r13
mov rcx, rdx
sub rcx, rax
cmp rcx, rax
jbe 0x180026a6a
mov r11, rdx
sub r11, rax
sub r11, rax
mov r10d, 2
mov ecx, r8d
shl r10, cl
cmp r11, r10
mov r10, qword [rsp + 0x30]
jae 0x180026bf0
sub rax, r10
mov ebp, dword [rsp + 0x2c]
mov rbx, qword [rsp + 0xb0]
jbe 0x180026bad
sub rdx, rax
cmp rdx, rax
ja 0x180026bad
cmp r14, rbx
ja 0x18002699c
mov rsi, r9
mov r8, 0xffffffffffffffff
xor eax, eax
mov rcx, r9
movzx edi, word [rsp + 0xb8]
mov r15, qword [rsp + 0x38]
cmp r14, rax
je 0x180026c3e
inc rax
inc r8
lea rdx, [rcx - 1]
cmp byte [rcx + r14 - 1], 0x39
mov rcx, rdx
je 0x180026ab0
inc byte [rdx + r14]
mov rax, r14
sub rax, r8
cmp rax, r14
jae 0x180026d44
lea rcx, [rdx + r14]
inc rcx
mov dl, 0x30
call fcn.180181020
jmp 0x180026d44
dec r10d
and r10d, 0x3f
mov edx, 1
mov rsi, r9
mov r11, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0x40]
mov rax, rdx
mov ecx, r10d
shr rdx, cl
test rdx, rdx
jne 0x180026bad
cmp r15, r11
jae 0x18002699c
add r13, r13
lea r9, [r13*4]
add r9, r13
mov r13, r9
and r13, rdi
lea rcx, [rax + rax]
lea rdx, [rcx + rcx*4]
mov ecx, r8d
shr r9, cl
add r9b, 0x30
mov byte [rsi + r15], r9b
inc r15
cmp r14, r15
jne 0x180026b10
mov rcx, qword [rsp + 0x30]
sub rcx, rdx
jbe 0x180026bad
cmp rcx, rdx
jbe 0x180026bad
mov r8, qword [rsp + 0x30]
mov rcx, r8
sub rcx, r13
cmp rcx, r13
jbe 0x180026b93
sub r8, r13
sub r8, r13
shl rax, 2
lea rax, [rax + rax*4]
cmp r8, rax
jae 0x180026c1c
sub r13, rdx
mov ebx, dword [rsp + 0x2c]
jbe 0x180026bad
mov rax, qword [rsp + 0x30]
sub rax, r13
cmp rax, r13
jbe 0x180026c6a
mov rax, qword [rsp + 0x20]
mov qword [rax], 0
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [r14], r9
mov qword [r14 + 8], 0
mov word [r14 + 0x10], di
jmp 0x180026bb9
lea eax, [r15 + 2]
cmp ax, bp
jle 0x180026c0c
mov byte [r9], 0x31
mov ecx, 1
jmp 0x180026c0e
cmp r14, qword [rsp + 0xb0]
mov ecx, dword [rsp + 0x2c]
ja 0x18002699c
mov rax, qword [rsp + 0x20]
mov qword [rax], r9
jmp 0x180026c31
xor ecx, ecx
mov qword [r14], r9
mov qword [r14 + 8], rcx
mov word [r14 + 0x10], ax
jmp 0x180026bb9
cmp r14, r11
mov ecx, dword [rsp + 0x2c]
ja 0x18002699c
mov rax, qword [rsp + 0x20]
mov qword [rax], rsi
mov qword [rax + 8], r14
mov word [rax + 0x10], cx
jmp 0x180026bb9
test r14, r14
je 0x180026d20
mov byte [rsi], 0x31
mov bl, 0x30
cmp r14, 1
je 0x180026d22
lea rcx, [rsi + 1]
lea r8, [r14 - 1]
mov dl, 0x30
call fcn.180181020
jmp 0x180026d22
cmp r14, qword [rsp + 0xb0]
ja 0x18002699c
mov r8, 0xffffffffffffffff
xor eax, eax
mov rcx, rsi
movzx edi, word [rsp + 0xb8]
mov r15, qword [rsp + 0x38]
cmp r14, rax
je 0x180026cca
inc rax
inc r8
lea rdx, [rcx - 1]
cmp byte [rcx + r14 - 1], 0x39
mov rcx, rdx
je 0x180026c91
inc byte [rdx + r14]
mov rax, r14
sub rax, r8
cmp rax, r14
jae 0x180026cfd
lea rcx, [rdx + r14]
inc rcx
mov dl, 0x30
call fcn.180181020
jmp 0x180026cfd
mov byte [rsi], 0x31
cmp r14, 1
je 0x180026ce2
lea rcx, [rsi + 1]
lea r8, [r14 - 1]
mov dl, 0x30
call fcn.180181020
lea ebx, [r15 + 2]
cmp bx, di
jle 0x180026cfd
cmp r14, qword [rsp + 0xb0]
jae 0x180026cfd
mov byte [rsi + r14], 0x30
inc r14
cmp r14, qword [rsp + 0xb0]
ja 0x18002699c
mov rax, qword [rsp + 0x20]
mov qword [rax], rsi
mov qword [rax + 8], r14
mov word [rax + 0x10], bx
jmp 0x180026bb9
mov bl, 0x31
lea ebp, [r15 + 2]
cmp bp, di
jle 0x180026d3c
cmp r14, qword [rsp + 0xb0]
jae 0x180026d3c
mov byte [rsi + r14], bl
inc r14
mov rbx, qword [rsp + 0xb0]
cmp r14, rbx
ja 0x18002699c
mov rax, qword [rsp + 0x20]
mov qword [rax], rsi
mov qword [rax + 8], r14
mov word [rax + 0x10], bp
jmp 0x180026bb9