Function at 0x14003f320
Capabilities:
Get thread local storage value

Disassembly:
push rsi
sub rsp, 0x80
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x60], rcx
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
add rax, 0x60
mov qword [rsp + 0x70], rax
mov rax, qword [rcx]
mov qword [rsp + 0x78], rax
cmp rax, rdx
jle 0x14003f376
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
call fcn.14003f100
jmp 0x14003f8f8
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x68]
cmp rax, rcx
jge 0x14003f8f8
mov rax, qword [rsp + 0x60]
mov rcx, rax
add rcx, 8
mov qword [rsp + 0x50], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0x58], rax
cmp rax, 0
je 0x14003f3e7
mov rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
movabs r8, 0xbfffffffffffffff
mov rdx, rax
xor rdx, r8
xor rdx, 0xffffffffffffffff
movabs r8, 0xbfffffffffffffff
or rax, r8
and rax, rdx
cmp rax, rcx
jge 0x14003f598
mov rdx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x68]
mov rcx, rax
sub rcx, rdx
mov qword [rsp + 0x48], rcx
mov r9, rcx
xor r9, rax
xor r9, 0xffffffffffffffff
mov r8, rax
and r8, r9
shl r8, 1
sub r8, rax
mov rax, rcx
sub rax, r8
cmp rax, 0
setl al
xor rcx, rdx
movabs rdx, 0x6e257bc1d818e9ce
movabs r8, 0x91da843e27e71631
xor rdx, r8
cmp rcx, rdx
setg cl
and al, cl
test al, 1
jne 0x14003f58e
mov ecx, dword [0x1402a9ae8]
xor ecx, 0x902b79d5
sub ecx, dword [0x1402a9aec]
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
and eax, edx
mov edx, 0x92aa08de
or edx, 0x92aa08de
mov r8d, 0x8657ab6f
xor r8d, 0x79a85490
xor edx, r8d
xor eax, 0xffffffff
xor edx, 0xffffffff
and eax, edx
mov edx, 0xac3fb02
xor edx, 0x9869f3dc
or ecx, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
imul eax, eax, 0x6a594fb9
mov ecx, 0x4abb0bfa
xor edx, edx
div ecx
cmp eax, 0xdde8ecfe
je 0x14003f999
mov r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x78]
mov eax, dword [0x1402a9af0]
xor eax, 0xda876bfe
mov r11d, dword [0x1402a9af4]
mov r9d, eax
xor r9d, 0xffffffff
mov r10d, r11d
and r10d, r9d
mov r9d, 0xaf31f13a
xor r9d, 0x50ce0ec5
mov esi, r11d
xor esi, r9d
mov r9d, eax
and r9d, esi
imul r9d, r10d
mov r10d, eax
and r10d, r11d
or eax, r11d
imul eax, r10d
add eax, r9d
mov r9d, 0xffffffff
xor r9d, 0x83268acf
add eax, r9d
add eax, 1
imul r9d, eax, 0x612a68f5
mov r10d, 0xffffffff
xor r10d, 0x49cabbc8
mov eax, r9d
xor eax, r10d
and eax, r9d
mov dword [rsp + 0x44], eax
mov eax, 0x3aea35a4
xor eax, 0xbcc4f72e
mov dword [rsp + 0x40], eax
mov r9d, 8
mov qword [rsp + 0x20], 8
call fcn.140023a90
mov rdx, qword [rsp + 0x50]
mov ecx, dword [rsp + 0x40]
mov r8, rax
mov eax, dword [rsp + 0x44]
mov qword [rdx], r8
cmp eax, ecx
jae 0x14003f999
jmp 0x14003f598
call fcn.14000ee80
jmp 0x14003f8f8
mov eax, dword [0x1402a9af8]
mov r8d, dword [0x1402a9afc]
mov ecx, 0x625f3b52
xor ecx, 0x55b3c7aa
xor r8d, ecx
mov r9d, r8d
xor r9d, 0xffffffff
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0x4d81f241
xor ecx, 0x4d81f241
sub ecx, eax
xor eax, eax
sub eax, 0x4f94221e
add ecx, eax
xor eax, eax
sub eax, ecx
mov edx, eax
and edx, 0x7177b4e8
mov ecx, 0xd1e9fca0
xor ecx, 0xd1e9fca2
imul ecx, edx
mov edx, 0x6a3cd4ad
xor edx, 0x1b4b6045
add eax, edx
sub eax, ecx
and eax, eax
xor eax, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x72e4a0d2
mov edx, 0xc13e001f
xor edx, 0xb3daa0cd
mov r8d, 0xf578e720
xor r8d, 0xa8718df
xor edx, r8d
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
cmp eax, 0x10317034
jbe 0x14003f9a2
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
mov eax, dword [0x1402a9b00]
mov r8d, dword [0x1402a9b04]
xor r8d, 0xffffffff
xor r9d, r9d
sub r9d, 1
sub r8d, r9d
sub eax, r8d
mov r9d, 0x307f18d9
xor r9d, 0x461141aa
mov r8d, eax
xor r8d, r9d
mov r9d, 0xffffffff
xor r9d, 0x766e5973
and eax, r9d
shl eax, 1
sub eax, r8d
mov r8d, 0xc8831336
xor r8d, 0x3caf5b81
xor eax, r8d
mov r9d, eax
xor r9d, 0xffffffff
and r9d, 0xb9614a93
mov r10d, 0xffffffff
xor r10d, 0xb9614a93
mov r8d, eax
and r8d, r10d
imul r8d, r9d
mov r9d, eax
and r9d, 0xb9614a93
mov r10d, 0x15a1ba23
xor r10d, 0xacc0f0b0
or eax, r10d
imul eax, r9d
add eax, r8d
mov qword [rcx], rdx
cmp eax, 0x2b2b9d7c
jbe 0x14003f9a2
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x38], rax
jmp 0x14003f717
mov rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x30], rax
cmp rax, rcx
jge 0x14003f8f8
mov eax, dword [0x1402a9b08]
mov r8d, dword [0x1402a9b0c]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, r8d
and edx, ecx
mov r9d, r8d
xor r9d, 0xffffffff
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 edx, 0x630c6623
xor edx, 0x10df80fa
mov ecx, 0x975fbcb4
xor ecx, 0x68a0434b
xor edx, ecx
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, 0x73d3e6d9
add eax, edx
sub eax, ecx
mov ecx, 0xf303b58c
xor ecx, 0xceb3b68e
xor edx, edx
div ecx
sub eax, 0x1d3af6f3
cmp eax, 0x3e11af85
jb 0x14003f9ab
mov rcx, qword [rsp + 0x50]
mov eax, dword [0x1402a9b10]
mov r8d, dword [0x1402a9b14]
mov edx, eax
xor edx, r8d
xor edx, 0xffffffff
or eax, r8d
and eax, edx
xor edx, edx
sub edx, eax
mov eax, 0xa2c95cdb
xor eax, 0xa2c95cdb
mov r8d, 0x41324fc0
xor r8d, 0xe0c3191b
sub eax, r8d
add edx, eax
xor eax, eax
sub eax, edx
mov edx, 0xffffffff
xor edx, 0x32318058
add eax, edx
mov edx, 0xb1b7febf
xor edx, 0xb1b7febe
add eax, edx
mov r8d, 0x5be80195
xor r8d, 0x69c9109a
xor edx, edx
div r8d
mov edx, eax
mov rax, qword [rsp + 0x30]
mov dword [rsp + 0x28], edx
mov rcx, qword [rcx]
add rcx, 8
shl rax, 3
add rcx, rax
xor eax, eax
mov edx, eax
call fcn.1401983e1
mov rcx, qword [rsp + 0x70]
mov eax, dword [rsp + 0x28]
cmp byte [rcx], 0
sete cl
mov byte [rsp + 0x2f], cl
cmp eax, 0x82af7e4f
je 0x14003f7a9
mov al, byte [rsp + 0x2f]
test al, 1
jne 0x14003f869
jmp 0x14003f8f8
mov rcx, qword [rsp + 0x30]
xor eax, eax
mov edx, eax
sub rdx, 1
mov rax, rcx
sub rax, rdx
movabs r8, 0xb97fe016f901d11f
movabs rdx, 0x46801fe906fe2ee0
xor r8, rdx
mov rdx, rcx
xor rdx, r8
mov r8, rcx
xor r8, 0xffffffffffffffff
or rdx, r8
and rdx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
mov r8, 0xffffffffffffffff
and r8, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
and rcx, r8
movabs r8, 0x73a472a0e2295986
movabs r9, 0x8c5b8d5f1dd6a679
xor r8, r9
xor rcx, r8
and rdx, rcx
xor rdx, 0xffffffffffffffff
mov rcx, rax
and rcx, rdx
cmp rcx, 0
mov qword [rsp + 0x38], rax
jge 0x14003f717
call fcn.14000ee80
mov eax, dword [0x1402a9b18]
mov ecx, 0x1837f860
xor ecx, 0x6f629971
xor eax, ecx
xor edx, edx
div dword [0x1402a9b1c]
xor eax, 0x6950dfaa
imul eax, eax, 0x5e6cd912
imul eax, eax, 0x181b2dbf
mov ecx, 0xb0910ec0
xor ecx, 0x8ff18f79
cmp eax, ecx
jbe 0x14003f9b4
mov eax, dword [0x1402a9b20]
xor edx, edx
div dword [str.O_vp]
add eax, 0xab809fc4
sub eax, 0xdcea1083
sub eax, 0xab809fc4
sub eax, 0x9cbbfe2
mov ecx, 0x7163cc9f
xor ecx, 0xd9987cea
sub eax, ecx
add eax, 0x9cbbfe2
mov ecx, 0x1e6f41e8
xor ecx, 0x8b869de3
and ecx, eax
xor ecx, 0xffffffff
add eax, 0x95e9dc0b
add eax, 1
add eax, ecx
cmp eax, 0x83ffb195
jb 0x14003f9b4
add rsp, 0x80
pop rsi
ret
invalid
neg bl
xlatb
jmp 0x14003f653
cld
xor edx, 0xfdf5e9c1
invalid
xchg edx, eax
test byte [rdi + 0x30], ah
jmp 0x14003f937