Function at 0x1400f4070
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rsi, rcx
cmp rdx, 1
je 0x1400f43a6
mov rdi, rdx
lea rax, [rdx - 1]
test rdx, rax
je 0x1400f40a4
mov rcx, rdi
call fcn.1400f4500
mov rdi, rax
mov rbx, qword [rsi + 8]
cmp rdi, rbx
jbe 0x1400f43b9
mov rax, rdi
shr rax, 0x3d
jne 0x1400f43e8
lea rcx, [rdi*8]
call fcn.1401039c0
mov rcx, qword [rsi]
mov qword [rsi], rax
test rcx, rcx
je 0x1400f40db
call fcn.1401039b0
mov qword [rsi + 8], rdi
lea r8, [rdi - 1]
mov eax, edi
and eax, 3
cmp r8, 3
jae 0x1400f40f2
xor ecx, ecx
jmp 0x1400f4139
mov rdx, rdi
and rdx, 0xfffffffffffffffc
xor ecx, ecx
nop dword [rax + rax]
mov rbp, qword [rsi]
mov qword [rbp + rcx*8], 0
mov rbp, qword [rsi]
mov qword [rbp + rcx*8 + 8], 0
mov rbp, qword [rsi]
mov qword [rbp + rcx*8 + 0x10], 0
mov rbp, qword [rsi]
mov qword [rbp + rcx*8 + 0x18], 0
add rcx, 4
cmp rdx, rcx
jne 0x1400f4100
test rax, rax
je 0x1400f4155
nop
mov rdx, qword [rsi]
mov qword [rdx + rcx*8], 0
add rcx, 1
add rax, 0xffffffffffffffff
jne 0x1400f4140
mov r9, qword [rsi + 0x10]
test r9, r9
je 0x1400f43be
lea rcx, [rsi + 0x10]
mov r10, qword [r9 + 8]
mov rax, rdi
shr rax, 1
movabs rdx, 0x5555555555555555
and rdx, rax
mov rax, rdi
sub rax, rdx
movabs rdx, 0x3333333333333333
mov rbp, rax
and rbp, rdx
shr rax, 2
and rax, rdx
add rax, rbp
mov rdx, rax
shr rdx, 4
add rdx, rax
movabs rax, 0xf0f0f0f0f0f0f0f
and rax, rdx
movabs r11, 0x101010101010101
imul r11, rax
shr r11, 0x38
cmp r11, 1
ja 0x1400f43cf
and r10, r8
mov rax, qword [rsi]
mov qword [rax + r10*8], rcx
mov r13, qword [r9]
test r13, r13
je 0x1400f43be
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x40], r11
jmp 0x1400f420f
mov r9, r13
mov r13, qword [r9]
test r13, r13
je 0x1400f43be
mov rbx, qword [r13 + 8]
cmp r11d, 1
ja 0x1400f4360
and rbx, r8
cmp rbx, r10
je 0x1400f4200
mov rax, qword [rsi]
cmp qword [rax + rbx*8], 0
je 0x1400f4382
mov rax, qword [r13]
test rax, rax
je 0x1400f4391
movzx edi, byte [r13 + 0x27]
mov qword [rsp + 0x30], rdi
test dil, dil
jns 0x1400f4258
mov rcx, qword [r13 + 0x18]
mov qword [rsp + 0x30], rcx
lea r12, [r13 + 0x10]
mov r15, rdi
dec r15
mov r14, r13
jmp 0x1400f427c
mov rax, qword [r14]
test rax, rax
je 0x1400f4399
mov rdx, r14
mov r14, rax
movzx eax, byte [rax + 0x27]
mov rcx, rax
test al, al
jns 0x1400f4291
mov rcx, qword [r14 + 0x18]
cmp qword [rsp + 0x30], rcx
jne 0x1400f439f
mov qword [rsp + 0x38], rdx
lea rdx, [r14 + 0x10]
test al, al
jns 0x1400f42ac
mov rdx, qword [rdx]
mov rax, qword [r12]
mov rcx, r12
test dil, dil
cmovs rcx, rax
js 0x1400f42ea
je 0x1400f4270
cmp byte [rdx], al
jne 0x1400f4328
xor eax, eax
nop word cs:[rax + rax]
nop
cmp r15, rax
je 0x1400f4270
movzx ecx, byte [r13 + rax + 0x11]
lea rbp, [rax + 1]
cmp cl, byte [rdx + rax + 1]
mov rax, rbp
je 0x1400f42d0
jmp 0x1400f4328
cmp qword [rsp + 0x30], 0
je 0x1400f4270
mov r8, qword [rsp + 0x30]
mov rbp, r9
mov qword [rsp + 0x50], rdi
mov rdi, r10
call fcn.140108890
mov r11, qword [rsp + 0x40]
mov r10, rdi
mov rdi, qword [rsp + 0x50]
mov r9, rbp
mov r8, qword [rsp + 0x48]
test eax, eax
je 0x1400f4270
mov rdi, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x38]
mov qword [r9], r14
mov rax, qword [rsi]
mov rax, qword [rax + rbx*8]
mov rax, qword [rax]
mov qword [rdx], rax
mov rax, qword [rsi]
mov rax, qword [rax + rbx*8]
mov qword [rax], r13
jmp 0x1400f4203
cmp rbx, rdi
jb 0x1400f4220
mov rax, rbx
xor edx, edx
div rdi
mov rbx, rdx
cmp rbx, r10
je 0x1400f4200
jmp 0x1400f4225
mov qword [rax + rbx*8], r9
mov r9, r13
mov r10, rbx
jmp 0x1400f4203
mov rdx, r13
xor r14d, r14d
jmp 0x1400f4332
mov rdx, r14
xor r14d, r14d
mov rdi, qword [rsp + 0x28]
jmp 0x1400f4332
mov rbx, qword [rsi + 8]
mov edi, 2
cmp rbx, 2
jb 0x1400f40be
cmp rdi, rbx
jb 0x1400f43ed
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp r10, rdi
jb 0x1400f41d3
mov rax, r10
xor edx, edx
div rdi
mov r10, rdx
jmp 0x1400f41d3
call fcn.140104ec0
mov rax, qword [rsi + 0x18]
test rax, rax
js 0x1400f43fd
cvtsi2ss xmm0, rax
jmp 0x1400f4412
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
divss xmm0, dword [rsi + 0x20]
call fcn.14011c424
cvttss2si rcx, xmm0
movss xmm1, dword [0x1401c6f98]
movaps xmm2, xmm0
subss xmm2, xmm1
cvttss2si rax, xmm2
btc rax, 0x3f
ucomiss xmm0, xmm1
cmovb rax, rcx
cmp rbx, 3
jb 0x1400f44c4
mov rcx, rbx
shr rcx, 1
movabs rdx, 0x5555555555555555
and rdx, rcx
mov rbp, rbx
sub rbp, rdx
movabs rdx, 0x3333333333333333
mov rcx, rbp
shr rcx, 2
and rbp, rdx
and rcx, rdx
add rcx, rbp
mov rdx, rcx
shr rdx, 4
add rdx, rcx
movabs rcx, 0xf0f0f0f0f0f0f0f
and rcx, rdx
movabs rdx, 0x101010101010101
imul rdx, rcx
shr rdx, 0x38
cmp edx, 1
ja 0x1400f44c4
cmp rax, 2
jb 0x1400f44cc
dec rax
bsr rcx, rax
xor ecx, 0x3f
neg cl
mov eax, 1
shl rax, cl
jmp 0x1400f44cc
mov rcx, rax
call fcn.1400f4500
cmp rdi, rax
cmovb rdi, rax
cmp rdi, rbx
jae 0x1400f43be
mov rcx, rsi
mov rdx, rdi
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1401398b0