Function at 0x1400e58a0
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0xc8
movaps xmmword [rsp + 0xb0], xmm6
mov rsi, rcx
mov rax, qword [0x14033f038]
xor rax, rsp
mov qword [rsp + 0xa8], rax
lea rax, [0x1402fd020]
mov qword [rcx], rax
lea rax, str.PW__
mov qword [rcx + 8], rax
lea rax, [0x1402fd138]
mov qword [rcx + 0x10], rax
lea rax, [0x1402fef88]
mov qword [rcx + 0x18], rax
test byte [0x140342240], 0x19
jne 0x1400e5fc7
mov r15, qword [rsi + 0x3e0]
lea r14, [rsi + 0x3e8]
cmp r15, r14
je 0x1400e5960
lea rdi, [rsi + 0x118]
mov rbx, qword [r15 + 0x20]
mov rcx, rdi
mov rdx, rbx
call fcn.1400b6340
mov rcx, rbx
call fcn.140064f00
test r15, r15
je 0x1400e6197
mov rcx, qword [r15 + 8]
test rcx, rcx
jne 0x1400e5fa9
mov rax, qword [r15 + 0x10]
cmp qword [rax], r15
mov r15, rax
jne 0x1400e594c
mov r15, rax
cmp rax, r14
jne 0x1400e591f
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rax, qword [rax + 0x88]
call qword [case.0x140211850.0]
mov rcx, qword [rsi + 0x3e8]
call fcn.1400e6310
mov qword [rsi + 0x3e0], r14
xorps xmm6, xmm6
movups xmmword [rsi + 0x3e8], xmm6
lea rdi, [rsi + 0x3f8]
lea rbx, [rsi + 0x400]
mov rdx, qword [rsi + 0x400]
mov rcx, rdi
call fcn.140064a50
mov qword [rsi + 0x3f8], rbx
movups xmmword [rsi + 0x400], xmm6
mov rcx, qword [rsi + 0x338]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
je 0x1400e6021
mov qword [rsi + 0x338], 0
cmp byte [rsi + 0x429], 0
je 0x1400e5a06
lea rdx, [rsi + 0x18]
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rax, qword [rax + 0x98]
call qword [case.0x140211850.0]
lea rbx, [rsi + 0x468]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xa0], rax
movaps xmm0, xmmword [0x140301d60]
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
mov rax, qword [rsi + 0x468]
cmp rax, qword [rsi + 0x470]
jne 0x1400e5eab
xorps xmm0, xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0xa0], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x70], 0
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x1400e5b0a
lea r14, [rsp + 0x80]
mov rcx, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa0]
mov r8, qword [rax + 8]
sub r8, qword [rax]
sar r8, 3
cmp r8, rdx
cmovae r8, rdx
cmp rcx, r8
je 0x1400e5b0a
mov rdx, qword [rax]
mov rax, qword [rax + 8]
sub rax, rdx
sar rax, 3
cmp rax, rcx
jbe 0x1400e5fc4
mov rcx, qword [rdx + rcx*8]
mov rax, qword [rcx]
mov rax, qword [rax]
call qword [case.0x140211850.0]
cmp qword [rsp + 0x90], 0
je 0x1400e5afd
inc qword [rsp + 0x98]
mov rcx, r14
call fcn.1400e6350
mov rax, qword [rsp + 0x90]
test rax, rax
jne 0x1400e5a94
lea rcx, [rsp + 0x50]
call fcn.1400e63a0
lea rcx, [rsp + 0x80]
call fcn.1400e63a0
mov rcx, qword [rsi + 0x30]
mov rax, qword [rcx]
mov rax, qword [rax + 0x50]
call qword [case.0x140211850.0]
test rax, rax
je 0x1400e5b96
mov eax, dword [0x14035aa80]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400e6155
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400e5b96
mov rcx, qword [0x14035aa70]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x14035aa78]
mov rdx, qword [0x14035aa70]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov qword [rsi + 0x4b8], 0
mov rax, qword [rsi + 0x4b0]
mov byte [rax + 4], 1
mov rcx, qword [rsi + 0x4b0]
test rcx, rcx
je 0x1400e5bc2
lock dec dword [rcx]
jne 0x1400e5bc2
call fcn.14016eccc
mov rcx, qword [rsi + 0x4a0]
test rcx, rcx
jne 0x1400e602b
lea rax, [rsi + 0x480]
mov rcx, qword [rsi + 0x488]
cmp rcx, rax
jne 0x1400e6043
mov r14, qword [rbx]
test r14, r14
je 0x1400e5c10
mov r15, qword [rsi + 0x470]
mov rcx, r14
cmp r15, r14
jne 0x1400e5f71
mov qword [rsi + 0x470], r14
call fcn.14016eccc
mov rcx, qword [rsi + 0x460]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
je 0x1400e607e
xor ebx, ebx
mov qword [rsi + 0x460], rbx
lea rcx, [rsi + 0x430]
call fcn.1400e66c0
lea rcx, [rsi + 0x410]
mov rdx, qword [rsi + 0x418]
call fcn.140064a50
mov rdx, qword [rsi + 0x400]
mov rcx, rdi
call fcn.140064a50
mov rcx, qword [rsi + 0x3e8]
call fcn.1400e6310
mov rcx, qword [rsi + 0x3c8]
mov qword [rsi + 0x3c8], rbx
test rcx, rcx
je 0x1400e5c95
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140211850.0]
mov rcx, qword [rsi + 0x3c0]
mov qword [rsi + 0x3c0], 0
test rcx, rcx
je 0x1400e5cbd
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140211850.0]
mov rcx, qword [rsi + 0x3b8]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
je 0x1400e6088
mov qword [rsi + 0x3b8], 0
mov rcx, qword [rsi + 0x3b0]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
je 0x1400e6092
mov qword [rsi + 0x3b0], 0
lea rax, [rsi + 0x390]
mov rcx, qword [rsi + 0x398]
cmp rcx, rax
jne 0x1400e5ec0
mov rdi, qword [rsi + 0x378]
test rdi, rdi
jne 0x1400e5e87
lea rax, [rsi + 0x358]
mov rcx, qword [rsi + 0x360]
cmp rcx, rax
jne 0x1400e609c
mov rdi, qword [rsi + 0x340]
test rdi, rdi
jne 0x1400e5f05
lea rcx, [rsi + 0x118]
call fcn.1400e64c0
mov rcx, qword [rsi + 0xb0]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
je 0x1400e60d7
mov qword [rsi + 0xb0], 0
mov rcx, qword [rsi + 0xa8]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
je 0x1400e5fba
mov qword [rsi + 0xa8], 0
mov rcx, qword [rsi + 0xa0]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
je 0x1400e60e1
mov qword [rsi + 0xa0], 0
mov rax, qword [rsi + 0x90]
mov rbx, qword [rsi + 0x98]
cmp rbx, rax
jne 0x1400e60eb
mov rdx, qword [rsi + 0x80]
lea rcx, fcn.140055170
xor r8d, r8d
call fcn.140054930
lea rcx, [rsi + 0x60]
call fcn.1400e6440
mov rcx, qword [rsi + 0x40]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
je 0x1400e614b
xor eax, eax
mov qword [rsi + 0x40], rax
mov rdi, qword [rsi + 0x30]
mov qword [rsi + 0x30], rax
test rdi, rdi
jne 0x1400e5f5c
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x1400e5e5e
lock dec dword [rcx]
je 0x1400e5efb
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.140171860
movaps xmm6, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov rbx, qword [rsi + 0x380]
mov rcx, rdi
cmp rbx, rdi
jne 0x1400e62a6
mov qword [rsi + 0x380], rdi
call fcn.14016eccc
jmp 0x1400e5d36
lea rcx, [rsp + 0x80]
mov rdx, rbx
call fcn.1400e65d0
jmp 0x1400e5a69
xorps xmm0, xmm0
cmp qword [rcx + 0x10], 0
je 0x1400e5ef1
mov qword [rcx + 0x10], 0
mov rdx, qword [rcx]
mov r8, qword [rcx + 8]
mov qword [rdx + 8], r8
mov rdx, qword [rcx]
mov r8, qword [rcx + 8]
mov qword [r8], rdx
movups xmmword [rcx], xmm0
mov rcx, qword [rsi + 0x398]
cmp rcx, rax
jne 0x1400e5ec3
jmp 0x1400e5d26
call fcn.14016eccc
jmp 0x1400e5e5e
mov rbx, qword [rsi + 0x348]
mov rcx, rdi
cmp rbx, rdi
je 0x1400e5f4b
lea r14, [rbx - 8]
mov rcx, qword [rbx - 8]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
jne 0x1400e5f34
call fcn.1401571d0
mov qword [rbx - 8], 0
mov rbx, r14
cmp r14, rdi
jne 0x1400e5f14
mov rcx, qword [rsi + 0x340]
mov qword [rsi + 0x348], rdi
call fcn.14016eccc
jmp 0x1400e5d5d
mov rcx, rdi
call fcn.1400e91a0
mov rcx, rdi
call fcn.14016eccc
jmp 0x1400e5e4c
lea r12, [r15 - 8]
mov rcx, qword [r15 - 8]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
jne 0x1400e5f91
call fcn.1401571d0
mov qword [r15 - 8], 0
mov r15, r12
cmp r12, r14
jne 0x1400e5f71
mov rcx, qword [rbx]
jmp 0x1400e5c04
mov rax, rcx
mov rcx, qword [rcx]
test rcx, rcx
je 0x1400e5958
jmp 0x1400e5fa9
call fcn.1401571d0
jmp 0x1400e5db0
int3
mov rax, qword [0x1403411f8]
lea rcx, [0x14003b7a0]
cmp rax, rcx
jne 0x1400e62dd
lea rdi, [rsp + 0x80]
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 0x1400e6228
imul rax, rax, 0xf4240
cqo
idiv qword [0x140354790]
jmp 0x1400e624a
call fcn.1401571d0
jmp 0x1400e59da
lock dec dword [rcx]
jne 0x1400e5bd2
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x1400e5bd2
xorps xmm0, xmm0
cmp qword [rcx + 0x10], 0
je 0x1400e6074
mov qword [rcx + 0x10], 0
mov rdx, qword [rcx]
mov r8, qword [rcx + 8]
mov qword [rdx + 8], r8
mov rdx, qword [rcx]
mov r8, qword [rcx + 8]
mov qword [r8], rdx
movups xmmword [rcx], xmm0
mov rcx, qword [rsi + 0x488]
cmp rcx, rax
jne 0x1400e6046
jmp 0x1400e5be9
call fcn.1401571d0
jmp 0x1400e5c2e
call fcn.1401571d0
jmp 0x1400e5cdb
call fcn.1401571d0
jmp 0x1400e5d04
xorps xmm0, xmm0
cmp qword [rcx + 0x10], 0
je 0x1400e60cd
mov qword [rcx + 0x10], 0
mov rdx, qword [rcx]
mov r8, qword [rcx + 8]
mov qword [rdx + 8], r8
mov rdx, qword [rcx]
mov r8, qword [rcx + 8]
mov qword [r8], rdx
movups xmmword [rcx], xmm0
mov rcx, qword [rsi + 0x360]
cmp rcx, rax
jne 0x1400e609f
jmp 0x1400e5d4d
call fcn.1401571d0
jmp 0x1400e5d87
call fcn.1401571d0
jmp 0x1400e5dd9
mov rcx, qword [rsi + 0x88]
jbe 0x1400e619a
cmp rcx, rbx
jb 0x1400e62f0
cmp rcx, rax
jb 0x1400e62f3
cmp rax, rbx
jg 0x1400e62f6
imul rax, rax, 0xb8
mov rdi, qword [rsi + 0x80]
add rdi, rax
imul rbx, rbx, 0xb8
sub rbx, rax
mov rcx, rdi
call fcn.140074690
add rdi, 0xb8
add rbx, 0xffffffffffffff48
jne 0x1400e612e
jmp 0x1400e5dfb
call fcn.1401571d0
jmp 0x1400e5e35
lea rcx, [0x14035aa80]
call fcn.14016f8b4
cmp dword [0x14035aa80], 0xffffffff
jne 0x1400e5b5c
xorps xmm0, xmm0
movups xmmword [0x14035aa70], xmm0
lea rcx, [0x14035aa70]
xor edx, edx
call fcn.140041af0
lea rcx, [0x14035aa80]
call fcn.14016ef8c
jmp 0x1400e5b5c
int3
cmp rcx, rax
jb 0x1400e62f9
jl 0x1400e62fc
je 0x1400e61e5
imul rax, rax, 0xb8
mov rdi, qword [rsi + 0x80]
add rdi, rax
imul r14, rcx, 0xb8
sub r14, rax
mov rcx, rdi
call fcn.140074690
add rdi, 0xb8
add r14, 0xffffffffffffff48
jne 0x1400e61c6
mov rax, qword [rsi + 0x88]
cmp rax, rbx
jb 0x1400e62ff
test rbx, rbx
js 0x1400e6302
je 0x1400e5dfb
mov rdi, qword [rsi + 0x80]
imul rbx, rbx, 0xb8
mov rcx, rdi
call fcn.140074690
add rdi, 0xb8
add rbx, 0xffffffffffffff48
jne 0x1400e620b
jmp 0x1400e5dfb
mov rcx, qword [0x140354790]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
mov qword [rsp + 0x80], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor ecx, ecx
mov qword [rsp + 0x40], rcx
lea rdx, [rsp + 0x80]
mov qword [rsp + 0x38], rdx
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x48], 0x800
lea rdx, [0x140342240]
lea r8, [0x1403123b0]
mov cl, 0x44
xor r9d, r9d
call fcn.1401b9550
jmp 0x1400e5905
call fcn.1401571d0
jmp 0x1400e62c1
lea r14, [rbx - 8]
mov rcx, qword [rbx - 8]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
je 0x1400e629f
mov qword [rbx - 8], 0
mov rbx, r14
cmp r14, rdi
jne 0x1400e62a6
mov rcx, qword [rsi + 0x378]
jmp 0x1400e5e9a
lea rcx, [rsp + 0x80]
call qword [case.0x140211850.0]
jmp 0x1400e6252
int3
int3
int3
int3
int3
int3
int3