Function at 0x1400eca30
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov r14, rcx
mov r12, qword [0x140227680]
cmp r12, 1
jbe 0x1400ed030
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400ed013
mov rax, qword [0x140227680]
cmp rax, 1
jbe 0x1400ed070
mov rcx, qword [0x140227690]
test rcx, rcx
je 0x1400ed0ad
mov edi, dword [r14 + 0x18]
mov r15, qword [rcx + 0x58]
movabs rdx, 0x5555555555555555
movabs rsi, 0x3333333333333333
movabs rbx, 0xf0f0f0f0f0f0f0f
movabs rbp, 0x101010101010101
test r15, r15
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x38], r14
je 0x1400ed004
mov rax, r15
shr rax, 1
and rax, rdx
mov rdx, r15
sub rdx, rax
mov rax, rdx
and rax, rsi
shr rdx, 2
and rdx, rsi
add rdx, rax
mov r10, rdx
shr r10, 4
add r10, rdx
and r10, rbx
imul r10, rbp
shr r10, 0x38
cmp r10, 1
jbe 0x1400ecfdf
mov r13, rdi
cmp r15, rdi
ja 0x1400ecb1a
mov rax, rdi
xor edx, edx
div r15
mov r13, rdx
mov rax, qword [rcx + 0x50]
mov rax, qword [rax + r13*8]
test rax, rax
je 0x1400ecbee
mov r9, qword [rax]
test r9, r9
je 0x1400ecbee
lea r8, [r15 - 1]
mov rax, qword [r9 + 8]
cmp rax, rdi
jne 0x1400ecbbb
mov r14, qword [r9 + 0x10]
cmp dword [r14 + 0x18], edi
jne 0x1400ecbdd
mov rdx, qword [r14]
mov rax, qword [r14 + 8]
sub rax, rdx
mov rcx, qword [rsp + 0x38]
mov rsi, qword [rcx]
mov rbp, qword [rcx + 8]
sub rbp, rsi
cmp rax, rbp
jne 0x1400ecbdd
test rax, rax
je 0x1400ecc22
sar rax, 2
cmp rax, 2
mov ebx, 1
cmovae rbx, rax
mov ebp, dword [rdx]
cmp ebp, dword [rsi]
jne 0x1400ecbdd
mov r11, r12
mov r12, r8
mov r8, rdi
dec rbx
xor ebp, ebp
nop
cmp rbx, rbp
je 0x1400ecc1f
mov ecx, dword [rdx + rbp*4 + 4]
lea rdi, [rbp + 1]
cmp ecx, dword [rsi + rbp*4 + 4]
mov rbp, rdi
je 0x1400ecba0
jmp 0x1400ed0cb
cmp r10d, 1
jbe 0x1400ecff2
cmp rax, r15
jb 0x1400ecbd2
xor edx, edx
div r15
mov rax, rdx
cmp rax, r13
je 0x1400ecb44
jmp 0x1400ecbe9
mov r9, qword [r9]
test r9, r9
jne 0x1400ecb3b
mov r14, qword [rsp + 0x38]
mov ecx, 0x18
call fcn.14011d790
mov rbx, rax
mov qword [rax + 0x10], r14
mov qword [rax + 8], rdi
mov qword [rax], 0
mov rbp, qword [rsp + 0x28]
mov rax, qword [rbp + 0x68]
inc rax
js 0x1400ecc67
cvtsi2ss xmm0, rax
jmp 0x1400ecc7c
mov r12, r11
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rsi, qword [rsp + 0x38]
test rsi, rsi
je 0x1400ecc53
cmp r14, rsi
je 0x1400ecc53
mov rcx, qword [rsi]
test rcx, rcx
je 0x1400ecc4b
mov qword [rsi + 8], rcx
call fcn.14011d780
mov rcx, rsi
call fcn.14011d780
mov rax, r14
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mov rcx, r15
shr rcx, 1
mov eax, r15d
and eax, 1
or rax, rcx
test r15, r15
js 0x1400ecc97
cvtsi2ss xmm1, r15
jmp 0x1400ecca0
cvtsi2ss xmm1, rax
addss xmm1, xmm1
movss xmm2, dword [rbp + 0x70]
je 0x1400ecd16
mulss xmm1, xmm2
ucomiss xmm0, xmm1
ja 0x1400ecd16
mov rax, qword [rbp + 0x50]
mov rcx, qword [rax + r13*8]
test rcx, rcx
jne 0x1400ecd00
lea rcx, [rbp + 0x60]
mov rdx, qword [rbp + 0x60]
mov qword [rbx], rdx
mov qword [rbp + 0x60], rbx
mov qword [rax + r13*8], rcx
mov rax, qword [rbx]
test rax, rax
je 0x1400ecd09
mov rax, qword [rax + 8]
lea rcx, [r15 - 1]
test r15, rcx
je 0x1400ed020
cmp rax, r15
jb 0x1400eccf6
xor edx, edx
div r15
mov rax, rdx
mov rcx, qword [rbp + 0x50]
mov qword [rcx + rax*8], rbx
jmp 0x1400ecd09
mov rax, qword [rcx]
mov qword [rbx], rax
mov qword [rcx], rbx
inc qword [rbp + 0x68]
mov r14, qword [rbx + 0x10]
jmp 0x1400ecc22
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x30], rdi
divss xmm0, xmm2
call fcn.140135b9c
cvttss2si rcx, xmm0
mov rdx, rcx
subss xmm0, dword [0x1401e2fa8]
sar rdx, 0x3f
cvttss2si rax, xmm0
and rax, rdx
or rax, rcx
lea rcx, [r15 + r15]
mov ebx, 1
cmp r15, 3
jb 0x1400ecd63
lea rdx, [r15 - 1]
xor ebx, ebx
test r15, rdx
setne bl
or rbx, rcx
cmp rbx, rax
cmovb rbx, rax
cmp rbx, 1
mov qword [rsp + 0x48], r12
je 0x1400ecffa
lea rax, [rbx - 1]
test rbx, rax
je 0x1400ecd90
mov rcx, rbx
call fcn.14010b600
mov rbx, rax
mov rbp, qword [rsp + 0x28]
mov rdi, qword [rbp + 0x58]
cmp rbx, rdi
jbe 0x1400ed0ff
mov rax, rbx
shr rax, 0x3d
jne 0x1400ed11d
lea rcx, [rbx*8]
call fcn.14011d790
mov rbp, qword [rsp + 0x28]
mov rcx, qword [rbp + 0x50]
mov qword [rbp + 0x50], rax
test rcx, rcx
je 0x1400ecdd8
call fcn.14011d780
mov rbp, qword [rsp + 0x28]
mov qword [rbp + 0x58], rbx
xor eax, eax
mov rcx, qword [rbp + 0x50]
mov qword [rcx + rax*8], 0
inc rax
cmp rbx, rax
jne 0x1400ecdde
mov r15, qword [rbp + 0x60]
test r15, r15
mov r13, qword [rsp + 0x30]
je 0x1400ed246
lea rcx, [rbp + 0x60]
mov r12, qword [r15 + 8]
mov rax, rbx
shr rax, 1
movabs rdx, 0x5555555555555555
and rax, rdx
mov rdx, rbx
sub rdx, rax
mov rax, rdx
movabs rdi, 0x3333333333333333
and rax, rdi
shr rdx, 2
and rdx, rdi
add rdx, rax
mov rdi, rdx
shr rdi, 4
add rdi, rdx
movabs rax, 0xf0f0f0f0f0f0f0f
and rdi, rax
movabs rax, 0x101010101010101
imul rdi, rax
shr rdi, 0x38
cmp rdi, 1
jbe 0x1400ed122
cmp r12, rbx
jb 0x1400ece82
mov rax, r12
xor edx, edx
div rbx
mov r12, rdx
mov rax, qword [rbp + 0x50]
mov qword [rax + r12*8], rcx
mov rcx, qword [r15]
test rcx, rcx
je 0x1400ed246
lea rax, [rbx - 1]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x60], rdi
mov rax, qword [rcx + 8]
cmp edi, 1
jbe 0x1400ed0f5
cmp rax, rbx
jb 0x1400ecebe
xor edx, edx
div rbx
mov rax, rdx
cmp rax, r12
je 0x1400ed028
mov rdx, qword [rbp + 0x50]
cmp qword [rdx + rax*8], 0
jne 0x1400ecee9
mov qword [rdx + rax*8], r15
mov r15, rcx
mov r12, rax
mov rcx, qword [r15]
test rcx, rcx
jne 0x1400ecea4
jmp 0x1400ed246
mov rdx, qword [rcx]
test rdx, rdx
je 0x1400ecfd8
mov rdi, qword [rcx + 0x10]
mov r13d, dword [rdi + 0x18]
mov rsi, qword [rdx + 0x10]
cmp r13d, dword [rsi + 0x18]
jne 0x1400ecfda
mov rbp, qword [rdi]
mov r14, qword [rdi + 8]
sub r14, rbp
mov rdi, r14
sar rdi, 2
cmp rdi, 2
mov r10d, 1
mov qword [rsp + 0x58], rdi
cmovae r10, rdi
mov r8, qword [rsi]
mov rsi, qword [rsi + 8]
sub rsi, r8
cmp r14, rsi
jne 0x1400ecfda
dec r10
mov r11, rdx
mov r9, rcx
test r14, r14
je 0x1400ecf7a
mov edx, dword [rbp]
cmp edx, dword [r8]
jne 0x1400ed0ed
xor edx, edx
cmp r10, rdx
je 0x1400ecf7a
mov edi, dword [rbp + rdx*4 + 4]
lea rsi, [rdx + 1]
cmp edi, dword [r8 + rdx*4 + 4]
mov rdx, rsi
je 0x1400ecf5e
jmp 0x1400ed0e2
mov rdx, qword [r11]
test rdx, rdx
je 0x1400ecfa3
mov rsi, qword [rdx + 0x10]
cmp r13d, dword [rsi + 0x18]
jne 0x1400ecfa5
mov r9, r11
mov r8, qword [rsi]
mov rsi, qword [rsi + 8]
sub rsi, r8
mov r11, rdx
cmp r14, rsi
je 0x1400ecf4b
jmp 0x1400ecfa8
xor edx, edx
mov r9, r11
mov qword [r15], rdx
mov rbp, qword [rsp + 0x28]
mov rdx, qword [rbp + 0x50]
mov rdx, qword [rdx + rax*8]
mov rdx, qword [rdx]
mov qword [r9], rdx
mov rdx, qword [rbp + 0x50]
mov rax, qword [rdx + rax*8]
mov qword [rax], rcx
mov r13, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x60]
jmp 0x1400ecedc
xor edx, edx
mov r9, rcx
jmp 0x1400ecfa8
mov eax, 0xffffffff
add eax, r15d
mov r13d, edi
and r13d, eax
jmp 0x1400ecb1a
and rax, r8
jmp 0x1400ecbd2
mov ebx, 2
jmp 0x1400ecd90
movabs r13, 0xaaaaaaaaaaaaaaaa
jmp 0x1400ecbee
mov rcx, r12
call fcn.1400fd520
jmp 0x1400eca65
and rax, rcx
jmp 0x1400eccf6
mov r15, rcx
jmp 0x1400ecedc
lea rcx, [0x140227680]
call fcn.1400f5aa0
test al, al
je 0x1400ed290
mov qword [0x140227688], 0
lea r12, [0x140227688]
lea rcx, [0x140227680]
mov rdx, r12
xor r8d, r8d
mov r9, rcx
call fcn.140014c00
jmp 0x1400eca54
lea rcx, [0x140227680]
call fcn.1400f5aa0
test al, al
je 0x1400ed29c
mov qword [0x140227688], 0
lea rdx, [0x140227688]
lea rcx, [0x140227680]
xor r8d, r8d
mov r9, rcx
call fcn.140014c00
jmp 0x1400eca76
mov ecx, 0xa0
call fcn.14011d790
mov rcx, rax
call fcn.1400141b0
mov rcx, qword [0x140227690]
jmp 0x1400eca86
cmp rdi, rax
mov rdi, r8
mov r8, r12
mov r12, r11
jb 0x1400ecbdd
jmp 0x1400ecc22
cmp rsi, qword [rsp + 0x58]
jae 0x1400ecf7a
mov rdx, r11
jmp 0x1400ecfa8
and rax, qword [rsp + 0x50]
jmp 0x1400ecebe
mov r13, qword [rsp + 0x30]
jae 0x1400ed246
mov rax, qword [rbp + 0x68]
test rax, rax
js 0x1400ed12e
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
jmp 0x1400ed146
call fcn.14011d580
lea rax, [rbx - 1]
and r12, rax
jmp 0x1400ece82
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mov rax, qword [rsp + 0x28]
divss xmm0, dword [rax + 0x70]
call fcn.140135b9c
cvttss2si rcx, xmm0
mov rdx, rcx
subss xmm0, dword [0x1401e2fa8]
cvttss2si rax, xmm0
sar rdx, 0x3f
and rax, rdx
or rax, rcx
cmp rdi, 3
jb 0x1400ed1f7
mov rcx, rdi
shr rcx, 1
movabs rdx, 0x5555555555555555
and rcx, rdx
mov rdx, rdi
sub rdx, rcx
mov rcx, rdx
shr rcx, 2
movabs rbp, 0x3333333333333333
and rdx, rbp
and rcx, rbp
add rcx, rdx
mov rdx, rcx
shr rdx, 4
add rdx, rcx
movabs rcx, 0xf0f0f0f0f0f0f0f
and rdx, rcx
movabs rcx, 0x101010101010101
imul rdx, rcx
shr rdx, 0x38
cmp edx, 1
ja 0x1400ed1f7
cmp rax, 2
jb 0x1400ed1ff
dec rax
bsr rcx, rax
xor ecx, 0x3f
neg cl
mov eax, 1
shl rax, cl
jmp 0x1400ed1ff
mov rcx, rax
call fcn.14010b600
cmp rbx, rax
cmovb rbx, rax
cmp rbx, rdi
mov rbp, qword [rsp + 0x28]
mov r13, qword [rsp + 0x30]
jae 0x1400ed246
test rbx, rbx
jne 0x1400ecda2
mov rcx, qword [rbp + 0x50]
mov qword [rbp + 0x50], 0
test rcx, rcx
je 0x1400ed234
call fcn.14011d780
mov rbp, qword [rsp + 0x28]
mov qword [rbp + 0x58], 0
mov r13, qword [rsp + 0x30]
mov r15, qword [rbp + 0x58]
lea rax, [r15 - 1]
test r15, rax
je 0x1400ed276
cmp r15, r13
mov r12, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
ja 0x1400eccb0
mov rax, r13
xor edx, edx
div r15
mov r13, rdx
jmp 0x1400eccb0
mov eax, 0xffffffff
add eax, r15d
and r13d, eax
mov r12, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
jmp 0x1400eccb0
mov r12, qword [0x140227680]
jmp 0x1400eca54
mov rax, qword [0x140227680]
jmp 0x1400eca76