Function at 0x14002f850
Capabilities:
Get thread local storage value

Disassembly:
push rsi
sub rsp, 0xb0
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x70], rcx
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
add rax, 0x60
mov qword [rsp + 0x80], rax
mov rax, qword [rcx]
mov qword [rsp + 0x88], rax
cmp rax, rdx
jle 0x14002f8ac
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
call fcn.14002f420
jmp 0x14002fc04
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
cmp rax, rcx
jge 0x14002fc04
mov rax, qword [rsp + 0x70]
mov rcx, rax
add rcx, 8
mov qword [rsp + 0x60], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0x68], rax
cmp rax, 0
je 0x14002f906
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x68]
movabs rax, 0xbfffffffffffffff
and rax, qword [rdx]
cmp rax, rcx
jge 0x14002f9e2
mov rdx, qword [rsp + 0x88]
mov r9, qword [rsp + 0x78]
xor eax, eax
mov ecx, eax
sub rcx, rdx
mov rax, r9
add rax, rcx
mov qword [rsp + 0x58], rax
mov r8, rax
xor r8, 0xffffffffffffffff
movabs rcx, 0xa15357115c6cedf6
movabs r10, 0xd5ffd1803968c04b
xor rcx, r10
and rcx, r8
mov r11, 0xffffffffffffffff
movabs r8, 0x74ac869165042dbd
xor r11, r8
mov r10, rax
and r10, r11
mov r8, r9
xor r8, 0xffffffffffffffff
movabs rsi, 0x74ac869165042dbd
and r8, rsi
and r9, r11
or rcx, r10
or r8, r9
xor rcx, r8
cmp rcx, 0
setl cl
xor rax, rdx
cmp rax, 0xffffffffffffffff
setg dl
xor dl, 0xff
mov al, cl
xor al, dl
and al, cl
test al, 1
jne 0x14002f9d8
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x88]
mov r9d, 0x20
mov qword [rsp + 0x20], 8
call fcn.140023a90
mov rcx, rax
mov rax, qword [rsp + 0x60]
mov qword [rax], rcx
jmp 0x14002f9e2
call fcn.14000ee80
jmp 0x14002fc04
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov qword [rcx], rdx
lea rcx, [rsp + 0x90]
add rcx, 0x10
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x40], rax
mov eax, dword [0x1402a9408]
xor edx, edx
div dword [0x1402a940c]
or eax, 0x6405a8aa
mov ecx, 0x6e130c99
xor ecx, 0x138da0eb
or eax, ecx
sub eax, 0x2b414da9
cmp eax, 0x93c9a591
ja 0x14002fc0d
mov eax, dword [0x1402a9410]
mov ecx, dword [0x1402a9414]
imul eax, ecx
mov ecx, 0xb855c8a7
imul rax, rcx
shr rax, 0x3b
mov ecx, eax
mov edx, ecx
not edx
or edx, 0x98db8b47
mov eax, ecx
mov ecx, edx
lea eax, [rax + rcx + 0x5762a12d]
mov dword [rsp + 0x38], eax
mov ecx, dword [0x1402d10b0]
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x40]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rdx], xmm0
mov rcx, qword [rcx]
add rcx, 8
shl rax, 5
add rcx, rax
lea rdx, [rsp + 0x90]
call fcn.14006b47b
mov rcx, qword [rsp + 0x80]
mov eax, dword [rsp + 0x38]
cmp byte [rcx], 0
sete cl
mov byte [rsp + 0x3f], cl
cmp eax, 0x8cb17d4
jbe 0x14002fa47
mov al, byte [rsp + 0x3f]
test al, 1
jne 0x14002faf7
jmp 0x14002fbe2
mov rcx, qword [rsp + 0x40]
mov rdx, rcx
and rdx, 1
shl rdx, 1
mov rax, rcx
xor rax, 1
add rax, rdx
mov qword [rsp + 0x30], rax
movabs rdx, 0xb9099eb54365ee20
movabs r8, 0x46f6614abc9a11df
xor rdx, r8
mov r8, rcx
xor r8, rdx
movabs rdx, 0x8f49a4f7ca96f401
movabs r9, 0x70b65b0835690bfe
xor rdx, r9
and rdx, r8
mov r8, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
and rcx, r8
or rdx, rcx
xor rax, 0xffffffffffffffff
movabs rcx, 0xb77b6eda86ae9447
movabs r8, 0x4884912579516bb8
xor rcx, r8
xor rdx, rcx
mov rcx, 0xffffffffffffffff
movabs r8, 0x9e88de897b4c664e
xor rcx, r8
or rax, rdx
movabs rdx, 0x9e88de897b4c664e
or rcx, rdx
movabs rdx, 0x7fbf09cd8aad1529
movabs r8, 0x8040f6327552ead6
xor rdx, r8
xor rax, rdx
and rax, rcx
movabs rcx, 0xd5bf14278bba925a
movabs rdx, 0xd5bf14278bba925a
xor rcx, rdx
cmp rax, rcx
jge 0x14002fbe7
call fcn.14000ee80
jmp 0x14002fc04
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x78]
cmp rax, rcx
mov qword [rsp + 0x50], rax
je 0x14002fbe2
jmp 0x14002fa0d
add rsp, 0xb0
pop rsi
ret
invalid
sub rsp, 0x38
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rcx
xor eax, eax
mov edx, eax
call fcn.14002f420
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
add rsp, 0x38
jmp 0x14002f850