Function at 0x180026740
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 0x180026a4c
mov rax, rdx
shr rax, 0x3d
jne 0x180026a4c
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 0x180026a4c
test rax, rax
setns cl
shl rax, cl
mov r10d, edx
shl r10, 4
lea rsi, [0x18018db40]
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 0x180026c3f
movzx ebp, word [rsp + 0xb8]
movzx ecx, word [r10 + rsi + 0xa]
cmp ebx, 0x2710
mov qword [rsp + 0x40], rdi
jae 0x18002690f
cmp ebx, 0x64
jae 0x180026934
xor r10d, r10d
cmp ebx, 0xa
setae r10b
lea esi, [r10 + r10*8]
inc esi
jmp 0x180026991
cmp ebx, 0xf4240
jae 0x180026951
cmp ebx, 0x186a0
setb r10b
mov edi, 0x2710
mov esi, 0x186a0
cmovb esi, edi
xor r10b, 5
jmp 0x180026991
cmp ebx, 0x3e8
setb r10b
mov edi, 0x64
mov esi, 0x3e8
cmovb esi, edi
xor r10b, 3
jmp 0x180026991
cmp ebx, 0x5f5e100
jae 0x180026976
cmp ebx, 0x989680
setb r10b
mov edi, 0xf4240
mov esi, 0x989680
cmovb esi, edi
xor r10b, 7
jmp 0x180026991
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 0x180026a50
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 0x180026a4c
mov ecx, edx
mov eax, ebx
xor edx, edx
div esi
add al, 0x30
mov byte [r9 + r15 - 1], al
cmp r14, r15
je 0x180026ac3
lea rax, [r12 + r15]
cmp rax, 1
je 0x180026b39
mov eax, esi
imul rax, rdi
shr rax, 0x23
inc r15
mov ebx, ecx
cmp esi, 0xa
mov esi, eax
jae 0x180026a00
ud2
movabs rcx, 0xcccccccccccccccd
mul rcx
mov eax, esi
mov ecx, r8d
shl rax, cl
mov rcx, rax
sub rcx, r11
jbe 0x180026c3f
cmp rcx, r11
jbe 0x180026c3f
mov rsi, r11
shr rdx, 3
mov r10, rax
sub r10, rdx
mov r11d, 2
mov ecx, r8d
shl r11, cl
cmp r10, rdx
jbe 0x180026c11
mov r8, rax
sub r8, rdx
sub r8, rdx
cmp r8, r11
jb 0x180026c11
mov qword [r14], r9
mov qword [r14 + 8], 0
mov word [r14 + 0x10], di
jmp 0x180026d7f
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 0x180026d73
cmp rcx, r10
jbe 0x180026d73
add rax, r13
mov r10, rdx
sub r10, rax
mov r11d, 2
mov ecx, r8d
shl r11, cl
cmp r10, rax
jbe 0x180026c4b
mov r8, rdx
sub r8, rax
sub r8, rax
cmp r8, r11
jb 0x180026c4b
cmp r14, qword [rsp + 0xb0]
mov ecx, dword [rsp + 0x2c]
ja 0x180026a4c
mov rax, qword [rsp + 0x20]
mov qword [rax], r9
jmp 0x180026c04
dec r10d
and r10d, 0x3f
mov edx, 1
mov rsi, r9
mov r11, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0x40]
nop word cs:[rax + rax]
mov rax, rdx
mov ecx, r10d
shr rdx, cl
test rdx, rdx
jne 0x180026d73
cmp r15, r11
jae 0x180026a4c
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 0x180026b60
mov rcx, qword [rsp + 0x30]
sub rcx, rdx
jbe 0x180026d73
cmp rcx, rdx
jbe 0x180026d73
mov r8, qword [rsp + 0x30]
mov rcx, r8
sub rcx, r13
cmp rcx, r13
jbe 0x180026cf3
sub r8, r13
sub r8, r13
shl rax, 2
lea rax, [rax + rax*4]
cmp r8, rax
jb 0x180026cf3
cmp r14, r11
mov ecx, dword [rsp + 0x2c]
ja 0x180026a4c
mov rax, qword [rsp + 0x20]
mov qword [rax], rsi
mov qword [rax + 8], r14
mov word [rax + 0x10], cx
jmp 0x180026d7f
mov rcx, rdx
sub rcx, rsi
sub rdx, rsi
jbe 0x180026c3f
sub rax, rcx
cmp rax, rdx
ja 0x180026c3f
lea eax, [r15 + 2]
cmp ax, bp
jle 0x180026ce0
mov byte [r9], 0x31
mov ecx, 1
jmp 0x180026ce2
mov qword [r14], 0
jmp 0x180026d7f
mov rcx, rax
mov r8, qword [rsp + 0x30]
sub rcx, r8
sub rax, r8
mov ebp, dword [rsp + 0x2c]
mov rbx, qword [rsp + 0xb0]
jbe 0x180026d73
sub rdx, rcx
cmp rdx, rax
ja 0x180026d73
cmp r14, rbx
ja 0x180026a4c
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 0x180026d90
inc rax
inc r8
lea rdx, [rcx - 1]
cmp byte [rcx + r14 - 1], 0x39
mov rcx, rdx
je 0x180026c9c
inc byte [rdx + r14]
mov rax, r14
sub rax, r8
cmp rax, r14
jae 0x180026e2b
lea rcx, [rdx + r14]
inc rcx
mov dl, 0x30
call fcn.180171550
jmp 0x180026e2b
xor ecx, ecx
mov qword [r14], r9
mov qword [r14 + 8], rcx
mov word [r14 + 0x10], ax
jmp 0x180026d7f
mov rax, r13
sub rax, rdx
sub r13, rdx
mov ebx, dword [rsp + 0x2c]
jbe 0x180026d73
mov rcx, qword [rsp + 0x30]
sub rcx, rax
cmp rcx, r13
ja 0x180026d73
cmp r14, qword [rsp + 0xb0]
ja 0x180026a4c
mov r8, 0xffffffffffffffff
xor eax, eax
mov rcx, rsi
movzx edi, word [rsp + 0xb8]
mov r15, qword [rsp + 0x38]
cmp r14, rax
je 0x180026db1
inc rax
inc r8
lea rdx, [rcx - 1]
cmp byte [rcx + r14 - 1], 0x39
mov rcx, rdx
je 0x180026d36
inc byte [rdx + r14]
mov rax, r14
sub rax, r8
cmp rax, r14
jae 0x180026de4
lea rcx, [rdx + r14]
inc rcx
mov dl, 0x30
call fcn.180171550
jmp 0x180026de4
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
test r14, r14
je 0x180026e07
mov byte [rsi], 0x31
mov bl, 0x30
cmp r14, 1
je 0x180026e09
lea rcx, [rsi + 1]
lea r8, [r14 - 1]
mov dl, 0x30
call fcn.180171550
jmp 0x180026e09
mov byte [rsi], 0x31
cmp r14, 1
je 0x180026dc9
lea rcx, [rsi + 1]
lea r8, [r14 - 1]
mov dl, 0x30
call fcn.180171550
lea ebx, [r15 + 2]
cmp bx, di
jle 0x180026de4
cmp r14, qword [rsp + 0xb0]
jae 0x180026de4
mov byte [rsi + r14], 0x30
inc r14
cmp r14, qword [rsp + 0xb0]
ja 0x180026a4c
mov rax, qword [rsp + 0x20]
mov qword [rax], rsi
mov qword [rax + 8], r14
mov word [rax + 0x10], bx
jmp 0x180026d7f
mov bl, 0x31
lea ebp, [r15 + 2]
cmp bp, di
jle 0x180026e23
cmp r14, qword [rsp + 0xb0]
jae 0x180026e23
mov byte [rsi + r14], bl
inc r14
mov rbx, qword [rsp + 0xb0]
cmp r14, rbx
ja 0x180026a4c
mov rax, qword [rsp + 0x20]
mov qword [rax], rsi
mov qword [rax + 8], r14
mov word [rax + 0x10], bp
jmp 0x180026d7f