Function at 0x140027290
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xf0]
sub rsp, 0x1f0
mov rax, qword [0x14003d0d8]
xor rax, rsp
mov qword [rbp + 0xe0], rax
mov r13, rcx
mov r14, r8
mov ecx, dword [0x14003d17c]
mov r15d, edx
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_TlsGetValue]
or ebx, 0xffffffff
mov r12, rax
test rax, rax
jne 0x1400272f9
mov ebx, dword [0x14003d17c]
lea rdx, [rbp - 0x68]
and dword [rbp - 0x68], eax
lea r12, [rbp - 0x68]
mov ecx, ebx
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_TlsSetValue]
inc dword [r12]
mov rsi, qword [0x14003d048]
lea rax, [0x14003d048]
lea rdx, [0x140035650]
cmp rsi, rax
je 0x140027369
test byte [rsi + 0x1c], 1
je 0x140027369
mov eax, dword [r12]
lea ecx, [rax + rax*4]
cmp ecx, 0x1e1
ja 0x140027338
mov eax, ecx
mov ecx, 0x1df
sub rcx, rax
jmp 0x14002733a
xor ecx, ecx
lea r9, [rcx + rdx]
mov qword [rsp + 0x30], r14
mov rcx, qword [rsi + 0x10]
lea r8, [0x140036d48]
mov edx, reloc.ProximityCommon.dll_Ordinal_20
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r13
call fcn.1400013dc
mov rsi, qword [0x14003d048]
mov rax, r14
neg rax
sbb edi, edi
xor ecx, ecx
not edi
and edi, 0x80004003
test r14, r14
je 0x14002738b
test r15d, r15d
mov eax, 0x80070057
cmove edi, eax
mov dword [rsp + 0x58], ecx
mov dword [rbp - 0x38], ecx
mov qword [rbp - 0x30], rcx
mov dword [rbp - 0x28], ecx
test edi, edi
js 0x1400273b5
mov r8, r14
lea rcx, [rbp - 0x38]
mov edx, r15d
call fcn.140028564
mov rsi, qword [0x14003d048]
mov edi, eax
xor edx, edx
lea rcx, [rbp - 0x20]
mov r8d, 0x100
call sub.msvcrt.dll_memset
and qword [rbp - 0x58], 0
lea r15, [0x140033ac8]
and dword [rbp - 0x50], 0
xor r14d, r14d
and dword [rbp - 0x4c], 0
and qword [rbp - 0x48], 0
and dword [rbp - 0x40], 0
and dword [rsp + 0x48], 0
mov qword [rbp - 0x60], r15
mov dword [rsp + 0x60], r14d
test edi, edi
js 0x140027895
mov esi, 0x8007000d
and qword [rbp - 0x78], 0
lea rax, [0x140033b28]
and dword [rbp - 0x70], 0
lea r8, [rsp + 0x50]
and dword [rbp - 0x6c], 0
lea rdx, [rsp + 0x44]
and qword [rsp + 0x50], 0
lea rcx, [rbp - 0x38]
and dword [rsp + 0x44], 0
mov qword [rbp - 0x80], rax
mov byte [rsp + 0x41], 0
call fcn.140028b34
mov edi, eax
test eax, eax
js 0x14002771a
mov edx, dword [rsp + 0x44]
test edx, edx
cmove edi, esi
test edi, edi
js 0x14002771a
mov r8, qword [rsp + 0x50]
lea rax, [rsp + 0x41]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x80]
call fcn.140029380
mov edi, eax
test eax, eax
js 0x14002771a
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 0x80]
call fcn.140029050
mov edi, eax
test eax, eax
js 0x14002771a
mov edx, dword [rsp + 0x58]
lea rcx, [rbp - 0x38]
call fcn.1400289cc
mov edi, eax
test eax, eax
js 0x14002771a
lea rdx, [rsp + 0x48]
lea rcx, [rbp - 0x80]
call fcn.140028d10
mov edi, eax
test eax, eax
js 0x14002771a
test r14d, r14d
jne 0x140027514
cmp dword [rsp + 0x48], 1
je 0x1400274d8
mov edi, esi
jmp 0x14002771a
lea r8, [rsp + 0x40]
mov byte [rsp + 0x40], 0
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x60]
call fcn.140029d98
mov edi, eax
test eax, eax
js 0x14002771a
cmp byte [rsp + 0x40], 1
jne 0x1400277fb
mov r14d, 1
mov dword [rsp + 0x60], r14d
jmp 0x14002770b
cmp r14d, 1
jne 0x1400277f4
mov r15d, dword [rsp + 0x48]
cmp r15d, 8
je 0x140027730
mov ecx, r15d
sub ecx, 3
je 0x140027568
sub ecx, r14d
je 0x140027561
sub ecx, r14d
je 0x14002755a
sub ecx, r14d
je 0x140027553
cmp ecx, r14d
jne 0x14002770b
lea esi, [r14 + 3]
jmp 0x14002756a
mov esi, 3
jmp 0x14002756a
mov esi, 2
jmp 0x14002756a
mov esi, 1
jmp 0x14002756a
xor esi, esi
mov eax, 0x100
cmp dword [r13 + 0x1a14], eax
jae 0x140027706
xor r14d, r14d
lea rcx, [0x140033a90]
mov qword [rsp + 0x68], rcx
mov r8d, eax
lea rcx, [rbp - 0x20]
mov qword [rsp + 0x70], r14
xor edx, edx
mov qword [rsp + 0x78], r14
mov dword [rsp + 0x5c], r14d
mov qword [rsp + 0x50], r14
mov dword [rsp + 0x44], r14d
call sub.msvcrt.dll_memset
lea rax, [rbp - 0x20]
mov byte [rsp + 0x40], r14b
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x50]
lea rax, [rsp + 0x40]
lea r8, [rsp + 0x44]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x68]
call fcn.14002a480
mov edi, eax
test eax, eax
js 0x1400276dc
mov r14d, dword [rsp + 0x44]
test r14d, r14d
je 0x1400276dc
mov dl, byte [rsp + 0x40]
lea r9, [rsp + 0x5c]
lea r8, [rbp - 0x20]
lea rcx, [rbp - 0x60]
call fcn.14002a278
mov edi, eax
test eax, eax
js 0x140027675
mov eax, dword [r13 + 0x1a14]
add rax, 0x16
lea rax, [rax + rax*2]
mov dword [r13 + rax*8], esi
mov eax, dword [r13 + 0x1a14]
lea rcx, [rax + rax*2]
mov eax, dword [rsp + 0x5c]
mov dword [r13 + rcx*8 + 0x214], eax
mov eax, dword [r13 + 0x1a14]
lea rcx, [rax + rax*2]
mov rax, qword [rsp + 0x50]
mov qword [r13 + rcx*8 + 0x220], rax
mov eax, dword [r13 + 0x1a14]
lea rcx, [rax + rax*2]
mov dword [r13 + rcx*8 + 0x218], r14d
inc dword [r13 + 0x1a14]
jmp 0x1400276eb
cmp eax, 0x80070490
jne 0x1400276dc
mov rdx, qword [0x14003d048]
lea rax, [0x14003d048]
cmp rdx, rax
je 0x1400276da
test byte [rdx + 0x1c], 4
je 0x1400276da
mov eax, dword [r12]
inc eax
lea ecx, [rax + rax*4]
cmp ecx, 0x1e1
ja 0x1400276b2
mov eax, ecx
mov ecx, 0x1df
sub rcx, rax
jmp 0x1400276b4
xor ecx, ecx
lea rax, [rbp - 0x20]
mov dword [rsp + 0x30], r14d
mov qword [rsp + 0x28], rax
lea r9, [0x140035650]
add r9, rcx
mov dword [rsp + 0x20], r15d
mov rcx, qword [rdx + 0x10]
call fcn.140026758
xor edi, edi
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1400276eb
call fcn.14003010c
lea rax, [0x140033a90]
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x68], rax
call fcn.140028ce0
mov r14d, dword [rsp + 0x60]
mov esi, 0x8007000d
test edi, edi
js 0x14002771a
cmp byte [rsp + 0x41], 1
je 0x140027853
lea rcx, [rbp - 0x80]
call fcn.140028ce0
test edi, edi
js 0x140027887
jmp 0x140027401
cmp byte [r13 + 0x20c], 0
jne 0x14002770b
and qword [rsp + 0x70], 0
lea r15, [0x140033a58]
and dword [rsp + 0x78], 0
lea r9, [r13 + 0x208]
and dword [rsp + 0x7c], 0
lea r8, [r13 + 8]
lea rdx, [rbp - 0x80]
mov qword [rsp + 0x68], r15
lea rcx, [rsp + 0x68]
call fcn.14002a730
mov edi, eax
test eax, eax
js 0x14002777f
mov byte [r13 + 0x20c], 1
jmp 0x1400277e0
cmp eax, 0x80070032
jne 0x1400277e0
mov r10, qword [0x14003d048]
lea rax, [0x14003d048]
cmp r10, rax
je 0x1400277de
test byte [r10 + 0x1c], 4
je 0x1400277de
mov eax, dword [r12]
inc eax
lea ecx, [rax + rax*4]
cmp ecx, 0x1e1
ja 0x1400277bd
mov eax, ecx
mov ecx, 0x1df
sub rcx, rax
jmp 0x1400277bf
xor ecx, ecx
lea r9, [0x140035650]
mov edx, Ordinal_24
add r9, rcx
lea r8, [0x140036d48]
mov rcx, qword [r10 + 0x10]
call fcn.1400012b0
xor edi, edi
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x68], r15
call fcn.140028ce0
jmp 0x14002770b
mov edi, esi
jmp 0x14002770b
mov r10, qword [0x14003d048]
lea rax, [0x14003d048]
cmp r10, rax
je 0x140027853
test byte [r10 + 0x1c], 4
je 0x140027853
mov eax, dword [r12]
inc eax
lea ecx, [rax + rax*4]
cmp ecx, 0x1e1
ja 0x140027832
mov eax, ecx
mov ecx, 0x1df
sub rcx, rax
jmp 0x140027834
xor ecx, ecx
lea r9, [0x140035650]
mov edx, reloc.ProximityCommon.dll_Ordinal_21
add r9, rcx
lea r8, [0x140036d48]
mov rcx, qword [r10 + 0x10]
call fcn.1400012b0
lea rcx, [rbp - 0x80]
call fcn.140028ce0
test edi, edi
js 0x140027887
mov edx, dword [r13 + 0x1a14]
lea rcx, [r13 + 0x210]
and qword [rsp + 0x20], 0
lea r9, [0x140027950]
mov r8d, reloc.ProximityCommon.dll_Ordinal_24
call qword [sym.imp.msvcrt.dll_qsort_s]
mov rsi, qword [0x14003d048]
lea r15, [0x140033ac8]
lea rax, [0x14003d048]
cmp rsi, rax
je 0x1400278ec
test byte [rsi + 0x1c], 1
je 0x1400278ec
mov eax, dword [r12]
lea ecx, [rax + rax*4]
cmp ecx, 0x1e1
ja 0x1400278c2
mov eax, ecx
mov ecx, 0x1df
sub rcx, rax
jmp 0x1400278c4
xor ecx, ecx
lea r9, [0x140035650]
mov dword [rsp + 0x28], edi
add r9, rcx
mov qword [rsp + 0x20], r13
mov rcx, qword [rsi + 0x10]
lea r8, [0x140036d48]
mov edx, reloc.ProximityCommon.dll_Ordinal_24
call fcn.140001730
mov rcx, qword [rbp - 0x48]
mov qword [rbp - 0x60], r15
call fcn.14003010c
lea rcx, [rbp - 0x60]
call fcn.140028ce0
or eax, 0xffffffff
add dword [r12], eax
cmp ebx, eax
je 0x140027924
mov ecx, ebx
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_TlsGetValue]
test rax, rax
je 0x140027924
xor edx, edx
mov ecx, ebx
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_TlsSetValue]
mov eax, edi
mov rcx, qword [rbp + 0xe0]
xor rcx, rsp
call fcn.1400304d0
mov rbx, qword [rsp + 0x238]
add rsp, 0x1f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret