Function at 0x140024d49
Capabilities:
Get thread local storage value

Disassembly:
push rsi
sub rsp, 0x190
movaps xmmword [rsp + 0x180], xmm8
movaps xmmword [rsp + 0x170], xmm7
movaps xmmword [rsp + 0x160], xmm6
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x118], rcx
mov ecx, dword [0x1401ab0a0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0x118]
mov rdx, qword [rsp + 0x120]
add rax, 0x60
mov qword [rsp + 0x128], rax
mov rax, qword [rcx]
mov qword [rsp + 0x130], rax
cmp rax, rdx
jle 0x140024dd0
mov rdx, qword [rsp + 0x120]
mov rcx, qword [rsp + 0x118]
call fcn.140024bad
jmp 0x1400255c6
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsp + 0x120]
cmp rax, rcx
jge 0x1400255c6
mov rax, qword [rsp + 0x118]
mov rcx, rax
add rcx, 8
mov qword [rsp + 0x108], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0x110], rax
cmp rax, 0
je 0x140024e3c
mov rcx, qword [rsp + 0x120]
mov rdx, qword [rsp + 0x110]
movabs rax, 0xbfffffffffffffff
and rax, qword [rdx]
cmp rax, rcx
jge 0x140024fdc
mov r8, qword [rsp + 0x130]
mov rdx, qword [rsp + 0x120]
mov r9, rdx
sub r9, r8
mov qword [rsp + 0x100], r9
movabs rax, 0xda3231df07eda405
movabs rcx, 0x25cdce20f8125bfa
xor rax, rcx
mov rcx, r9
xor rcx, rax
mov rax, rdx
and rax, rcx
movabs rcx, 0x5f1fcd2037b5c614
movabs r10, 0xa0e032dfc84a39eb
xor rcx, r10
xor rdx, rcx
mov rcx, r9
and rcx, rdx
or rax, rcx
movabs rcx, 0x1394cf55ba4521ea
movabs rdx, 0x1394cf55ba4521ea
xor rcx, rdx
cmp rax, rcx
setl al
movabs rdx, 0x911897a76efb647e
movabs rcx, 0x6ee7685891049b81
xor rdx, rcx
mov rcx, r9
xor rcx, rdx
movabs rdx, 0x4593adc4b7cc4ae2
and rcx, rdx
movabs r10, 0x14e767089193e9a2
movabs rdx, 0x5174cacc265fa340
xor r10, rdx
movabs rdx, 0xc4ee3c8e636562f7
movabs r11, 0x3b11c3719c9a9d08
xor rdx, r11
xor r10, rdx
and r9, r10
mov rdx, r8
xor rdx, 0xffffffffffffffff
movabs r11, 0x29012536eee2ef14
movabs rsi, 0x6c9288f2592ea5f6
xor r11, rsi
and rdx, r11
and r8, r10
or rcx, r9
or rdx, r8
xor rcx, rdx
movabs rdx, 0x1b93564c6e862261
movabs r8, 0xe46ca9b39179dd9e
xor rdx, r8
cmp rcx, rdx
setg cl
and al, cl
test al, 1
jne 0x140024fd2
mov r8, qword [rsp + 0x100]
mov rdx, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x130]
movabs r9, 0x594925cac6e7943e
movabs rax, 0x594925cac6e79416
xor r9, rax
movabs rax, 0x183db5c419238a8e
movabs r10, 0x183db5c419238a86
xor rax, r10
mov qword [rsp + 0x20], rax
call fcn.1400184ef
mov rcx, rax
mov rax, qword [rsp + 0x108]
mov qword [rax], rcx
jmp 0x140024fdc
call fcn.14000a590
jmp 0x1400255c6
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsp + 0x118]
mov rdx, qword [rsp + 0x120]
mov qword [rcx], rdx
mov qword [rsp + 0xf8], rax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0xa0], rax
mov ecx, dword [0x1401ab0a0]
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
movaps xmm0, xmmword [0x140197bb0]
movaps xmm1, xmmword [0x140197bc0]
movaps xmm2, xmmword [0x140197bd0]
movaps xmm3, xmmword [0x140197be0]
xor eax, eax
mov qword [rsp + 0xa8], rax
movaps xmmword [rsp + 0xb0], xmm3
movaps xmmword [rsp + 0xc0], xmm2
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xe0], xmm0
jmp 0x140025069
mov rax, qword [rsp + 0xa8]
movaps xmm2, xmmword [rsp + 0xb0]
movaps xmm7, xmmword [rsp + 0xc0]
movaps xmm8, xmmword [rsp + 0xd0]
movaps xmm5, xmmword [rsp + 0xe0]
movaps xmmword [rsp + 0x40], xmm5
movaps xmmword [rsp + 0x50], xmm8
movaps xmmword [rsp + 0x60], xmm7
movaps xmmword [rsp + 0x70], xmm2
mov qword [rsp + 0x88], rax
movaps xmm6, xmmword [0x140197bf0]
pxor xmm2, xmm6
pshufd xmm1, xmm2, 0xf5
movaps xmm4, xmmword [0x140197c00]
pshufd xmm3, xmm4, 0xf5
movaps xmm0, xmm3
pcmpeqd xmm0, xmm1
movaps xmm1, xmm4
pcmpgtd xmm1, xmm2
pshufd xmm2, xmm1, 0xa0
pand xmm0, xmm2
pshufd xmm1, xmm1, 0xf5
por xmm0, xmm1
pxor xmm7, xmm6
pshufd xmm1, xmm7, 0xf5
movaps xmm2, xmm3
pcmpeqd xmm2, xmm1
movaps xmm1, xmm4
pcmpgtd xmm1, xmm7
pshufd xmm7, xmm1, 0xa0
pand xmm2, xmm7
pshufd xmm1, xmm1, 0xf5
por xmm2, xmm1
movaps xmm1, xmm0
packssdw xmm1, xmm2
pxor xmm8, xmm6
pshufd xmm7, xmm8, 0xf5
movaps xmm2, xmm3
pcmpeqd xmm2, xmm7
movaps xmm7, xmm4
pcmpgtd xmm7, xmm8
pshufd xmm8, xmm7, 0xa0
pand xmm2, xmm8
pshufd xmm7, xmm7, 0xf5
por xmm2, xmm7
pxor xmm5, xmm6
pshufd xmm6, xmm5, 0xf5
pcmpeqd xmm3, xmm6
pcmpgtd xmm4, xmm5
pshufd xmm5, xmm4, 0xa0
pand xmm3, xmm5
pshufd xmm4, xmm4, 0xf5
por xmm3, xmm4
packssdw xmm2, xmm3
packssdw xmm1, xmm2
movaps xmmword [rsp + 0x90], xmm1
movd eax, xmm0
test al, 1
jne 0x14002518d
jmp 0x1400251a1
mov rax, qword [rsp + 0x88]
mov cl, 0xae
xor cl, 0xae
mov byte [rsp + rax + 0x138], cl
movaps xmm0, xmmword [rsp + 0x90]
movd eax, xmm0
shr eax, 0x10
test al, 1
jne 0x1400251bd
jmp 0x1400251fd
mov rcx, qword [rsp + 0x88]
mov rax, rcx
or rax, 1
xor rax, 0xffffffffffffffff
or rcx, 1
xor rcx, 0xffffffffffffffff
or rax, rcx
movabs rcx, 0x20015080750e5892
movabs rdx, 0xdffeaf7f8af1a76d
xor rcx, rdx
xor rax, rcx
mov byte [rsp + rax + 0x138], 0
movaps xmm0, xmmword [rsp + 0x90]
pextrw eax, xmm0, 2
test al, 1
jne 0x140025217
jmp 0x14002524f
mov rcx, qword [rsp + 0x88]
movabs rdx, 0x30f8bdf8d32616bb
movabs rax, 0x30f8bdf8d32616b9
xor rdx, rax
mov rax, rcx
and rax, rdx
xor rcx, 2
or rax, rcx
mov cl, 0x91
xor cl, 0x91
mov byte [rsp + rax + 0x138], cl
movaps xmm0, xmmword [rsp + 0x90]
pextrw eax, xmm0, 3
test al, 1
jne 0x140025269
jmp 0x140025281
mov rax, qword [rsp + 0x88]
or rax, 3
mov cl, 0x2f
xor cl, 0x2f
mov byte [rsp + rax + 0x138], cl
movaps xmm0, xmmword [rsp + 0x90]
pextrw eax, xmm0, 4
test al, 1
jne 0x14002529b
jmp 0x14002530b
mov rcx, qword [rsp + 0x88]
mov rax, rcx
or rax, 4
movabs rdx, 0x59514d181c53966
movabs r8, 0xfa6aeb2e7e3ac699
xor rdx, r8
xor rax, rdx
movabs rdx, 0xfaf1df7d5c95f92
movabs r8, 0xfaf1df7d5c95f96
xor rdx, r8
or rcx, rdx
xor rcx, 0xffffffffffffffff
movabs rdx, 0xddf50a74f84b39b9
movabs r8, 0x220af58b07b4c646
xor rdx, r8
xor rax, rdx
xor rcx, 0xffffffffffffffff
and rax, rcx
mov byte [rsp + rax + 0x138], 0
movaps xmm0, xmmword [rsp + 0x90]
pextrw eax, xmm0, 5
test al, 1
jne 0x140025325
jmp 0x140025353
mov rax, qword [rsp + 0x88]
mov rdx, 0xffffffffffffffff
xor rdx, 5
mov rcx, rax
and rcx, rdx
mov rdx, rax
xor rdx, 5
add rax, rdx
sub rax, rcx
mov byte [rsp + rax + 0x138], 0
movaps xmm0, xmmword [rsp + 0x90]
pextrw eax, xmm0, 6
test al, 1
jne 0x14002536d
jmp 0x140025385
mov rax, qword [rsp + 0x88]
or rax, 6
mov cl, 0x7a
xor cl, 0x7a
mov byte [rsp + rax + 0x138], cl
movaps xmm0, xmmword [rsp + 0x90]
pextrw eax, xmm0, 7
test al, 1
jne 0x14002539f
jmp 0x1400253e9
mov rcx, qword [rsp + 0x88]
movabs rdx, 0x95b04600a6254fa7
movabs rax, 0x95b04600a6254fa0
xor rdx, rax
mov rax, rcx
and rax, rdx
movabs rdx, 0xabd2ebaf7879d593
movabs r8, 0xabd2ebaf7879d594
xor rdx, r8
xor rcx, rdx
or rax, rcx
mov byte [rsp + rax + 0x138], 0
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x60]
movaps xmm5, xmmword [rsp + 0x50]
movaps xmm4, xmmword [rsp + 0x40]
mov rax, qword [rsp + 0x88]
add rax, 8
movaps xmm8, xmmword [0x140197c10]
movaps xmmword [rsp + 0x30], xmm8
movaps xmm0, xmm4
pand xmm0, xmm8
movaps xmm1, xmm5
pand xmm1, xmm8
movaps xmm2, xmm6
pand xmm2, xmm8
movaps xmm3, xmm7
pand xmm3, xmm8
por xmm4, xmm8
por xmm5, xmm8
por xmm6, xmm8
por xmm7, xmm8
paddq xmm3, xmm7
paddq xmm2, xmm6
paddq xmm1, xmm5
paddq xmm0, xmm4
mov rcx, rax
sub rcx, 0x28
mov qword [rsp + 0xa8], rax
movaps xmmword [rsp + 0xb0], xmm3
movaps xmmword [rsp + 0xc0], xmm2
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xe0], xmm0
jne 0x140025069
jmp 0x140025495
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x108]
mov rcx, qword [rcx]
add rcx, 8
imul rax, rax, 0x28
add rcx, rax
lea rdx, [rsp + 0x138]
call fcn.14004fd1e
mov rax, qword [rsp + 0x128]
cmp byte [rax], 0
jne 0x14002559e
mov r9, qword [rsp + 0xa0]
mov rax, r9
add rax, 1
mov qword [rsp + 0x28], rax
mov rcx, r9
xor rcx, 0xffffffffffffffff
movabs rdx, 0xdb8a8e3dfcc255b9
movabs r8, 0xd8b1e606d70e019e
xor rdx, r8
and rdx, rcx
mov r8, 0xffffffffffffffff
movabs rcx, 0x33b683b2bcc5427
xor r8, rcx
and r9, r8
movabs rcx, 0xfc52a05d0de6fc19
movabs r10, 0x3ad5fa2f21903e6
xor rcx, r10
movabs r10, 0xb2af48fb0e94e03c
movabs r11, 0x4d50b704f16b1fc3
xor r10, r11
xor rcx, r10
movabs r10, 0x33b683b2bcc5427
and rcx, r10
and r8, 0xffffffffffffffff
or rdx, r9
or rcx, r8
xor rdx, rcx
movabs r8, 0x24f97c50e8e08652
movabs rcx, 0x24f97c50e8e08653
xor r8, rcx
mov rcx, rax
add rcx, r8
xor rax, 0xffffffffffffffff
or rax, rdx
add rax, rcx
cmp rax, 0
jge 0x1400255a3
call fcn.14000a590
jmp 0x1400255c6
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x120]
cmp rax, rcx
mov qword [rsp + 0xf8], rax
je 0x14002559e
jmp 0x140024fff
movaps xmm6, xmmword [rsp + 0x160]
movaps xmm7, xmmword [rsp + 0x170]
movaps xmm8, xmmword [rsp + 0x180]
add rsp, 0x190
pop rsi
ret
sub rsp, 0x38
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rcx
xor eax, eax
mov edx, eax
call fcn.140024bad
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
add rsp, 0x38
jmp 0x140024d49