Function at 0x1400163df
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x2e8
movaps xmmword [rsp + 0x2d0], xmm15
movaps xmmword [rsp + 0x2c0], xmm14
movaps xmmword [rsp + 0x2b0], xmm13
movaps xmmword [rsp + 0x2a0], xmm12
movaps xmmword [rsp + 0x290], xmm11
movaps xmmword [rsp + 0x280], xmm10
movaps xmmword [rsp + 0x270], xmm9
movaps xmmword [rsp + 0x260], xmm8
movaps xmmword [rsp + 0x250], xmm7
movaps xmmword [rsp + 0x240], xmm6
mov qword [rsp + 0x230], r8
mov qword [rsp + 0x228], rdx
mov qword [rsp + 0x220], rcx
mov ecx, dword [0x1401ab0a0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x220]
mov r8, qword [rsp + 0x230]
mov rcx, rax
add rcx, 0x68
call fcn.1400104c6
mov rdx, qword [rsp + 0x228]
mov r8, qword [rsp + 0x230]
mov qword [rsp + 0x238], rax
cmp r8, rdx
jle 0x140016f8f
mov rax, qword [rsp + 0x230]
mov rdx, qword [rsp + 0x228]
mov rcx, qword [rsp + 0x238]
movabs r9, 0x3c5ddf2f7470988c
movabs r8, 0xc3a220d08b8f6773
xor r9, r8
mov r8, rdx
xor r8, r9
xor r9d, r9d
sub r9, 1
sub r8, r9
sub rcx, r8
mov qword [rsp + 0x210], rcx
mov rcx, rax
xor rcx, 0xffffffffffffffff
and rcx, rdx
movabs r8, 0xe8664a76c94878f9
movabs r9, 0x1799b58936b78706
xor r8, r9
xor rdx, r8
and rax, rdx
sub rax, rcx
mov qword [rsp + 0x218], rax
mov ecx, dword [0x1401ab0a0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rax, qword [rsp + 0x218]
cmp rax, 0
jle 0x140016f8f
mov rax, qword [rsp + 0x218]
mov rcx, rax
add rcx, 0xf
and rcx, 0xfffffffffffffff0
mov qword [rsp + 0xf8], rcx
dec rax
movq xmm0, rax
pshufd xmm8, xmm0, 0x44
movaps xmmword [rsp + 0x100], xmm8
movaps xmm0, xmmword [0x1401976d0]
movaps xmm1, xmmword [0x1401976e0]
movaps xmm2, xmmword [0x1401976f0]
movaps xmm3, xmmword [0x140197700]
movaps xmm4, xmmword [0x140197710]
movaps xmm5, xmmword [0x140197720]
movaps xmm6, xmmword [0x140197730]
movaps xmm7, xmmword [0x140197740]
movaps xmm9, xmm8
movaps xmmword [rsp + 0x110], xmm9
movaps xmm9, xmm8
movaps xmmword [rsp + 0x120], xmm9
movaps xmm9, xmm8
movaps xmmword [rsp + 0x130], xmm9
movaps xmm9, xmm8
movaps xmmword [rsp + 0x140], xmm9
movaps xmm9, xmm8
movaps xmmword [rsp + 0x150], xmm9
movaps xmm9, xmm8
movaps xmmword [rsp + 0x160], xmm9
movaps xmmword [rsp + 0x170], xmm8
xor eax, eax
mov qword [rsp + 0x188], rax
movaps xmmword [rsp + 0x190], xmm7
movaps xmmword [rsp + 0x1a0], xmm6
movaps xmmword [rsp + 0x1b0], xmm5
movaps xmmword [rsp + 0x1c0], xmm4
movaps xmmword [rsp + 0x1d0], xmm3
movaps xmmword [rsp + 0x1e0], xmm2
movaps xmmword [rsp + 0x1f0], xmm1
movaps xmmword [rsp + 0x200], xmm0
jmp 0x140016649
movaps xmm8, xmmword [rsp + 0x100]
movaps xmm10, xmmword [rsp + 0x110]
movaps xmm12, xmmword [rsp + 0x120]
movaps xmm13, xmmword [rsp + 0x130]
movaps xmm2, xmmword [rsp + 0x160]
movaps xmm15, xmmword [rsp + 0x170]
mov rax, qword [rsp + 0x188]
movaps xmm0, xmmword [rsp + 0x190]
movaps xmm14, xmmword [rsp + 0x1a0]
movaps xmm9, xmmword [rsp + 0x1b0]
movaps xmm11, xmmword [rsp + 0x1c0]
movaps xmm1, xmmword [rsp + 0x1d0]
movaps xmm7, xmmword [rsp + 0x1e0]
movaps xmm3, xmmword [rsp + 0x1f0]
movaps xmm4, xmmword [rsp + 0x200]
movaps xmmword [rsp + 0x30], xmm4
movaps xmmword [rsp + 0x40], xmm3
movaps xmmword [rsp + 0x50], xmm7
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0x60], xmm11
movaps xmmword [rsp + 0x70], xmm9
movaps xmmword [rsp + 0x80], xmm14
movaps xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0xa8], rax
movaps xmm6, xmmword [0x140197750]
movaps xmmword [rsp + 0xb0], xmm6
pxor xmm15, xmm6
pxor xmm0, xmm6
movaps xmm1, xmm0
pcmpgtd xmm1, xmm15
pshufd xmm5, xmm1, 0xa0
pcmpeqd xmm0, xmm15
pshufd xmm0, xmm0, 0xf5
pand xmm0, xmm5
pshufd xmm1, xmm1, 0xf5
por xmm0, xmm1
pcmpeqd xmm5, xmm5
movaps xmmword [rsp + 0xc0], xmm5
pxor xmm0, xmm5
pxor xmm2, xmm6
pxor xmm14, xmm6
movaps xmm1, xmm14
pcmpgtd xmm1, xmm2
pshufd xmm15, xmm1, 0xa0
pcmpeqd xmm14, xmm2
movaps xmm2, xmmword [rsp + 0x150]
pshufd xmm14, xmm14, 0xf5
pand xmm14, xmm15
pshufd xmm1, xmm1, 0xf5
por xmm14, xmm1
pxor xmm14, xmm5
movaps xmm1, xmm0
packssdw xmm1, xmm14
pxor xmm2, xmm6
pxor xmm9, xmm6
movaps xmm14, xmm9
pcmpgtd xmm14, xmm2
pshufd xmm15, xmm14, 0xa0
pcmpeqd xmm9, xmm2
movaps xmm2, xmmword [rsp + 0x140]
pshufd xmm9, xmm9, 0xf5
pand xmm9, xmm15
pshufd xmm14, xmm14, 0xf5
por xmm9, xmm14
pxor xmm9, xmm5
pxor xmm2, xmm6
pxor xmm11, xmm6
movaps xmm14, xmm11
pcmpgtd xmm14, xmm2
pshufd xmm15, xmm14, 0xa0
pcmpeqd xmm11, xmm2
movaps xmm2, xmmword [rsp + 0xd0]
pshufd xmm11, xmm11, 0xf5
pand xmm11, xmm15
pshufd xmm14, xmm14, 0xf5
por xmm11, xmm14
pxor xmm11, xmm5
packssdw xmm9, xmm11
packssdw xmm1, xmm9
pxor xmm13, xmm6
pxor xmm2, xmm6
movaps xmm9, xmm2
pcmpgtd xmm9, xmm13
pshufd xmm11, xmm9, 0xa0
pcmpeqd xmm2, xmm13
pshufd xmm2, xmm2, 0xf5
pand xmm2, xmm11
pshufd xmm9, xmm9, 0xf5
por xmm2, xmm9
pxor xmm2, xmm5
pxor xmm12, xmm6
pxor xmm7, xmm6
movaps xmm9, xmm7
pcmpgtd xmm9, xmm12
pshufd xmm11, xmm9, 0xa0
pcmpeqd xmm7, xmm12
pshufd xmm7, xmm7, 0xf5
pand xmm7, xmm11
pshufd xmm9, xmm9, 0xf5
por xmm7, xmm9
pxor xmm7, xmm5
packssdw xmm2, xmm7
pxor xmm10, xmm6
pxor xmm3, xmm6
movaps xmm7, xmm3
pcmpgtd xmm7, xmm10
pshufd xmm9, xmm7, 0xa0
pcmpeqd xmm3, xmm10
pshufd xmm3, xmm3, 0xf5
pand xmm3, xmm9
pshufd xmm7, xmm7, 0xf5
por xmm3, xmm7
pxor xmm3, xmm5
pxor xmm8, xmm6
pxor xmm4, xmm6
movaps xmm6, xmm4
pcmpgtd xmm6, xmm8
pshufd xmm7, xmm6, 0xa0
pcmpeqd xmm4, xmm8
pshufd xmm4, xmm4, 0xf5
pand xmm4, xmm7
pshufd xmm6, xmm6, 0xf5
por xmm4, xmm6
pxor xmm4, xmm5
packssdw xmm3, xmm4
packssdw xmm2, xmm3
packsswb xmm1, xmm2
movaps xmmword [rsp + 0xe0], xmm1
movd eax, xmm0
test al, 1
jne 0x14001691a
jmp 0x140016932
mov rax, qword [rsp + 0x210]
mov rcx, qword [rsp + 0xa8]
mov dl, 0xc5
xor dl, 0xc5
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rsp + 0xe0]
movd eax, xmm0
shr eax, 8
test al, 1
jne 0x14001694e
jmp 0x140016966
mov rax, qword [rsp + 0x210]
mov rcx, qword [rsp + 0xa8]
or rcx, 1
mov byte [rax + rcx], 0
movaps xmm0, xmmword [rsp + 0xe0]
movd eax, xmm0
shr eax, 0x10
test al, 1
jne 0x140016982
jmp 0x1400169f7
mov rax, qword [rsp + 0x210]
mov rcx, qword [rsp + 0xa8]
and rcx, rcx
xor rcx, 0xffffffffffffffff
movabs rdx, 0x6e559a77d7747d2f
movabs r8, 0x6e559a77d7747d2d
xor rdx, r8
movabs r8, 0x8379a3a80d9dbfb5
movabs r9, 0x8379a3a80d9dbfb7
xor r8, r9
and rdx, r8
movabs r8, 0x536fc2005f917b6e
movabs r9, 0xac903dffa06e8491
xor r8, r9
xor rdx, r8
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
or rcx, rdx
mov dl, 0x52
xor dl, 0x52
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rsp + 0xe0]
movd eax, xmm0
shr eax, 0x18
test al, 1
jne 0x140016a13
jmp 0x140016a2b
mov rax, qword [rsp + 0x210]
mov rcx, qword [rsp + 0xa8]
or rcx, 3
mov byte [rax + rcx], 0
movaps xmm0, xmmword [rsp + 0xe0]
pextrw eax, xmm0, 2
test al, 1
jne 0x140016a45
jmp 0x140016a5d
mov rax, qword [rsp + 0x210]
mov rcx, qword [rsp + 0xa8]
or rcx, 4
mov byte [rax + rcx], 0
movaps xmm0, xmmword [rsp + 0xe0]
pextrw eax, xmm0, 2
shr eax, 8
test al, 1
jne 0x140016a7a
jmp 0x140016b38
mov rax, qword [rsp + 0x210]
mov rdx, qword [rsp + 0xa8]
movabs r8, 0xf61680261548eab
movabs rcx, 0xf09e97fd9eab7154
xor r8, rcx
mov rcx, rdx
xor rcx, r8
xor rdx, 0xffffffffffffffff
or rcx, rdx
movabs rdx, 0xeeee6a6262d8cfde
movabs r8, 0xeeee6a6262d8cfdb
xor rdx, r8
movabs r8, 0x6bccdad3677afa79
movabs r9, 0x9433252c98850586
xor r8, r9
xor rdx, r8
movabs r8, 0xc3b43176c2ccff8c
movabs r9, 0xc3b43176c2ccff89
xor r8, r9
movabs r9, 0x5080b372307120e8
movabs r10, 0xaf7f4c8dcf8edf17
xor r9, r10
xor r8, r9
or rdx, r8
and rcx, rdx
movabs rdx, 0x7f9704aa28910abc
movabs r8, 0x8068fb55d76ef543
xor rdx, r8
xor rcx, rdx
mov dl, 0xc3
xor dl, 0xc3
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rsp + 0xe0]
pextrw eax, xmm0, 3
test al, 1
jne 0x140016b52
jmp 0x140016bb4
mov rax, qword [rsp + 0x210]
mov rdx, qword [rsp + 0xa8]
movabs r8, 0x12fd4c26b0214048
movabs rcx, 0x12fd4c26b021404e
xor r8, rcx
mov rcx, rdx
or rcx, r8
xor rcx, 0xffffffffffffffff
or rdx, 6
xor rdx, 0xffffffffffffffff
movabs r8, 0x4b1a475d8aee8699
movabs r9, 0xb4e5b8a275117966
xor r8, r9
xor rcx, r8
xor rdx, 0xffffffffffffffff
and rcx, rdx
mov dl, 0x1b
xor dl, 0x1b
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rsp + 0xe0]
pextrw eax, xmm0, 3
shr eax, 8
test al, 1
jne 0x140016bd1
jmp 0x140016c2d
mov rax, qword [rsp + 0x210]
mov rdx, qword [rsp + 0xa8]
mov rcx, rdx
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
or rcx, rdx
mov rdx, 0xffffffffffffffff
xor rdx, 7
mov r8, 0xffffffffffffffff
xor r8, 7
or rdx, r8
and rcx, rdx
movabs rdx, 0xb1e216c44c38d3ff
movabs r8, 0x4e1de93bb3c72c00
xor rdx, r8
xor rcx, rdx
mov dl, 0xf7
xor dl, 0xf7
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rsp + 0xe0]
pextrw eax, xmm0, 4
test al, 1
jne 0x140016c47
jmp 0x140016c79
mov rax, qword [rsp + 0x210]
mov rcx, qword [rsp + 0xa8]
movabs rdx, 0xc9d79657ebf9abac
movabs r8, 0xc9d79657ebf9aba4
xor rdx, r8
or rcx, rdx
mov dl, 0x78
xor dl, 0x78
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rsp + 0xe0]
pextrw eax, xmm0, 4
shr eax, 8
test al, 1
jne 0x140016c96
jmp 0x140016cae
mov rax, qword [rsp + 0x210]
mov rcx, qword [rsp + 0xa8]
or rcx, 9
mov byte [rax + rcx], 0
movaps xmm0, xmmword [rsp + 0xe0]
pextrw eax, xmm0, 5
test al, 1
jne 0x140016cc8
jmp 0x140016cfe
mov rax, qword [rsp + 0x210]
mov rcx, qword [rsp + 0xa8]
mov r8, 0xffffffffffffffff
xor r8, 0xa
mov rdx, rcx
and rdx, r8
mov r8, rcx
xor r8, 0xa
add rcx, r8
sub rcx, rdx
mov dl, 0xbd
xor dl, 0xbd
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rsp + 0xe0]
pextrw eax, xmm0, 5
shr eax, 8
test al, 1
jne 0x140016d1b
jmp 0x140016d37
mov rax, qword [rsp + 0x210]
mov rcx, qword [rsp + 0xa8]
or rcx, 0xb
mov dl, 0xaa
xor dl, 0xaa
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rsp + 0xe0]
pextrw eax, xmm0, 6
test al, 1
jne 0x140016d51
jmp 0x140016d6d
mov rax, qword [rsp + 0x210]
mov rcx, qword [rsp + 0xa8]
or rcx, 0xc
mov dl, 0x9c
xor dl, 0x9c
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rsp + 0xe0]
pextrw eax, xmm0, 6
shr eax, 8
test al, 1
jne 0x140016d8a
jmp 0x140016da6
mov rax, qword [rsp + 0x210]
mov rcx, qword [rsp + 0xa8]
or rcx, 0xd
mov dl, 0x3c
xor dl, 0x3c
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rsp + 0xe0]
pextrw eax, xmm0, 7
test al, 1
jne 0x140016dc0
jmp 0x140016e68
mov rax, qword [rsp + 0x210]
mov rdx, qword [rsp + 0xa8]
mov rcx, rdx
xor rcx, 0xffffffffffffffff
movabs r8, 0xcd255adca151231d
movabs r9, 0xcd255adca1512313
xor r8, r9
movabs r9, 0x9607cf0bb5bfccdb
movabs r10, 0x69f830f44a403324
xor r9, r10
xor r8, r9
and rcx, r8
xor rdx, 0xffffffffffffffff
movabs r8, 0xefdd183bf1116caf
movabs r9, 0xefdd183bf1116ca1
xor r8, r9
movabs r9, 0x791066595c8c9a89
movabs r10, 0x86ef99a6a3736576
xor r9, r10
xor r8, r9
and rdx, r8
or rcx, rdx
movabs rdx, 0x2eb0dddd1f3084a2
movabs r8, 0xd14f2222e0cf7b5d
xor rdx, r8
xor rcx, rdx
mov dl, 0xd
xor dl, 0xd
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rsp + 0xe0]
pextrw eax, xmm0, 7
shr eax, 8
test al, 1
jne 0x140016e85
jmp 0x140016eb3
mov rax, qword [rsp + 0x210]
mov rcx, qword [rsp + 0xa8]
movabs rdx, 0x8a2e942a39ac7132
movabs r8, 0x8a2e942a39ac713d
xor rdx, r8
or rcx, rdx
mov byte [rax + rcx], 0
mov rdx, qword [rsp + 0xf8]
movaps xmm0, xmmword [rsp + 0x30]
movaps xmm1, xmmword [rsp + 0x40]
movaps xmm2, xmmword [rsp + 0x50]
movaps xmm3, xmmword [rsp + 0xd0]
movaps xmm4, xmmword [rsp + 0x60]
movaps xmm5, xmmword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x80]
movaps xmm7, xmmword [rsp + 0x90]
mov rcx, qword [rsp + 0xa8]
mov eax, ecx
and eax, 0x10
or rcx, 0x10
add rax, rcx
movaps xmm8, xmmword [0x140197760]
movaps xmmword [rsp + 0x20], xmm8
paddq xmm7, xmm8
paddq xmm6, xmm8
paddq xmm5, xmm8
paddq xmm4, xmm8
paddq xmm3, xmm8
paddq xmm2, xmm8
paddq xmm1, xmm8
paddq xmm0, xmm8
mov rcx, rax
sub rcx, rdx
mov qword [rsp + 0x188], rax
movaps xmmword [rsp + 0x190], xmm7
movaps xmmword [rsp + 0x1a0], xmm6
movaps xmmword [rsp + 0x1b0], xmm5
movaps xmmword [rsp + 0x1c0], xmm4
movaps xmmword [rsp + 0x1d0], xmm3
movaps xmmword [rsp + 0x1e0], xmm2
movaps xmmword [rsp + 0x1f0], xmm1
movaps xmmword [rsp + 0x200], xmm0
jne 0x140016649
jmp 0x140016f8f
mov rax, qword [rsp + 0x238]
movaps xmm6, xmmword [rsp + 0x240]
movaps xmm7, xmmword [rsp + 0x250]
movaps xmm8, xmmword [rsp + 0x260]
movaps xmm9, xmmword [rsp + 0x270]
movaps xmm10, xmmword [rsp + 0x280]
movaps xmm11, xmmword [rsp + 0x290]
movaps xmm12, xmmword [rsp + 0x2a0]
movaps xmm13, xmmword [rsp + 0x2b0]
movaps xmm14, xmmword [rsp + 0x2c0]
movaps xmm15, xmmword [rsp + 0x2d0]
add rsp, 0x2e8
ret