Function at 0x140084d00
Capabilities:
Encode data using base64
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
movapd xmmword [rsp + 0x40], xmm6
mov rsi, rcx
mov rax, qword [0x14012c028]
xor rax, rsp
mov qword [rsp + 0x38], rax
call fcn.140096378
mov ebp, dword [rax]
call fcn.140096378
mov dword [rax], 0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rbx, qword [0x1401446f8]
cmp rbx, 1
jbe 0x140085000
mov r14, qword [rsi + 8]
mov ecx, dword [0x14013b660]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140085047
mov rcx, qword [rbx]
shl rcx, 4
mov qword [rax + rcx], r14
mov ecx, dword [rbx + 8]
mov rdx, qword [rbx]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov r14, qword [rsi]
test r14, r14
jne 0x140084e77
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.140096378
mov dword [rax], ebp
cmp byte [rsi + 0x38], 0
je 0x140084dc0
mov rbx, qword [rsi + 0x48]
test rbx, rbx
jne 0x140084eea
mov byte [rsi + 0x38], 0
mov rax, qword [rsi + 0x18]
test rax, rax
jne 0x1400851cb
mov rdi, qword [rsi + 0x28]
mov qword [rsi + 0x28], 0
test rdi, rdi
jne 0x14008522a
mov rax, qword [rsi + 0x18]
test rax, rax
jne 0x14008523f
xor ecx, ecx
mov rax, qword [0x14012dfa0]
and rax, rcx
cmp rax, qword [0x14012df88]
je 0x140085258
mov qword [rsi + 0x18], 0
mov rcx, qword [rsi + 8]
mov rax, qword [0x14012dfa0]
and rax, rcx
cmp rax, qword [0x14012df88]
je 0x140085262
mov qword [rsi + 8], 0
mov rcx, qword [rsi]
mov rax, qword [0x14012dfa0]
and rax, rcx
cmp rax, qword [0x14012df88]
je 0x140084f9c
mov qword [rsi], 0
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1400985e0
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp qword [rsi + 8], 0
jne 0x140084d9a
mov rbx, qword [r14 + 0x28]
add rbx, 0x28
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140084fc0
mov qword [r14 + 0x20], 0
cmp byte [r14 + 0x3a], 0
jne 0x140084ed5
cmp byte [r14 + 0x38], 0
mov rax, qword [r14 + 0x28]
jne 0x140084fcd
dec dword [rax + 0x120]
cmp byte [r14 + 0x18], 0
je 0x14008526c
cmp byte [r14 + 0x19], 0
je 0x140084fa6
mov word [r14 + 0x38], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x140084d9a
mov rax, qword [fcn.14008cb20]
lea rcx, [0x140095b10]
cmp rax, rcx
jne 0x1400851b5
lea rdi, [rsp + 0x30]
mov qword [rdi], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rdi]
movabs rcx, 0x8637bd05af6
cmp rax, rcx
jg 0x14008526e
imul rax, rax, 0xf4240
cqo
idiv qword [0x14013e7d0]
mov qword [rsp + 0x28], rax
mov r15, qword [rsi + 0x40]
xor ecx, ecx
cmp rax, r15
setns cl
movabs r12, 0x7fffffffffffffff
add rcx, r12
mov r14, rax
sub r14, r15
cmovo r14, rcx
cmp r14, 0xf4240
jge 0x14008505a
mov rdi, qword [rsi + 0x48]
test rdi, rdi
je 0x140084dbc
lock dec dword [rdi]
jne 0x140084dbc
mov rcx, rdi
call fcn.140030990
mov rcx, rdi
call fcn.140096334
jmp 0x140084dbc
call fcn.14006a8b0
jmp 0x140084e4d
cmp byte [r14 + 0x39], 0
mov rcx, qword [r14 + 0x28]
jne 0x140085295
dec dword [rcx + 0x124]
jmp 0x140084ed5
mov rcx, rbx
call fcn.140062160
jmp 0x140084e9b
mov rcx, qword [rax + 0x40]
mov rdx, qword [rax + 0x100]
dec rdx
mov qword [rax + 0x100], rdx
cmp rcx, qword [rax + 0x48]
je 0x140084ff5
cmp qword [rax + 0x110], rdx
jae 0x1400851a8
mov word [rax + 0x78], 0
jmp 0x140084ebf
lea rcx, [0x1401446f8]
call fcn.1400099e0
test al, al
je 0x1400852a6
mov qword [0x140144708], 0
lea rbx, [0x140144700]
mov qword [0x140144700], 0xffffffffffffffff
mov rcx, rbx
xor edx, edx
call fcn.140005670
mov qword [0x1401446f8], rbx
jmp 0x140084d5b
test r14, r14
je 0x140084d8e
call fcn.1400051d0
jmp 0x140084d75
mov rcx, qword [rbx + 0x1f0]
mov edx, 0x3938700
lea r8, [rdx + rcx]
sar r8, 0x3f
btc r8, 0x3f
add rdx, rcx
cmovo rdx, r8
cmp rdx, rax
jle 0x1400852b2
mov rax, qword [rbx + 0x1f0]
xor ecx, ecx
cmp r15, rax
setns cl
add rcx, r12
sub r15, rax
movabs rdi, 0x8000000000000001
cmovo r15, rcx
lea rax, [r15 + rdi]
cmp rax, 2
jb 0x1400852ec
cvtsi2sd xmm0, r15
divsd xmm0, qword [0x140119c00]
call fcn.1400c7a88
movsd xmm6, qword [0x140119c20]
ucomisd xmm6, xmm0
jb 0x140085302
maxsd xmm0, qword [0x140119c28]
cvttsd2si ebp, xmm0
add rdi, r14
cmp rdi, 2
jb 0x1400850ff
xorps xmm0, xmm0
cvtsi2sd xmm0, r14
divsd xmm0, qword [0x140119c00]
jmp 0x140085107
movsd xmm0, qword [0x140119c30]
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
jb 0x140085319
addsd xmm0, qword [0x1401092c0]
call fcn.1400c7a88
ucomisd xmm6, xmm0
jb 0x14008532b
maxsd xmm0, qword [0x140119c28]
cvttsd2si r14d, xmm0
mov r15, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov r12, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
add r14d, ebp
cmp r14d, 0x3c
mov r13d, 0x3c
cmovl r13d, r14d
lea rdi, [rbx + 8]
mov rcx, rdi
call r15
test al, al
je 0x140085344
cmp ebp, r13d
jge 0x140085182
movsxd rax, ebp
movsxd rcx, r13d
inc qword [rbx + rax*8 + 0x10]
inc rax
cmp rcx, rax
jne 0x140085175
mov rcx, rdi
call r12
cmp r14d, 0x3d
jl 0x140084f71
mov rbx, qword [rbx + 0x1f8]
sub r14d, r13d
xor ebp, ebp
test rbx, rbx
jne 0x140085147
jmp 0x140084f71
movzx ecx, word [rcx + 0x10]
mov word [rax + 0x78], cx
jmp 0x140084ebf
lea rdi, [rsp + 0x28]
mov rcx, rdi
call qword [0x140150008]
mov rax, qword [rdi]
jmp 0x140084f41
mov ecx, dword [rsi + 0x20]
cmp dword [rax + 0x18], ecx
jbe 0x140084dcd
mov rax, qword [rax + 0x10]
shl rcx, 7
cmp dword [rax + rcx + 0x68], 0
je 0x140084dcd
mov rbx, qword [0x14013e6e0]
lea rdi, [rbx + 0xc8]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140085351
mov rcx, qword [rsi + 0x18]
sub rbx, 0xffffffffffffff80
mov edx, dword [rsi + 0x20]
mov r8, rbx
call fcn.1400e38a0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x140084dcd
mov rcx, rdi
call fcn.1400e3160
mov rcx, rdi
call fcn.140096334
jmp 0x140084de2
mov rcx, qword [rax + 8]
lock dec dword [rcx + 0x38]
mov rax, qword [rax + 8]
lock inc dword [rax + 0x3c]
mov rcx, qword [rsi + 0x18]
jmp 0x140084df1
call fcn.14006a8b0
jmp 0x140084e08
call fcn.14006a8b0
jmp 0x140084e2b
ud2
mov rcx, qword [0x14013e7d0]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140084f3c
dec qword [rcx + 0x108]
call fcn.1400f94d0
jmp 0x140084ed5
mov rbx, qword [0x1401446f8]
jmp 0x140084d5b
lea rdi, [rsp + 0x30]
mov rcx, rdi
mov rdx, rax
call fcn.1400586e0
mov rdi, qword [rdi]
test rdi, rdi
je 0x140085083
lock dec dword [rdi]
jne 0x140085083
mov rcx, rdi
call fcn.140030990
mov rcx, rdi
call fcn.140096334
jmp 0x140085083
shr r15, 0x3f
lea rax, [0x1401178e0]
movsd xmm0, qword [rax + r15*8]
jmp 0x1400850b9
xor eax, eax
ucomisd xmm0, qword [0x140119c28]
mov ebp, 0x7fffffff
cmovb ebp, eax
jmp 0x1400850e4
addsd xmm0, qword [0x140119c38]
call fcn.1400c7040
jmp 0x140085122
xor eax, eax
ucomisd xmm0, qword [0x140119c28]
mov r14d, 0x7fffffff
cmovb r14d, eax
jmp 0x140085139
mov rcx, rdi
call fcn.140062160
jmp 0x14008516a
mov rcx, rdi
call fcn.140062160
jmp 0x140085209