Function at 0x140015de0
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x78
mov qword [rsp + 0x48], rcx
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x50], rax
mov rax, rcx
add rax, 8
mov qword [rsp + 0x58], rax
mov r8, qword [rcx + 8]
mov qword [rsp + 0x60], r8
mov rax, r8
and rax, 0xffffffffffffffff
movabs rdx, 0x41aff9807f64118
movabs rcx, 0xfbe50067f809bee7
xor rdx, rcx
mov rcx, r8
or rcx, rdx
add rax, rcx
mov qword [rsp + 0x68], rax
mov rdx, rax
xor rdx, 0xffffffffffffffff
mov rcx, r8
and rcx, rdx
xor r8, 0xffffffffffffffff
mov rdx, rax
and rdx, r8
or rcx, rdx
mov qword [rsp + 0x70], rcx
movabs rdx, 0x926105b3cad6da50
movabs r8, 0x926105b3cad6da50
xor rdx, r8
cmp rcx, rdx
setl cl
cmp rax, 0xffffffffffffffff
setg al
or al, al
xor al, 0xff
or cl, cl
xor edx, edx
xor dl, 1
xor cl, dl
or al, cl
xor al, 0xff
test al, 1
jne 0x140015ea1
jmp 0x140015eab
call fcn.14000ee80
jmp 0x14001613f
mov rax, qword [rsp + 0x50]
mov rcx, rax
add rcx, 0x20
mov qword [rsp + 0x38], rcx
mov r8, qword [rax + 0x20]
movabs rcx, 0x9b0cbacfdbbe55dc
mov rax, r8
sub rax, rcx
add rax, 0xffffffffffffffff
movabs rcx, 0x9b0cbacfdbbe55dc
add rax, rcx
mov qword [rsp + 0x40], rax
mov rdx, rax
xor rdx, 0xffffffffffffffff
mov rcx, r8
and rcx, rdx
movabs rdx, 0x59d28a10b1f820c2
movabs r9, 0xa62d75ef4e07df3d
xor rdx, r9
xor r8, rdx
mov rdx, rax
and rdx, r8
or rcx, rdx
cmp rcx, 0
setl cl
movabs rdx, 0xf42fa1b58dbfcbf8
movabs r8, 0xbd05e4a72403407
xor rdx, r8
cmp rax, rdx
setg al
and al, cl
test al, 1
jne 0x140015f49
jmp 0x140015f53
call fcn.14000ee80
jmp 0x14001613f
mov rdx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x70]
mov r9, qword [rsp + 0x40]
mov r10, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x50]
mov r8, rcx
add r8, 0x30
mov qword [rsp + 0x30], r8
mov r8, qword [rcx + 0x30]
shl r10, 4
mov rcx, r8
add rcx, r10
shl r9, 4
add r8, r9
mov r9, qword [r8]
mov qword [rcx], r9
mov r8, qword [r8 + 8]
mov qword [rcx + 8], r8
mov rcx, rax
xor rcx, rdx
xor rcx, 0xffffffffffffffff
or rax, rdx
and rax, rcx
cmp rax, 0
jge 0x140015fbf
call fcn.14000ee80
jmp 0x14001613f
mov rax, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x68]
shl rcx, 4
add rcx, qword [r8]
mov rcx, qword [rcx]
mov qword [rcx + 8], rdx
mov rdx, qword [rax]
movabs rcx, 0xfe81783a7a81ebb
movabs rax, 0xf017e87c5857e144
xor rcx, rax
mov rax, rdx
add rax, rcx
mov qword [rsp + 0x28], rax
mov rcx, rax
xor rcx, rdx
cmp rcx, 0
setl cl
cmp rax, 0xffffffffffffffff
setg al
and al, cl
test al, 1
jne 0x140016029
jmp 0x140016126
mov eax, dword [0x1402a89e8]
mov edx, dword [0x1402a89ec]
xor edx, 0xf9895bcc
mov r8d, 0x569f9b0f
xor r8d, 0xa96064f0
mov ecx, eax
xor ecx, r8d
and ecx, edx
xor edx, 0xffffffff
and eax, edx
sub eax, ecx
imul eax, eax, 0xd82fee62
and eax, 0x23b03961
imul eax, eax, 0x3aac4c09
cmp eax, 0x47b71ebc
jb 0x140016144
mov ecx, dword [0x1402a89f0]
mov r8d, dword [0x1402a89f4]
mov r9d, r8d
xor r9d, 0xffffffff
mov edx, ecx
and edx, r9d
mov eax, ecx
or eax, r9d
xor eax, 0xffffffff
imul eax, edx
mov edx, ecx
and edx, r8d
or ecx, r8d
imul ecx, edx
add ecx, eax
mov eax, 0xf4158107
xor eax, 0x2ebfaa59
add ecx, eax
mov edx, 0xf36ffbdd
xor edx, 0xc900422
mov eax, ecx
xor eax, edx
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
and eax, 0xac322df6
xor eax, 0xffffffff
mov edx, 0xac322df6
and edx, 0xac322df6
xor edx, 0xffffffff
and ecx, edx
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0x213bd0e7
xor ecx, 0xdec42f18
xor eax, ecx
mov ecx, 0x4414952b
xor ecx, 0x4ea15e63
and ecx, eax
xor ecx, 0xffffffff
add eax, 0xab5cb48
add eax, 1
add eax, ecx
mov dword [rsp + 0x24], eax
call fcn.14000ee80
mov eax, dword [rsp + 0x24]
cmp eax, 0x6db6fe02
jb 0x140016144
jmp 0x14001613f
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x28]
mov qword [rcx], rdx
mov qword [rax], 0
add rsp, 0x78
ret
invalid