Function at 0x14001a040
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0xe8
mov qword [rsp + 0xc8], r9
mov qword [rsp + 0xd0], r8
mov qword [rsp + 0xd8], rdx
mov qword [rsp + 0xe0], rcx
mov ecx, dword [0x1402a8b48]
or ecx, dword [0x1402a8b4c]
sub ecx, 0x7134454e
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x5d5bb6ef
mov edx, 0x870283aa
xor edx, 0xda593545
mov r8d, 0x90539e95
xor r8d, 0x6fac616a
xor edx, r8d
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
mov ecx, eax
and ecx, 0xc75239bf
shl ecx, 1
mov edx, 0xc31611f0
xor edx, 0x444284f
add eax, edx
sub eax, ecx
cmp eax, 0xdd7f3481
ja 0x14001a74c
mov eax, dword [0x1402a8b50]
mov r8d, dword [0x1402a8b54]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, r8d
and edx, ecx
mov ecx, 0x7b4f9ccd
xor ecx, 0x84b06332
mov r9d, r8d
xor r9d, ecx
mov ecx, eax
and ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0xf47f68fb
xor edx, edx
div ecx
xor eax, 0xfb6a7bc7
xor eax, 0xd4af5077
mov dword [rsp + 0xac], eax
mov eax, 0x8d183fd4
xor eax, 0x5b896454
mov dword [rsp + 0xa8], eax
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0xe0]
mov r8, qword [rsp + 0xd0]
mov ecx, dword [rsp + 0xa8]
mov r9, rax
mov eax, dword [rsp + 0xac]
add r9, 0x60
mov qword [rsp + 0xb0], r9
mov rdx, qword [rdx]
mov qword [rsp + 0xb8], rdx
mov r9, rdx
xor r9, 3
xor r9, 0xffffffffffffffff
or rdx, 3
and rdx, r9
cmp rdx, r8
sete dl
mov byte [rsp + 0xc7], dl
cmp eax, ecx
jae 0x14001a0d5
mov al, byte [rsp + 0xc7]
test al, 1
jne 0x14001a1bc
jmp 0x14001a744
mov rax, qword [rsp + 0xe0]
cmp qword [rax + 8], 0
jne 0x14001a744
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xe0]
mov rdx, qword [rsp + 0xb8]
xor rdx, 0xffffffffffffffff
movabs r9, 0xc7813a106ca954a6
movabs r8, 0x387ec5ef9356ab5a
xor r9, r8
movabs r8, 0x5debdbd80f8b8645
movabs r10, 0xa2142427f07479ba
xor r8, r10
xor r9, r8
movabs r8, 0xfb1d5f3e26b4f94c
movabs r10, 0xfced8984927f2145
xor r8, r10
movabs r10, 0x85046ea58038e3d2
movabs r11, 0x7afb915a7fc71c2d
xor r10, r11
xor r8, r10
or rdx, r9
movabs r9, 0x7f0d6bab4cbd809
or r8, r9
movabs r9, 0x18c08a224f95c1f8
movabs r10, 0xe73f75ddb06a3e07
xor r9, r10
xor rdx, r9
and rdx, r8
mov qword [rcx], rdx
mov rcx, rax
add rcx, 0x18
mov qword [rsp + 0x90], rcx
mov rcx, rax
add rcx, 0x20
mov qword [rsp + 0x98], rcx
mov rcx, qword [rax + 0x20]
mov rax, qword [rax + 0x18]
cmp rcx, rax
mov qword [rsp + 0xa0], rax
jg 0x14001a2d4
mov rcx, qword [rsp + 0x90]
call fcn.140018352
mov rax, qword [rsp + 0x90]
mov rax, qword [rax]
mov qword [rsp + 0xa0], rax
mov rdx, qword [rsp + 0xd8]
mov r9, qword [rsp + 0xe0]
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xa0]
mov r8, rax
add r8, 0x28
mov qword [rsp + 0x80], r8
mov rax, qword [rax + 0x28]
mov r10, rcx
shl r10, 4
mov r8, rax
add r8, r10
mov qword [r8], r9
mov r8, rcx
shl r8, 4
add rax, r8
add rax, 8
mov qword [rax], rdx
mov rax, rcx
add rax, 1
mov qword [rsp + 0x88], rax
xor rcx, 0xffffffffffffffff
and rax, rcx
cmp rax, 0
jge 0x14001a352
call fcn.14000ee80
jmp 0x14001a365
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x88]
mov qword [rax], rcx
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rax, qword [rsp + 0xd8]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x78], rax
cmp rax, 0
je 0x14001a3a7
mov rax, qword [rsp + 0x78]
mov rdx, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xe0]
add rcx, 0x10
call rax
mov rax, qword [rsp + 0xb0]
cmp byte [rax], 0
jne 0x14001a744
mov rax, qword [rsp + 0xc8]
mov rax, qword [rax]
mov qword [rsp + 0x70], rax
cmp rax, 0
jle 0x14001a744
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0xc8]
add rcx, 0x10
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], rax
mov rcx, qword [rsp + 0xd0]
mov rax, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x68]
add r8, 0xffffffffffffffff
mov r9, r8
shl r9, 4
add r9, qword [rdx]
mov rdx, qword [r9]
mov r9, qword [r9 + 8]
mov qword [rsp + 0x48], r9
mov qword [rax], r8
mov rax, qword [rdx]
mov qword [rsp + 0x50], rax
movabs r8, 0x82dc99414b84b748
movabs r9, 0x82dc99414b84b748
xor r8, r9
sub r8, rax
xor eax, eax
sub rax, 0xfffffffffffffff0
add r8, rax
xor eax, eax
sub rax, r8
mov qword [rsp + 0x58], rax
mov qword [rdx], 0
mov rax, qword [rax]
and rax, 3
cmp rax, rcx
jne 0x14001a72a
mov rax, qword [rsp + 0x58]
cmp qword [rax + 8], 0
jne 0x14001a72a
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x98]
mov rcx, qword [rcx]
mov rax, qword [rax]
cmp rcx, rax
mov qword [rsp + 0x40], rax
jg 0x14001a4c1
mov rcx, qword [rsp + 0x90]
call fcn.140018352
mov rax, qword [rsp + 0x90]
mov rax, qword [rax]
mov qword [rsp + 0x40], rax
mov rcx, qword [rsp + 0x48]
mov r9, qword [rsp + 0x58]
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x40]
mov rax, qword [rax]
mov r10, rdx
shl r10, 4
mov r8, rax
add r8, r10
mov qword [r8], r9
mov r8, rdx
shl r8, 4
add rax, r8
add rax, 8
mov qword [rax], rcx
movabs rax, 0xa594d085c92f7497
mov rcx, rdx
sub rcx, rax
movabs rax, 0xefeb758adb2e4821
movabs r8, 0xefeb758adb2e4820
xor rax, r8
add rcx, rax
movabs rax, 0xa594d085c92f7497
add rcx, rax
mov qword [rsp + 0x38], rcx
xor rdx, 0xffffffffffffffff
mov rax, rcx
xor rax, 0xffffffffffffffff
movabs r9, 0x98ebd9ec3be1a55d
movabs r8, 0x67142613c41e5aa2
xor r9, r8
mov r8, rdx
xor r8, r9
or rax, r8
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
or rcx, rdx
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
or rax, rcx
movabs rcx, 0x7ee2becab0ede0d1
movabs rdx, 0x7ee2becab0ede0d1
xor rcx, rdx
cmp rax, rcx
jge 0x14001a6b2
mov eax, dword [0x1402a8b58]
xor eax, 0xad525741
xor eax, dword [0x1402a8b5c]
mov ecx, eax
and ecx, 0xfe92bfcf
xor eax, 0xfe92bfcf
or ecx, eax
mov edx, 0xc24cccc4
xor edx, 0x3db3333b
mov eax, ecx
xor eax, edx
and eax, 0xdc569a2d
mov edx, 0xffffffff
xor edx, 0xdc569a2d
and ecx, edx
or eax, ecx
xor eax, 0x1af292dc
mov ecx, 0x5e4f429d
xor ecx, 0xf3892209
cmp eax, ecx
jae 0x14001a755
mov ecx, dword [0x1402a8b60]
xor ecx, 0x76164186
mov edx, dword [0x1402a8b64]
mov eax, ecx
and eax, edx
xor eax, 0xffffffff
mov r8d, 0x70cdb5a2
xor r8d, 0x8f324a5d
xor ecx, r8d
mov r8d, 0x2c395d8e
xor r8d, 0xd3c6a271
xor edx, r8d
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0x258fa490
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
mov r8d, 0x386daee9
xor r8d, 0xc7925116
xor ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x258fa490
or eax, 0x258fa490
imul eax, edx
add eax, ecx
mov ecx, 0xf26375fa
xor edx, edx
div ecx
mov ecx, 0x58e31185
xor ecx, 0x59f7902
sub eax, ecx
mov dword [rsp + 0x34], eax
mov eax, 0xcb101113
xor eax, 0x79c5931e
mov dword [rsp + 0x30], eax
call fcn.14000ee80
mov ecx, dword [rsp + 0x30]
mov eax, dword [rsp + 0x34]
cmp eax, ecx
je 0x14001a5f4
jmp 0x14001a6c2
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x38]
mov qword [rax], rcx
mov rax, qword [rsp + 0x58]
mov rdx, qword [rax]
mov r8, 0xffffffffffffffff
xor r8, 0xfffffffffffffffc
mov rcx, rdx
xor rcx, r8
and rcx, rdx
mov qword [rax], rcx
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x28], rax
cmp rax, 0
je 0x14001a719
mov rax, qword [rsp + 0x28]
mov rdx, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x50]
call rax
mov rax, qword [rsp + 0xb0]
cmp byte [rax], 0
jne 0x14001a744
mov rax, qword [rsp + 0xc8]
mov rax, qword [rax]
cmp rax, 0
mov qword [rsp + 0x68], rax
jg 0x14001a3ed
add rsp, 0xe8
ret
cmpsd dword gs:[rsi], dword [rdi]
mov esi, 0xf980e932
invalid
movabs al, byte [0xfffffe96e91935a4]
sub rsp, 0x28
mov qword [rsp + 0x20], rcx
mov ecx, dword [0x1402d10b0]
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov rdx, qword [rsp + 0x20]
mov rcx, rax
add rcx, 0x68
add rsp, 0x28
jmp fcn.140017ba0