Function at 0x140015a94
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x250
mov rax, qword [0x14002c298]
xor rax, rsp
mov qword [rsp + 0x240], rax
mov r9d, dword [0x14002d688]
lea rbp, [0x1400264e4]
mov r12d, 0x20
mov r8, rbp
mov edx, r12d
mov rdi, rcx
call fcn.140011160
or rsi, 0xffffffffffffffff
mov rax, rsi
xor r13d, r13d
inc rax
cmp word [rdi + rax*2], r13w
jne 0x140015af1
cmp eax, dword [rdi + 0x704]
jle 0x140015b09
mov dword [rdi + 0x704], eax
mov r9d, dword [0x14002d650]
lea rcx, [rdi + 0x40]
mov r8, rbp
mov rdx, r12
call fcn.140011160
mov rax, rsi
inc rax
cmp word [rdi + rax*2 + 0x40], r13w
jne 0x140015b22
cmp eax, dword [rdi + 0x708]
jle 0x140015b3b
mov dword [rdi + 0x708], eax
mov r9d, dword [0x14002d678]
lea rbx, [rdi + 0x80]
mov rcx, rbx
mov r8, rbp
mov rdx, r12
call fcn.140011160
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x140015b5a
cmp eax, dword [rdi + 0x70c]
jle 0x140015b72
mov dword [rdi + 0x70c], eax
mov r9d, dword [0x14002d698]
lea rbx, [rdi + 0xc0]
mov rcx, rbx
mov r8, rbp
mov rdx, r12
call fcn.140011160
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x140015b91
cmp eax, dword [rdi + 0x710]
jle 0x140015ba9
mov dword [rdi + 0x710], eax
mov r9d, dword [0x14002d640]
lea rbx, [rdi + 0x100]
mov rcx, rbx
mov r8, rbp
mov rdx, r12
call fcn.140011160
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x140015bc8
cmp eax, dword [rdi + 0x714]
jle 0x140015be0
mov dword [rdi + 0x714], eax
mov r9d, dword [0x14002d6c0]
lea rbx, [rdi + 0x140]
mov rcx, rbx
mov r8, rbp
mov rdx, r12
call fcn.140011160
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x140015bff
cmp eax, dword [rdi + 0x718]
jle 0x140015c17
mov dword [rdi + 0x718], eax
mov r9d, dword [0x14002d68c]
lea rbx, [rdi + 0x180]
mov rcx, rbx
mov r8, rbp
mov rdx, r12
call fcn.140011160
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x140015c36
cmp eax, dword [rdi + 0x704]
jle 0x140015c4e
mov dword [rdi + 0x704], eax
mov r9d, dword [0x14002d654]
lea rbx, [rdi + 0x1c0]
mov rcx, rbx
mov r8, rbp
mov rdx, r12
call fcn.140011160
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x140015c6d
cmp eax, dword [rdi + 0x708]
jle 0x140015c85
mov dword [rdi + 0x708], eax
mov r9d, dword [0x14002d67c]
lea rbx, [rdi + 0x200]
mov rcx, rbx
mov r8, rbp
mov rdx, r12
call fcn.140011160
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x140015ca4
cmp eax, dword [rdi + 0x70c]
jle 0x140015cbc
mov dword [rdi + 0x70c], eax
mov r9d, dword [0x14002d69c]
lea rbx, [rdi + 0x240]
mov rcx, rbx
mov r8, rbp
mov rdx, r12
call fcn.140011160
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x140015cdb
cmp eax, dword [rdi + 0x710]
jle 0x140015cf3
mov dword [rdi + 0x710], eax
mov r9d, dword [0x14002d644]
lea rbx, [rdi + 0x280]
mov rcx, rbx
mov r8, rbp
mov rdx, r12
call fcn.140011160
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x140015d12
cmp eax, dword [rdi + 0x714]
jle 0x140015d2a
mov dword [rdi + 0x714], eax
mov r9d, dword [0x14002d6c4]
lea rbx, [rdi + 0x2c0]
mov rcx, rbx
mov r8, rbp
mov rdx, r12
call fcn.140011160
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x140015d49
cmp eax, dword [rdi + 0x718]
jle 0x140015d61
mov dword [rdi + 0x718], eax
lea rbx, [rdi + 0x300]
mov rdx, rbx
lea rcx, [0x14002d688]
call fcn.140020d58
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x140015d7a
cmp eax, dword [rdi + 0x704]
jle 0x140015d92
mov dword [rdi + 0x704], eax
lea rbx, [rdi + 0x340]
mov rdx, rbx
lea rcx, [0x14002d650]
call fcn.140020d58
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x140015dab
cmp eax, dword [rdi + 0x708]
jle 0x140015dc3
mov dword [rdi + 0x708], eax
lea rbx, [rdi + 0x380]
mov rdx, rbx
lea rcx, [0x14002d678]
call fcn.140020d58
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x140015ddc
cmp eax, dword [rdi + 0x70c]
jle 0x140015df4
mov dword [rdi + 0x70c], eax
lea rbx, [rdi + 0x3c0]
mov rdx, rbx
lea rcx, [0x14002d698]
call fcn.140020d58
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x140015e0d
cmp eax, dword [rdi + 0x710]
jle 0x140015e25
mov dword [rdi + 0x710], eax
lea rbx, [rdi + 0x400]
mov rdx, rbx
lea rcx, [0x14002d640]
call fcn.140020d58
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x140015e3e
cmp eax, dword [rdi + 0x714]
jle 0x140015e56
mov dword [rdi + 0x714], eax
lea rbx, [rdi + 0x440]
mov rdx, rbx
lea rcx, [0x14002d6c0]
call fcn.140020d58
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x140015e6f
cmp eax, dword [rdi + 0x718]
jle 0x140015e87
mov dword [rdi + 0x718], eax
cmp dword [0x14002d810], r13d
jne 0x140015e99
lea rcx, [0x14002d6b8]
jmp 0x140015ebb
mov ecx, dword [0x14002c300]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
nop dword [rax + rax]
lea rcx, [0x14002d6b8]
test rax, rax
je 0x140015ebb
lea rcx, [rax + 0x10]
call fcn.140018f6c
cmp dword [0x14002d810], r13d
movsxd rbp, eax
jne 0x140015ed5
lea rcx, [0x14002d668]
jmp 0x140015ef5
mov ecx, dword [0x14002c300]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
nop dword [rax + rax]
test rax, rax
lea rcx, [0x14002d668]
cmovne rcx, rax
call fcn.140018f6c
cmp dword [0x14002d810], r13d
movsxd rbx, eax
jne 0x140015f0f
lea rcx, [0x14002d620]
jmp 0x140015f31
mov ecx, dword [0x14002c300]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
nop dword [rax + rax]
lea rcx, [0x14002d620]
test rax, rax
je 0x140015f31
lea rcx, [rax + 8]
call fcn.140018f6c
movsxd r15, eax
mov r14, rbp
sub r14, r15
sub r14, rbx
cmp dword [0x14002d810], r13d
je 0x140016046
lea rcx, [0x14002d6b8]
call fcn.140018f6c
mov ecx, 2
mov ebx, eax
call fcn.14000af3c
add ebx, eax
lea rcx, [0x14002d668]
movsxd rbp, ebx
call fcn.140018f6c
xor ecx, ecx
mov ebx, eax
call fcn.14000af3c
add eax, ebx
lea rcx, [0x14002d620]
cdqe
mov r15, rbp
cmp rax, rbp
cmovb r15, rax
call fcn.140018f6c
mov ecx, 1
mov ebx, eax
call fcn.14000af3c
add eax, ebx
mov r14, rbp
sub r14, r15
cdqe
cmp rax, r14
mov r12, r14
cmovb r12, rax
test rbp, rbp
je 0x140015fd9
lea rcx, [0x14002d6b8]
call fcn.140018f6c
cdqe
xor edx, edx
imul rax, r15
div rbp
jmp 0x140015fdc
mov rax, r13
mov ebx, eax
test rbp, rbp
je 0x140015ffc
lea rcx, [0x14002d6b8]
call fcn.140018f6c
cdqe
xor edx, edx
imul rax, r12
div rbp
jmp 0x140015fff
mov rax, r13
mov r15d, eax
test rbp, rbp
je 0x140016020
lea rcx, [0x14002d6b8]
call fcn.140018f6c
cdqe
xor edx, edx
imul rax, r14
div rbp
jmp 0x140016023
mov rax, r13
mov r14d, eax
mov ecx, 0x7fffffff
mov eax, ebx
mov r12d, 0x20
and eax, ecx
mov dword [0x14002d66c], eax
mov eax, r15d
and eax, ecx
mov dword [0x14002d624], eax
mov rcx, qword [0x14002d148]
lea r8, [rsp + 0x40]
mov r9d, 0x100
mov word [rsp + 0x40], r13w
lea edx, [r9 - 0x4b]
call qword [sym.imp.USER32.dll_LoadStringW]
nop dword [rax + rax]
mov r9d, 0x88888889
mov eax, 0x10624dd3
imul ebp
lea rbp, [rdi + 0x480]
mov r8d, edx
sar r8d, 6
mov eax, r8d
shr eax, 0x1f
add r8d, eax
mov eax, r9d
imul r8d
lea ecx, [r8 + rdx]
sar ecx, 5
mov eax, ecx
shr eax, 0x1f
add ecx, eax
mov eax, r9d
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, ecx, 0x3c
mov r9d, edx
sub r8d, eax
imul eax, edx, 0x3c
mov dword [rsp + 0x28], r8d
mov rdx, r12
lea r8, [rsp + 0x40]
sub ecx, eax
mov dword [rsp + 0x20], ecx
mov rcx, rbp
call fcn.140011160
mov rax, rsi
inc rax
cmp word [rbp + rax*2], r13w
jne 0x1400160e1
cmp eax, dword [rdi + 0x704]
jle 0x1400160fa
mov dword [rdi + 0x704], eax
mov r9d, 0x88888889
lea rbp, [rdi + 0x4c0]
mov eax, 0x10624dd3
imul ebx
mov r8d, edx
sar r8d, 6
mov eax, r8d
shr eax, 0x1f
add r8d, eax
mov eax, r9d
imul r8d
lea ecx, [r8 + rdx]
sar ecx, 5
mov eax, ecx
shr eax, 0x1f
add ecx, eax
mov eax, r9d
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, ecx, 0x3c
mov r9d, edx
sub r8d, eax
imul eax, edx, 0x3c
mov dword [rsp + 0x28], r8d
mov rdx, r12
lea r8, [rsp + 0x40]
sub ecx, eax
mov dword [rsp + 0x20], ecx
mov rcx, rbp
call fcn.140011160
mov rax, rsi
inc rax
cmp word [rbp + rax*2], r13w
jne 0x14001616d
cmp eax, dword [rdi + 0x708]
jle 0x140016186
mov dword [rdi + 0x708], eax
mov eax, 0x10624dd3
lea rbp, [rdi + 0x580]
imul r15d
mov r15d, 0x88888889
mov r8d, edx
sar r8d, 6
mov eax, r8d
shr eax, 0x1f
add r8d, eax
mov eax, r15d
imul r8d
lea ecx, [r8 + rdx]
sar ecx, 5
mov eax, ecx
shr eax, 0x1f
add ecx, eax
mov eax, r15d
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, ecx, 0x3c
mov r9d, edx
sub r8d, eax
imul eax, edx, 0x3c
mov dword [rsp + 0x28], r8d
mov rdx, r12
lea r8, [rsp + 0x40]
sub ecx, eax
mov dword [rsp + 0x20], ecx
mov rcx, rbp
call fcn.140011160
mov rcx, rsi
inc rcx
cmp word [rbp + rcx*2], r13w
jne 0x1400161fa
cmp ecx, dword [rdi + 0x714]
jle 0x140016213
mov dword [rdi + 0x714], ecx
mov eax, 0x10624dd3
lea rbp, [rdi + 0x5c0]
imul r14d
mov r9d, edx
sar r9d, 6
mov eax, r9d
shr eax, 0x1f
add r9d, eax
mov eax, r15d
imul r9d
mov eax, r15d
lea r8d, [r9 + rdx]
sar r8d, 5
mov ecx, r8d
shr ecx, 0x1f
add r8d, ecx
mov rcx, rbp
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, r8d, 0x3c
sub r9d, eax
imul eax, edx, 0x3c
mov dword [rsp + 0x28], r9d
mov r9d, edx
mov rdx, r12
sub r8d, eax
mov dword [rsp + 0x20], r8d
lea r8, [rsp + 0x40]
call fcn.140011160
mov rax, rsi
inc rax
cmp word [rbp + rax*2], r13w
jne 0x140016289
cmp eax, dword [rdi + 0x718]
jle 0x1400162a2
mov dword [rdi + 0x718], eax
cmp dword [0x14002d7ac], r13d
jne 0x1400163b0
test rbx, rbx
je 0x1400163b0
mov rcx, qword [0x14002d658]
test rcx, rcx
je 0x1400163b0
xorps xmm0, xmm0
test rbx, rbx
js 0x1400162d7
cvtsi2sd xmm0, rbx
jmp 0x1400162ec
mov rax, rbx
and ebx, 1
shr rax, 1
or rax, rbx
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
divsd xmm0, qword [0x1400270c8]
movsd xmm3, qword [0x1400270d0]
xorps xmm2, xmm2
cvtsi2sd xmm2, rcx
xor ecx, ecx
movaps xmm1, xmm2
divsd xmm1, xmm0
comisd xmm1, xmm3
jb 0x14001632a
subsd xmm1, xmm3
comisd xmm1, xmm3
jae 0x14001632a
movabs rax, 0x8000000000000000
mov rcx, rax
divsd xmm0, qword [0x1400270c0]
lea rbx, [rdi + 0x600]
mov rdx, rbx
mulsd xmm2, qword [0x1400270b8]
cvttsd2si rax, xmm1
divsd xmm2, xmm0
add rax, rcx
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x38], rax
cvtpd2ps xmm0, xmm2
movss dword [rsp + 0x30], xmm0
call fcn.1400164a8
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x14001636c
cmp eax, dword [rdi + 0x71c]
jle 0x140016384
mov dword [rdi + 0x71c], eax
lea rbx, [rdi + 0x680]
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.1400163e8
inc rsi
cmp word [rbx + rsi*2], r13w
jne 0x140016398
cmp esi, dword [rdi + 0x71c]
jle 0x1400163b0
mov dword [rdi + 0x71c], esi
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.140001a50
lea r11, [rsp + 0x250]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret