Function at 0x1400398c0
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x88
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x68], rcx
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
add rax, 0x60
mov qword [rsp + 0x78], rax
mov rax, qword [rcx]
mov qword [rsp + 0x80], rax
cmp rax, rdx
jle 0x140039918
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
call fcn.1400395f0
jmp 0x140039de2
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x70]
cmp rax, rcx
jge 0x140039de2
mov rax, qword [rsp + 0x68]
mov rcx, rax
add rcx, 8
mov qword [rsp + 0x58], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0x60], rax
cmp rax, 0
je 0x1400399a2
mov rcx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x60]
mov rax, qword [rax]
movabs r8, 0xbfffffffffffffff
mov rdx, rax
xor rdx, r8
movabs r8, 0x80297550c3bf0a6c
movabs r9, 0x7fd68aaf3c40f593
xor r8, r9
xor rdx, r8
movabs r8, 0xbfffffffffffffff
or rax, r8
and rax, rdx
cmp rax, rcx
jge 0x140039a33
mov rcx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x70]
mov rax, r8
not rax
and rax, rcx
mov r9, rcx
not r9
mov rdx, r8
and rdx, r9
sub rdx, rax
mov qword [rsp + 0x50], rdx
mov rax, rdx
xor rax, r8
xor rdx, rcx
mov rcx, rax
and rcx, rdx
test rax, rax
sets al
test rcx, rcx
setns cl
add al, cl
inc al
test al, 1
jne 0x140039a29
mov r8, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x80]
mov r9d, 8
mov qword [rsp + 0x20], 8
call fcn.140023a90
mov rcx, rax
mov rax, qword [rsp + 0x58]
mov qword [rax], rcx
jmp 0x140039a33
call fcn.14000ee80
jmp 0x140039de2
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
mov qword [rcx], rdx
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x40], rax
mov eax, dword [0x1402a9828]
mov ecx, 0xdbb5d7ef
xor ecx, 0x8770448
xor eax, ecx
mov edx, dword [0x1402a982c]
xor edx, 0xd8e6f461
mov ecx, eax
and ecx, edx
shl ecx, 1
xor eax, edx
add eax, ecx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xbb2ca791
mov ecx, 0xffffffff
xor ecx, 0x3469029f
or eax, edx
or ecx, 0x3469029f
xor eax, 0xffffffff
and eax, ecx
mov ecx, 0x6126f207
xor ecx, 0xa16f655b
add eax, ecx
add eax, 0xe88a4e9a
sub eax, 0xc049975c
mov ecx, eax
and ecx, 0x25893ad5
xor ecx, 0xffffffff
add eax, 0x25893ad5
add eax, 1
add eax, ecx
cmp eax, 0x21141b51
jbe 0x140039deb
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x70]
mov eax, dword [0x1402a9830]
or eax, dword [0x1402a9834]
mov r9d, 0x675ec7ab
xor r9d, 0x5ef6d729
mov r8d, eax
and r8d, r9d
shl r8d, 1
xor eax, 0x39a81082
add eax, r8d
mov r9d, eax
xor r9d, 0xffffffff
and r9d, 0xbc2e4c59
mov r10d, 0xffffffff
xor r10d, 0xbc2e4c59
mov r8d, eax
and r8d, r10d
imul r8d, r9d
mov r9d, eax
and r9d, 0xbc2e4c59
mov r10d, 0x8af92c44
xor r10d, 0x36d7601d
or eax, r10d
imul eax, r9d
add eax, r8d
mov r8d, 0xf2140125
xor r8d, 0x80274bef
imul eax, r8d
cmp rcx, rdx
setl cl
mov byte [rsp + 0x3f], cl
cmp eax, 0xceda78fa
ja 0x140039ade
mov al, byte [rsp + 0x3f]
test al, 1
jne 0x140039b90
jmp 0x140039de2
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x58]
mov rcx, qword [rcx]
add rcx, 8
shl rax, 3
add rcx, rax
xor eax, eax
mov edx, eax
call fcn.1401270c0
mov rax, qword [rsp + 0x78]
cmp byte [rax], 0
jne 0x140039de2
mov r8d, dword [0x1402a9838]
or r8d, dword [0x1402a983c]
mov eax, r8d
xor eax, 0xffffffff
and eax, 0x569fee3
mov edx, 0xffffffff
xor edx, 0x569fee3
and r8d, edx
mov ecx, 0xffffffff
xor ecx, 0x8e55b2e8
mov r9d, 0x1ad7ba08
xor r9d, 0x1fbe44eb
and ecx, r9d
and edx, 0x8e55b2e8
or eax, r8d
or ecx, edx
xor eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0x6ef19fc9
xor edx, 0x4fddf1e9
and edx, ecx
mov r8d, 0x507521b4
xor r8d, 0x71594f94
mov ecx, 0xad955993
xor ecx, 0x526aa66c
xor r8d, ecx
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov r8d, 0x5a09f35e
xor r8d, 0x7b259d7e
mov edx, eax
and edx, r8d
mov r8d, 0x4dc56c6e
xor r8d, 0x6ce9024e
or eax, r8d
imul eax, edx
add eax, ecx
sub eax, 0xa105b198
add eax, 0x7d1a1470
add eax, 0xa105b198
cmp eax, 0xfa9d0e85
jae 0x140039df4
mov eax, dword [0x1402a9840]
mov ecx, dword [0x1402a9844]
mov edx, 0x18f11504
xor edx, 0xc05e9066
xor ecx, edx
mov r11d, eax
and r11d, ecx
mov edx, 0x4ade47
xor edx, 0xffb521b8
xor r11d, edx
and eax, ecx
mov ecx, 0x75417e59
xor ecx, 0x8abe81a6
xor eax, ecx
mov ecx, 0x30bb3439
xor ecx, 0xcf44cbc6
xor r11d, ecx
xor eax, 0xffffffff
or r11d, eax
mov eax, 0xffffffff
xor eax, 0x6985dd2c
add r11d, eax
mov eax, 0xccf543d1
xor eax, 0xccf543d0
add r11d, eax
mov eax, 0xd21d3177
xor eax, 0x2de2ce88
mov ecx, r11d
xor ecx, eax
mov edx, 0xffffffff
xor edx, 0xca688479
mov r8d, 0xffffffff
xor r8d, 0xbfc3a68e
mov eax, ecx
and eax, 0xbfc3a68e
and r11d, r8d
mov r9d, edx
and r9d, 0xbfc3a68e
mov r10d, r8d
and r10d, 0xca688479
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, edx
mov edx, 0x7bf07ac0
xor edx, 0x840f853f
xor ecx, edx
mov edx, 0x730a590
xor edx, 0xb8f3031e
or edx, r8d
and ecx, edx
or eax, ecx
mov ecx, 0x7a4ae381
xor edx, edx
div ecx
mov rdx, qword [rsp + 0x40]
mov rcx, rdx
add rcx, 1
mov qword [rsp + 0x30], rcx
mov r9, rdx
xor r9, 0xffffffffffffffff
xor r9, 0xffffffffffffffff
and r9, 0xffffffffffffffff
movabs r8, 0x58d3a25f9be9d66f
movabs r10, 0x58d3a25f9be9d66d
xor r8, r10
imul r8, r9
sub r8, 0xffffffffffffffff
sub rdx, r8
and rcx, rdx
cmp rcx, 0
setl cl
mov byte [rsp + 0x3e], cl
cmp eax, 0xd3c5d296
ja 0x140039df4
mov rax, qword [rsp + 0x30]
mov cl, byte [rsp + 0x3e]
test cl, 1
mov qword [rsp + 0x48], rax
jne 0x140039ddd
jmp 0x140039a4d
call fcn.14000ee80
nop
add rsp, 0x88
ret
wait
mov ebx, 0xeae97f54
cld
invalid
jge 0x140039e25
mov esi, 0xfe87e9a9
invalid
cli
mov ecx, eax
xor ecx, edx
mov edx, r8d
and edx, ecx
mov ecx, 0xa5cc1dfe
xor ecx, 0x5a33e201
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 edx, eax
xor edx, 0xffffffff
and edx, 0x67b231ac
mov r8d, 0xffffffff
xor r8d, 0x67b231ac
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x67b231ac
or eax, 0x67b231ac
imul eax, edx
add eax, ecx
mov ecx, 0x9ff15d07
xor edx, edx
div ecx
and eax, 0x71155036
cmp eax, 0xdc81b52
jae 0x140039f1b
mov rcx, qword [rsp + 0x30]
mov eax, dword [0x1402a9850]
mov edx, dword [0x1402a9854]
mov r8d, 0x17638aee
xor r8d, 0xe8b8eed1
xor edx, r8d
and eax, edx
and eax, 0x44e76a50
mov r8d, 0x1e2ddc45
xor edx, edx
div r8d
sub eax, 0x672fc1ae
mov dword [rsp + 0x24], eax
movabs rdx, 0xbbe783974f3b467f
movabs rax, 0xbbe783974f3b467f
xor rdx, rax
call fcn.1400395f0
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
call fcn.1400398c0
mov eax, dword [rsp + 0x24]
cmp eax, 0xdafc3d91
jae 0x140039ea0
add rsp, 0x38
ret
fsub dword [rdi]
mov al, 0xe9
jl 0x140039f21
invalid
invalid