Function at 0x140020c5f
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0xb8
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x90], rcx
mov rax, rcx
add rax, 8
mov qword [rsp + 0x98], rax
mov rax, qword [rcx + 8]
mov qword [rsp + 0xa0], rax
mov rcx, rdx
add rcx, 8
mov qword [rsp + 0xa8], rcx
mov rcx, qword [rdx + 8]
mov qword [rsp + 0xb0], rcx
cmp rax, rcx
je 0x140021258
mov rax, qword [rsp + 0xb0]
cmp rax, 0
je 0x140020d1a
mov rax, qword [rsp + 0xb0]
mov rax, qword [rax]
mov rcx, rax
add rcx, 1
xor rax, 0xffffffffffffffff
movabs rdx, 0x55f851190a75fb1a
movabs r8, 0x15f851190a75fb1a
xor rdx, r8
or rax, rdx
add rax, rcx
movabs rcx, 0x4c7fc2184de02c34
movabs rdx, 0x4c7fc2184de02c34
xor rcx, rdx
cmp rax, rcx
je 0x140020df5
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xa0]
cmp rcx, 0
mov qword [rsp + 0x80], rax
je 0x140020dc7
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rcx]
mov r8, 0xffffffffffffffff
movabs rcx, 0x4000000000000000
xor r8, rcx
mov rcx, rdx
xor rcx, r8
and rcx, rdx
movabs rdx, 0xed1a3c0e51fbaf71
movabs r8, 0xed1a3c0e51fbaf71
xor rdx, r8
cmp rcx, rdx
mov qword [rsp + 0x80], rax
jne 0x140020dc7
mov ecx, dword [0x1401ab0a0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0xa0]
mov rcx, rax
add rcx, 0x68
call fcn.14000ffaa
mov rax, qword [rsp + 0xa8]
mov rax, qword [rax]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x98]
mov rdx, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
mov r8, qword [r8]
mov qword [rdx], r8
mov qword [rax], rcx
jmp 0x140021258
mov rax, qword [rsp + 0xa0]
cmp rax, 0
je 0x140020efe
mov rax, qword [rsp + 0xa0]
mov rax, qword [rax]
mov qword [rsp + 0x78], rax
movabs rdx, 0x60a31afe70d03149
movabs rcx, 0x20a31afe70d03149
xor rdx, rcx
mov rcx, rax
xor rcx, rdx
movabs rdx, 0xddaf0bc42c2d77fa
movabs r8, 0x2250f43bd3d28805
xor rdx, r8
xor rcx, rdx
movabs rdx, 0xf4a3b0bb7484ef72
movabs r8, 0xb4a3b0bb7484ef72
xor rdx, r8
or rax, rdx
and rax, rcx
cmp rax, 0
jne 0x140020efe
mov rcx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x78]
mov r8, rdx
add r8, 1
movabs r9, 0x3fb48d45116ea8fe
movabs r10, 0xc04b72baee915701
xor r9, r10
xor rdx, r9
movabs r9, 0x5b4e0aa0ca2eb6be
movabs r10, 0xe4b1f55f35d14941
xor r9, r10
or rdx, r9
add rdx, r8
mov rax, qword [rax]
cmp rdx, rax
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rax
jge 0x1400210e6
mov ecx, dword [0x1401ab0a0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0xa0]
mov rcx, rax
add rcx, 0x68
call fcn.14000ffaa
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax]
mov qword [rsp + 0x60], rcx
mov rdx, 0xffffffffffffffff
xor rdx, 1
xor eax, eax
sub rax, 1
sub rdx, rax
mov rax, rcx
sub rax, rdx
movabs rdx, 0x948c4b49fa9cec32
movabs r8, 0x6b73b4b6056313cd
xor rdx, r8
mov r8, rcx
xor r8, rdx
xor r8, 0xffffffffffffffff
movabs rdx, 0xdb2198d32e78b64b
movabs r9, 0x24de672cd18749b4
xor rdx, r9
and rdx, r8
shl rdx, 1
sub rdx, 0xffffffffffffffff
sub rcx, rdx
xor rax, 0xffffffffffffffff
movabs rdx, 0xcaa0c6861d63ec30
movabs r8, 0x355f3979e29c13cf
xor rdx, r8
xor rcx, rdx
mov rdx, 0xffffffffffffffff
movabs r8, 0x8797de0eb2695e62
xor rdx, r8
or rax, rcx
movabs rcx, 0x9fb0d8a9ce9003f8
movabs r8, 0x182706a77cf95d9a
xor rcx, r8
or rcx, rdx
movabs rdx, 0xd5bbbed531e6ccd3
movabs r8, 0x2a44412ace19332c
xor rdx, r8
xor rax, rdx
and rax, rcx
cmp rax, 0
jge 0x140020fee
call fcn.14000a590
jmp 0x140021258
mov rax, qword [rsp + 0x60]
mov rcx, rax
add rcx, 9
mov qword [rsp + 0x58], rcx
mov rdx, 0xfffffffffffffffe
sub rdx, rax
movabs r8, 0xbec07225ff304941
movabs rax, 0x413f8dda00cfb6be
xor r8, rax
mov rax, rcx
xor rax, r8
movabs r9, 0xe03fa02bc3577d8d
movabs r8, 0x1fc05fd43ca88272
xor r9, r8
mov r8, rdx
xor r8, r9
or rax, r8
and rcx, rdx
movabs rdx, 0x806d1693e19aa940
movabs r8, 0x7f92e96c1e6556bf
xor rdx, r8
xor rcx, rdx
and rax, rcx
movabs rcx, 0x505d8042117920d8
movabs rdx, 0xafa27fbdee86df27
xor rcx, rdx
xor rax, rcx
cmp rax, 0
jge 0x140021094
call fcn.14000a590
jmp 0x140021258
mov rax, qword [rsp + 0x58]
cmp rax, 0
jge 0x1400210b3
mov rcx, r8
mov rdx, r8
call fcn.140010917
jmp 0x140021258
mov rcx, qword [rsp + 0x58]
call fcn.14000dc9f
mov rdx, qword [rsp + 0x98]
mov rcx, rax
mov rax, qword [rsp + 0x88]
mov qword [rdx], rcx
mov rdx, qword [rax]
mov qword [rcx], rdx
mov rax, qword [rax]
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x90]
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0x40], r8
mov qword [rcx], rdx
mov rcx, qword [rax]
mov qword [rsp + 0x48], rcx
mov rdx, rcx
and rdx, 1
mov rax, rcx
or rax, 1
add rdx, rax
mov qword [rsp + 0x50], rdx
xor rcx, 0xffffffffffffffff
mov rax, rdx
xor rax, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
and rax, rdx
or rcx, rcx
movabs rdx, 0xf2bb98582e1def3e
movabs r8, 0xd4467a7d1e210c1
xor rdx, r8
xor rcx, rdx
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
and rax, rcx
movabs rcx, 0xe386b059b5b3e0d3
movabs rdx, 0xe386b059b5b3e0d3
xor rcx, rdx
cmp rax, rcx
jge 0x14002118a
call fcn.14000a590
jmp 0x140021258
mov rax, qword [rsp + 0x50]
movabs rcx, 0xa6cc2a751486a580
movabs rdx, 0xa6cc2a751486a580
xor rcx, rdx
cmp rax, rcx
jge 0x1400211bf
mov rcx, r8
mov rdx, r8
call fcn.140010917
jmp 0x140021258
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x40]
add rdx, 8
mov qword [rsp + 0x28], rdx
mov rax, qword [rax]
add rax, 8
mov qword [rsp + 0x30], rax
movabs rdx, 0x18383b79a1209abc
movabs rax, 0x18383b79a1209abc
xor rdx, rax
xor eax, eax
cmp rcx, rdx
mov qword [rsp + 0x38], rax
je 0x140021258
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
mov r8b, byte [r8 + rcx]
mov byte [rax + rcx], r8b
movabs r8, 0xe0be08cd5f28ae89
mov rax, rcx
add rax, r8
add rax, 1
movabs r8, 0xe0be08cd5f28ae89
sub rax, r8
cmp rcx, rdx
mov qword [rsp + 0x38], rax
jne 0x14002120d
add rsp, 0xb8
ret