Function at 0x1400451a0
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x88
mov qword [rsp + 0x78], rcx
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0x78]
add rax, 0x60
mov qword [rsp + 0x80], rax
cmp qword [rcx], 0
jle 0x140045451
mov rax, qword [rsp + 0x78]
add rax, 8
mov qword [rsp + 0x68], rax
xor eax, eax
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x58], rcx
mov rax, qword [rax]
mov rax, qword [rax + rcx*8 + 8]
mov qword [rsp + 0x60], rax
cmp rax, 0
je 0x140045435
mov rcx, qword [rsp + 0x60]
mov rax, rcx
and rax, 0xfffffffffffffff0
or rcx, 0xfffffffffffffff0
add rax, rcx
mov qword [rsp + 0x48], rax
mov rax, qword [rax]
mov qword [rsp + 0x50], rax
movabs rcx, 0x3d0f0b66730b9066
movabs rdx, 0x3d0f0b66730b9076
xor rcx, rdx
cmp rax, rcx
jb 0x1400453cc
mov r8, qword [rsp + 0x50]
mov rcx, 0xffffffffffffffff
xor rcx, 0xfffffffffffffff0
xor eax, eax
sub rax, 1
sub rcx, rax
mov rax, r8
sub rax, rcx
mov qword [rsp + 0x40], rax
mov rcx, rax
and rcx, r8
movabs rdx, 0x96cf7295d8143218
movabs r9, 0x96cf7295d814321a
xor rdx, r9
imul rdx, rcx
mov rcx, rax
add rcx, r8
sub rcx, rdx
movabs rdx, 0xc9f1b27cc6025e30
movabs r8, 0xc9f1b27cc6025e30
xor rdx, r8
cmp rcx, rdx
setl dl
movabs rcx, 0x8c5ed7f201ace44b
movabs r8, 0x73a1280dfe531bb4
xor rcx, r8
cmp rax, rcx
setg al
xor al, 0xff
xor dl, 0xff
mov cl, 1
xor cl, 0
xor r8d, r8d
xor r8b, 1
xor cl, r8b
or al, dl
or cl, 1
mov dl, 1
xor dl, 0
xor al, dl
and al, cl
test al, 1
jne 0x140045305
jmp 0x1400453ba
mov eax, dword [0x1402a9e18]
mov edx, dword [0x1402a9e1c]
mov ecx, eax
or ecx, edx
mov r8d, 0xb3793113
xor r8d, 0x4c86ceec
xor ecx, r8d
xor eax, 0xffffffff
xor edx, 0xffffffff
and eax, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
and ecx, eax
mov edx, 0xe0aa78b1
xor edx, 0x12c892da
mov eax, ecx
and eax, edx
xor ecx, 0xf262ea6b
or eax, ecx
mov ecx, 0x86cf73d4
xor ecx, 0x94783137
imul eax, ecx
sub eax, 0x6e75bb56
mov ecx, 0x9b42fcad
xor ecx, 0xddbc2755
cmp eax, ecx
jb 0x14004548f
mov eax, dword [0x1402a9e20]
add eax, dword [0x1402a9e24]
mov ecx, 0xf41d6d2f
xor edx, edx
div ecx
mov ecx, 0xc1485f07
xor ecx, 0x4320660c
or eax, ecx
mov ecx, 0x4b4ab056
xor edx, edx
div ecx
mov dword [rsp + 0x3c], eax
call fcn.14000ee80
mov eax, dword [rsp + 0x3c]
cmp eax, 0x2669be73
jae 0x140045372
jmp 0x140045435
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov qword [rax], rcx
jmp 0x140045435
mov rcx, qword [rsp + 0x60]
call fcn.1401d04b0
mov rax, qword [rsp + 0x80]
cmp byte [rax], 0
jne 0x140045486
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x68]
mov rax, qword [rax]
mov rax, qword [rax + rcx*8 + 8]
movabs rcx, 0x557740ff6ff56503
movabs rdx, 0xaa88bf00900a9af3
xor rcx, rdx
add rax, rcx
mov qword [rsp + 0x30], rax
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x30]
mov rcx, rax
add rcx, 0x68
call fcn.140017ba0
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x58]
add rax, 1
cmp rax, qword [rcx]
mov qword [rsp + 0x70], rax
jl 0x1400451e8
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 8]
mov qword [rsp + 0x28], rax
cmp rax, 0
je 0x140045486
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x28]
mov rcx, rax
add rcx, 0x68
call fcn.140017ba0
nop
add rsp, 0x88
ret
jo 0x1400454bf
jnp 0x1400454a6
jmp 0x140045372
mov dword [rsp + 0x50], eax