Function at 0x14002de93
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x78
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x58], rcx
mov ecx, dword [0x1401ab0a0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
add rax, 0x60
mov qword [rsp + 0x68], rax
mov rax, qword [rcx]
mov qword [rsp + 0x70], rax
cmp rax, rdx
jle 0x14002dee7
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
call fcn.14002dc8e
jmp 0x14002e1e2
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x60]
cmp rax, rcx
jge 0x14002e1e2
mov rax, qword [rsp + 0x58]
mov rcx, rax
add rcx, 8
mov qword [rsp + 0x48], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0x50], rax
cmp rax, 0
je 0x14002dfbd
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x50]
mov rax, qword [rax]
or rax, rax
movabs rdx, 0xb9684b3573bd1a7f
movabs r8, 0x4697b4ca8c42e580
xor rdx, r8
xor rax, rdx
movabs rdx, 0xbe46520ebea88458
movabs r8, 0x1b9adf141577ba7
xor rdx, r8
movabs r8, 0x66169626206030f9
movabs r9, 0xd9e969d9df9fcf06
xor r8, r9
or rdx, r8
movabs r8, 0x875fcbc9e6a61f17
movabs r9, 0x78a034361959e0e8
xor r8, r9
xor rdx, r8
xor rax, 0xffffffffffffffff
movabs r8, 0x8e3ce212f8013141
movabs r9, 0x71c31ded07fecebe
xor r8, r9
xor rdx, r8
and rax, rdx
cmp rax, rcx
jge 0x14002e0f5
mov r8, qword [rsp + 0x70]
mov r9, qword [rsp + 0x60]
movabs rax, 0xd01703f1015769d1
mov rcx, r9
sub rcx, rax
sub rcx, r8
movabs rax, 0xd01703f1015769d1
add rcx, rax
mov qword [rsp + 0x40], rcx
mov rax, rcx
xor rax, 0xffffffffffffffff
movabs rdx, 0x3834b70d31c4b2a
and rax, rdx
mov r11, 0xffffffffffffffff
movabs rdx, 0x3834b70d31c4b2a
xor r11, rdx
mov r10, rcx
and r10, r11
movabs rsi, 0xa458d21cfc50683d
movabs rdx, 0x5ba72de303af97c2
xor rsi, rdx
mov rdx, r9
xor rdx, rsi
movabs rsi, 0x56a07bac7dbb5988
movabs rdi, 0x552330dcaea712a2
xor rsi, rdi
and rdx, rsi
and r9, r11
or rax, r10
or rdx, r9
xor rax, rdx
cmp rax, 0
setl al
mov r9, rcx
xor r9, r8
xor r9, 0xffffffffffffffff
mov rdx, r8
and rdx, r9
shl rdx, 1
sub rdx, r8
sub rcx, rdx
cmp rcx, 0xffffffffffffffff
setg cl
xor edx, edx
xor dl, 1
xor al, dl
xor cl, 0xff
xor edx, edx
xor dl, 1
mov r8b, 1
xor r8b, 0
xor dl, r8b
or al, cl
xor ecx, ecx
xor cl, 1
or cl, dl
xor edx, edx
xor dl, 1
xor al, dl
and al, cl
test al, 1
jne 0x14002e0eb
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
mov r9d, 8
mov qword [rsp + 0x20], 8
call fcn.1400184ef
mov rcx, rax
mov rax, qword [rsp + 0x48]
mov qword [rax], rcx
jmp 0x14002e0f5
call fcn.14000a590
jmp 0x14002e1e2
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov qword [rcx], rdx
mov qword [rsp + 0x38], rax
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x30], rax
cmp rax, rcx
jge 0x14002e1e2
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx]
add rcx, 8
shl rax, 3
add rcx, rax
xor eax, eax
mov edx, eax
call fcn.140120e3a
mov rax, qword [rsp + 0x68]
cmp byte [rax], 0
jne 0x14002e1e2
mov rdx, qword [rsp + 0x30]
xor eax, eax
mov ecx, eax
sub rcx, rdx
movabs rax, 0x14b1a896dbb95152
movabs r8, 0x14b1a896dbb95152
xor rax, r8
movabs r8, 0x2480003385ae4b61
movabs r9, 0x2480003385ae4b60
xor r8, r9
sub rax, r8
add rcx, rax
xor eax, eax
sub rax, rcx
movabs rcx, 0xbe8855a1434f5be2
movabs r8, 0x4177aa5ebcb0a41d
xor rcx, r8
xor rdx, rcx
mov rcx, rax
and rcx, rdx
movabs rdx, 0x78d5a2b3723e226c
movabs r8, 0x78d5a2b3723e226c
xor rdx, r8
cmp rcx, rdx
mov qword [rsp + 0x38], rax
jge 0x14002e10c
call fcn.14000a590
nop
add rsp, 0x78
pop rdi
pop rsi
ret