Function at 0x14003df50
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x78
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x58], rcx
mov ecx, dword [0x1402d10b0]
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 0x14003dfa2
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
call fcn.14003dab0
jmp 0x14003e2ab
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x60]
cmp rax, rcx
jge 0x14003e2ab
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 0x14003e035
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x50]
mov rdx, qword [rax]
movabs r8, 0xbfffffffffffffff
mov rax, rdx
and rax, r8
xor rax, 0xffffffffffffffff
movabs r8, 0xbfffffffffffffff
and rdx, r8
movabs r8, 0x30c3f29434544bef
movabs r9, 0xcf3c0d6bcbabb410
xor r8, r9
xor rdx, r8
xor rax, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
or rax, rdx
cmp rax, rcx
jge 0x14003e16b
mov rdx, qword [rsp + 0x70]
mov r9, qword [rsp + 0x60]
mov rax, r9
sub rax, rdx
mov qword [rsp + 0x40], rax
mov r8, rax
and r8, r9
shl r8, 1
mov rcx, rax
add rcx, r9
sub rcx, r8
cmp rcx, 0
setl cl
xor rax, rdx
cmp rax, 0xffffffffffffffff
setg dl
xor eax, eax
mov r8b, al
xor r8b, 1
mov al, cl
xor al, r8b
mov r8b, dl
xor r8b, 0xff
or al, r8b
and cl, dl
xor cl, 0xff
xor al, 0xff
xor cl, 0xff
or al, cl
test al, 1
jne 0x14003e0cd
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.140023a90
mov rcx, rax
mov rax, qword [rsp + 0x48]
mov qword [rax], rcx
jmp 0x14003e16b
mov eax, dword [str.Zy]
mov ecx, dword [0x1402a9a4c]
mov edx, 0xec072346
xor edx, 0x1a66ebc7
xor ecx, edx
and eax, ecx
mov ecx, 0xc19a791a
xor edx, edx
div ecx
mov ecx, 0xc09c9883
xor ecx, 0x1eb6ebc5
or eax, ecx
mov ecx, 0x7624865b
xor ecx, 0xb09bb927
and eax, ecx
cmp eax, 0xa7024faf
je 0x14003e2b1
mov eax, dword [0x1402a9a50]
sub eax, dword [0x1402a9a54]
or eax, 0xd3490a20
mov ecx, 0x865d7a5a
xor edx, edx
div ecx
mov ecx, 0x3354f05b
xor ecx, 0x150ed130
xor edx, edx
div ecx
mov dword [rsp + 0x3c], eax
mov eax, 0x5712d6
xor eax, 0x49528b6f
mov dword [rsp + 0x38], eax
call fcn.14000ee80
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x3c]
cmp eax, ecx
ja 0x14003e2b1
jmp 0x14003e2ab
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov qword [rcx], rdx
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x28], rax
cmp rax, rcx
jge 0x14003e2ab
mov rax, qword [rsp + 0x28]
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.1400af5e0
mov rax, qword [rsp + 0x68]
cmp byte [rax], 0
jne 0x14003e2ab
mov r9, qword [rsp + 0x28]
mov rax, r9
add rax, 1
movabs rdx, 0x3b93a2d2bc78a179
movabs rcx, 0xc46c5d2d43875e86
xor rdx, rcx
mov rcx, r9
xor rcx, rdx
movabs rdx, 0x605174885ecd1f9a
movabs r8, 0x3244b9ba4994385a
xor rdx, r8
and rdx, rcx
mov r10, 0xffffffffffffffff
movabs rcx, 0x5215cd32175927c0
xor r10, rcx
and r9, r10
movabs rcx, 0xe6f6535cfc901dd9
movabs r8, 0x1909aca3036fe226
xor rcx, r8
movabs r8, 0xfc3861868b80fdb2
movabs r11, 0x3c79e79747f024d
xor r8, r11
xor rcx, r8
movabs r8, 0xfd31ffdb2ea797a1
movabs r11, 0xaf2432e939feb061
xor r8, r11
and rcx, r8
movabs r8, 0x8c529e224d269fa
movabs r11, 0xf73ad61ddb2d9605
xor r8, r11
and r8, r10
or rdx, r9
or rcx, r8
xor rdx, rcx
mov rcx, rax
and rcx, rdx
cmp rcx, 0
mov qword [rsp + 0x30], rax
jge 0x14003e182
call fcn.14000ee80
nop
add rsp, 0x78
ret
jl 0x14003e2e2
ror cl, 1
jmp 0x14003e116
invalid