Function at 0x140140980
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
lea r12, str.merge_ort.c
mov rax, qword [rcx]
mov r13, qword [rsp + 0xb0]
mov qword [rsp + 0x20], rax
mov rbx, rcx
mov rsi, rdx
mov rcx, r12
mov edx, 0x13f1
mov rdi, r8
mov rbp, r9
lea r8, [0x1401ef940]
lea r9, str.incore_nonrecursive
call fcn.14008f540
mov rax, qword [rbx]
mov edx, 0x13f3
mov rcx, r12
lea r9, str.merge_start
lea r8, [0x1401ef940]
mov qword [rsp + 0x20], rax
call fcn.14008f540
cmp qword [rbx + 8], 0
je 0x140140e43
mov rax, qword [r13 + 0x18]
test rax, rax
je 0x140140ab7
cmp qword [rax + 0x608], 0
mov r11, qword [r13 + 8]
mov rdx, qword [rax + 0x610]
je 0x140140b70
test rdx, rdx
je 0x140140e2d
mov r9, qword [rax + 0x618]
test r9, r9
je 0x140140e2d
movsxd rcx, dword [rsi + 0x24]
test ecx, ecx
je 0x140140b50
lea r8, [rcx + rcx*2]
lea r8, [rcx + r8*4]
mov rcx, qword [0x1402079b0]
lea rcx, [rcx + r8*8]
lea r15, [r9 + 4]
mov qword [rsp + 0x38], r15
lea r15, [rsi + 4]
mov qword [rsp + 0x30], r15
mov r15, qword [rcx + 0x10]
cmp r15, 0x20
je 0x140140ce8
mov rcx, qword [rsi + 4]
mov r8, qword [rsi + 0xc]
mov r10, rcx
mov r14, r8
xor r10, qword [r9 + 4]
xor r14, qword [r9 + 0xc]
or r10, r14
je 0x140140ba0
add rdx, 4
xor rcx, qword [rdx]
xor r8, qword [rdx + 8]
or rcx, r8
je 0x140140d10
mov dword [rax + 0x620], 0
mov rdx, r13
mov rcx, rbx
call fcn.140136470
mov rax, qword [rbx + 0x78]
mov rcx, r12
lea r9, str.merge_start
lea r8, [0x1401ef940]
mov edx, 0x13ff
mov qword [rax + 0x608], rsi
mov qword [rax + 0x610], rdi
mov qword [rax + 0x618], rbp
mov rax, qword [rbx]
mov qword [rsp + 0x20], rax
call fcn.14008f750
mov qword [rsp + 0x20], r13
mov r9, rbp
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.14013bdc0
mov rax, qword [rbx]
mov edx, 0x1402
mov rcx, r12
lea r9, str.incore_nonrecursive
lea r8, [0x1401ef940]
mov qword [rsp + 0xb0], rax
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.14008f750
mov rcx, qword [0x140207cf0]
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x100]
jmp 0x140140a5a
test rdx, rdx
jne 0x140140b83
cmp qword [rax + 0x618], 0
je 0x140140aad
mov r8d, 0x133e
mov rdx, r12
lea rcx, str._merge_trees_0____merge_trees_1____merge_trees_2_
call qword [sym.imp.msvcrt.dll__assert]
nop dword [rax]
mov r10, qword [rsp + 0x38]
mov r14, qword [rsp + 0x30]
mov r10d, dword [r10 + 0x10]
cmp dword [r14 + 0x10], r10d
jne 0x140140a99
movsxd rcx, dword [rdi + 0x24]
test ecx, ecx
jne 0x140140c20
mov rcx, qword [0x140207cf0]
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x100]
cmp qword [rcx + 0x10], 0x20
lea r9, [r11 + 4]
mov rcx, qword [rdi + 4]
lea r10, [rdi + 4]
je 0x140140d68
mov r8, qword [rdi + 0xc]
xor rcx, qword [r11 + 4]
xor r8, qword [r11 + 0xc]
or rcx, r8
je 0x140140d50
mov ecx, 1
xor ecx, 1
test ecx, ecx
je 0x140140c38
mov dword [rax + 0x620], 1
jmp 0x140140ab7
lea r8, [rcx + rcx*2]
lea r8, [rcx + r8*4]
mov rcx, qword [0x1402079b0]
lea rcx, [rcx + r8*8]
jmp 0x140140bd1
add rdx, 4
cmp r15, 0x20
jne 0x140140db8
mov r10, qword [rsi + 4]
mov r14, qword [rsi + 0xc]
xor r10, qword [rdx]
xor r14, qword [rdx + 8]
or r10, r14
jne 0x140140aad
mov r14, qword [rsp + 0x30]
mov rcx, qword [r14 + 0x10]
mov r8, qword [r14 + 0x18]
xor rcx, qword [rdx + 0x10]
xor r8, qword [rdx + 0x18]
or rcx, r8
jne 0x140140aad
movsxd rdx, dword [rbp + 0x24]
test edx, edx
jne 0x140140d30
mov rdx, qword [0x140207cf0]
mov rdx, qword [rdx]
mov rdx, qword [rdx + 0x100]
cmp qword [rdx + 0x10], 0x20
lea r8, [r11 + 4]
mov rdx, qword [rbp + 4]
lea r9, [rbp + 4]
je 0x140140dc8
mov rcx, qword [rbp + 0xc]
xor rdx, qword [r11 + 4]
xor rcx, qword [r11 + 0xc]
or rdx, rcx
je 0x140140da0
mov edx, 1
xor edx, 1
test edx, edx
je 0x140140aad
mov dword [rax + 0x620], 2
jmp 0x140140ab7
mov r10, qword [rsi + 4]
mov r14, qword [rsi + 0xc]
mov rcx, r10
mov r8, r14
xor rcx, qword [r9 + 4]
xor r8, qword [r9 + 0xc]
or rcx, r8
je 0x140140e00
add rdx, 4
jmp 0x140140c4e
mov rcx, qword [rsp + 0x30]
mov edx, dword [rdx + 0x10]
cmp dword [rcx + 0x10], edx
jne 0x140140aad
jmp 0x140140c7c
lea rcx, [rdx + rdx*2]
lea rcx, [rdx + rcx*4]
mov rdx, qword [0x1402079b0]
lea rdx, [rdx + rcx*8]
jmp 0x140140c99
mov ecx, dword [r9 + 0x10]
cmp dword [r10 + 0x10], ecx
jne 0x140140bfd
xor ecx, ecx
jmp 0x140140c02
mov r8, qword [rdi + 0xc]
xor rcx, qword [r11 + 4]
xor r8, qword [r11 + 0xc]
or rcx, r8
jne 0x140140bfd
mov rcx, qword [r10 + 0x10]
mov r8, qword [r10 + 0x18]
xor rcx, qword [r9 + 0x10]
xor r8, qword [r9 + 0x18]
or rcx, r8
jne 0x140140bfd
xor ecx, ecx
jmp 0x140140c02
mov edx, dword [r8 + 0x10]
cmp dword [r9 + 0x10], edx
jne 0x140140cc5
xor edx, edx
jmp 0x140140cca
mov rcx, qword [rsi + 4]
mov r8, qword [rsi + 0xc]
jmp 0x140140a9d
mov rcx, qword [rbp + 0xc]
xor rdx, qword [r11 + 4]
xor rcx, qword [r11 + 0xc]
or rdx, rcx
jne 0x140140cc5
mov rdx, qword [r9 + 0x10]
mov rcx, qword [r9 + 0x18]
xor rdx, qword [r8 + 0x10]
xor rcx, qword [r8 + 0x18]
or rdx, rcx
jne 0x140140cc5
xor edx, edx
jmp 0x140140cca
mov r9, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
mov rcx, qword [r9 + 0x10]
xor rcx, qword [r8 + 0x10]
mov r8, qword [r9 + 0x18]
mov r9, qword [rsp + 0x38]
xor r8, qword [r9 + 0x18]
or rcx, r8
jne 0x140140d07
jmp 0x140140bb8
mov r8d, 0x1348
mov rdx, r12
lea rcx, str.merge_trees_0___merge_trees_1___merge_trees_2_
call qword [sym.imp.msvcrt.dll__assert]
mov r8d, 0x13f4
mov rdx, r12
lea rcx, [0x1401f163f]
call qword [sym.imp.msvcrt.dll__assert]
nop
nop word [rax + rax]