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

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x40
mov rsi, rcx
mov rbx, rdx
test rcx, rcx
je 0x1400c5910
test r8, r8
je 0x1400c56f8
lea rax, str.length__0__data___NULL
test rdx, rdx
jne 0x1400c56f8
mov qword [rsp + 0x20], rax
lea r9, str.g_checksum_update
lea r8, [0x14038d1e0]
mov edx, 8
lea rcx, [0x14038d1fa]
call fcn.1400d2190
nop
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
test r8, r8
js 0x1400c58a0
mov r9, qword [rsi + 8]
test r9, r9
jne 0x1400c58b8
mov eax, dword [rsi]
cmp eax, 2
je 0x1400c5a48
ja 0x1400c58e0
test eax, eax
je 0x1400c5920
mov eax, dword [rsi + 0x24]
lea edx, [r8*8]
xor ecx, ecx
mov r12, r8
lea rbp, [rsi + 0x10]
lea r14, [rsi + 0x2c]
add edx, eax
setb cl
mov dword [rsi + 0x24], edx
mov edx, dword [rsi + 0x28]
cmp ecx, 1
mov rcx, r8
sbb edx, 0xffffffff
shr rcx, 0x1d
add edx, ecx
shr eax, 3
mov dword [rsi + 0x28], edx
and eax, 0x3f
je 0x1400c57de
mov edx, 0x40
mov ecx, eax
sub edx, eax
add rcx, r14
mov r13d, edx
cmp r8, r13
jb 0x1400c5b09
cmp edx, 8
jae 0x1400c5b48
test dl, 4
jne 0x1400c5bfd
test edx, edx
je 0x1400c57a0
movzx eax, byte [rbx]
and edx, 2
mov byte [rcx], al
jne 0x1400c5c1f
lea rdi, [rsi + 0x6c]
mov rdx, r14
nop word [rax + rax]
mov eax, dword [rdx]
add rdx, 4
bswap eax
mov dword [rdx - 4], eax
cmp rdi, rdx
jne 0x1400c57b0
mov rdx, r14
mov rcx, rbp
mov qword [rsp + 0x38], r8
add rbx, r13
call fcn.1400bad70
mov r8, qword [rsp + 0x38]
sub r8, r13
mov r12, r8
cmp r12, 0x3f
jbe 0x1400c5bdc
lea rax, [r12 - 0x40]
lea rdi, [rsi + 0x6c]
and rax, 0xffffffffffffffc0
lea r13, [rbx + rax + 0x40]
nop word [rax + rax]
movdqu xmm4, xmmword [rbx]
mov rdx, r14
movups xmmword [r14], xmm4
movdqu xmm5, xmmword [rbx + 0x10]
movups xmmword [r14 + 0x10], xmm5
movdqu xmm0, xmmword [rbx + 0x20]
movups xmmword [r14 + 0x20], xmm0
movdqu xmm1, xmmword [rbx + 0x30]
movups xmmword [r14 + 0x30], xmm1
nop dword [rax]
mov eax, dword [rdx]
add rdx, 4
bswap eax
mov dword [rdx - 4], eax
cmp rdx, rdi
jne 0x1400c5830
mov rdx, r14
mov rcx, rbp
add rbx, 0x40
call fcn.1400bad70
cmp rbx, r13
jne 0x1400c5800
and r12d, 0x3f
mov eax, r12d
cmp r12d, 8
jae 0x1400c5aba
and r12d, 4
jne 0x1400c5b1f
test eax, eax
je 0x1400c56e3
movzx edx, byte [r13]
mov byte [rsi + 0x2c], dl
test al, 2
je 0x1400c56e3
movzx edx, word [r13 + rax - 2]
mov word [r14 + rax - 2], dx
jmp 0x1400c56e3
mov rcx, rbx
call sub.msvcrt.dll_strlen
mov r9, qword [rsi + 8]
mov r8, rax
test r9, r9
je 0x1400c570e
lea r8, str.The_checksum__s_has_been_closed_and_cannot_be_updated_anymore.
mov edx, 0x10
lea rcx, [0x14038d1fa]
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
jmp fcn.1400d2190
sub eax, 3
cmp eax, 1
ja 0x1400c5c30
test r8, r8
je 0x1400c56e3
lea rcx, [rsi + 0x10]
mov rdx, rbx
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
jmp fcn.1400c27f0
lea rax, str.checksum___NULL
jmp 0x1400c56be
mov eax, dword [rsi + 0x20]
lea edx, [r8*8]
xor ecx, ecx
mov r12, r8
lea r13, [rsi + 0x10]
lea rdi, [rsi + 0x28]
add edx, eax
setb cl
mov dword [rsi + 0x20], edx
mov edx, dword [rsi + 0x24]
cmp ecx, 1
mov rcx, r8
sbb edx, 0xffffffff
shr rcx, 0x1d
add edx, ecx
shr eax, 3
mov dword [rsi + 0x24], edx
and eax, 0x3f
je 0x1400c59b6
mov edx, 0x40
mov ecx, eax
sub edx, eax
add rcx, rdi
mov ebp, edx
cmp r8, rbp
jb 0x1400c5b09
cmp edx, 8
jae 0x1400c5b92
test dl, 4
jne 0x1400c5bec
test edx, edx
je 0x1400c5998
movzx eax, byte [rbx]
and edx, 2
mov byte [rcx], al
jne 0x1400c5c10
mov rdx, rdi
mov rcx, r13
mov qword [rsp + 0x38], r8
add rbx, rbp
call fcn.1400ba430
mov r8, qword [rsp + 0x38]
sub r8, rbp
mov r12, r8
cmp r12, 0x3f
jbe 0x1400c5be4
lea rax, [r12 - 0x40]
and rax, 0xffffffffffffffc0
lea rbp, [rbx + rax + 0x40]
nop
movdqu xmm0, xmmword [rbx]
mov rdx, rdi
mov rcx, r13
add rbx, 0x40
movups xmmword [rdi], xmm0
movdqu xmm1, xmmword [rbx - 0x30]
movups xmmword [rdi + 0x10], xmm1
movdqu xmm2, xmmword [rbx - 0x20]
movups xmmword [rdi + 0x20], xmm2
movdqu xmm3, xmmword [rbx - 0x10]
movups xmmword [rdi + 0x30], xmm3
call fcn.1400ba430
cmp rbp, rbx
jne 0x1400c59d0
and r12d, 0x3f
mov eax, r12d
cmp r12d, 8
jae 0x1400c5a6b
and r12d, 4
jne 0x1400c5b35
test eax, eax
je 0x1400c56e3
movzx edx, byte [rbp]
mov byte [rsi + 0x28], dl
test al, 2
je 0x1400c56e3
movzx edx, word [rbp + rax - 2]
mov word [rdi + rax - 2], dx
jmp 0x1400c56e3
test r8, r8
je 0x1400c56e3
lea rcx, [rsi + 0x10]
mov rdx, rbx
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
jmp fcn.1400c25c0
mov rax, qword [rbp]
lea r8, [rdi + 8]
and r8, 0xfffffffffffffff8
mov qword [rsi + 0x28], rax
mov eax, r12d
mov rdx, qword [rbp + rax - 8]
mov qword [rdi + rax - 8], rdx
sub rdi, r8
lea eax, [r12 + rdi]
sub rbp, rdi
and eax, 0xfffffff8
cmp eax, 8
jb 0x1400c56e3
and eax, 0xfffffff8
xor edx, edx
mov ecx, edx
add edx, 8
mov r9, qword [rbp + rcx]
mov qword [r8 + rcx], r9
cmp edx, eax
jb 0x1400c5aa3
jmp 0x1400c56e3
mov rax, qword [r13]
lea r8, [r14 + 8]
and r8, 0xfffffffffffffff8
mov qword [rsi + 0x2c], rax
mov eax, r12d
mov rdx, qword [r13 + rax - 8]
mov qword [r14 + rax - 8], rdx
sub r14, r8
lea eax, [r12 + r14]
sub r13, r14
and eax, 0xfffffff8
cmp eax, 8
jb 0x1400c56e3
and eax, 0xfffffff8
xor edx, edx
mov ecx, edx
add edx, 8
mov r9, qword [r13 + rcx]
mov qword [r8 + rcx], r9
cmp edx, eax
jb 0x1400c5af2
jmp 0x1400c56e3
mov rdx, rbx
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
jmp sub.msvcrt.dll_memcpy
mov edx, dword [r13]
mov dword [rsi + 0x2c], edx
mov edx, dword [r13 + rax - 4]
mov dword [r14 + rax - 4], edx
jmp 0x1400c56e3
mov edx, dword [rbp]
mov dword [rsi + 0x28], edx
mov edx, dword [rbp + rax - 4]
mov dword [rdi + rax - 4], edx
jmp 0x1400c56e3
mov rax, qword [rbx]
lea r9, [rcx + 8]
mov r11, rbx
and r9, 0xfffffffffffffff8
mov qword [rcx], rax
mov rax, qword [rbx + r13 - 8]
mov qword [rcx + r13 - 8], rax
sub rcx, r9
add edx, ecx
sub r11, rcx
and edx, 0xfffffff8
cmp edx, 8
jb 0x1400c57a0
and edx, 0xfffffff8
xor eax, eax
mov ecx, eax
add eax, 8
mov r10, qword [r11 + rcx]
mov qword [r9 + rcx], r10
cmp eax, edx
jb 0x1400c5b7c
jmp 0x1400c57a0
mov rax, qword [rbx]
lea r9, [rcx + 8]
mov r11, rbx
and r9, 0xfffffffffffffff8
mov qword [rcx], rax
mov rax, qword [rbx + rbp - 8]
mov qword [rcx + rbp - 8], rax
sub rcx, r9
add edx, ecx
sub r11, rcx
and edx, 0xfffffff8
cmp edx, 8
jb 0x1400c5998
and edx, 0xfffffff8
xor eax, eax
mov ecx, eax
add eax, 8
mov r10, qword [r11 + rcx]
mov qword [r9 + rcx], r10
cmp eax, edx
jb 0x1400c5bc6
jmp 0x1400c5998
mov r13, rbx
jmp 0x1400c5858
mov rbp, rbx
jmp 0x1400c5a0a
mov eax, dword [rbx]
mov dword [rcx], eax
mov eax, dword [rbx + rbp - 4]
mov dword [rcx + rbp - 4], eax
jmp 0x1400c5998
mov eax, dword [rbx]
mov dword [rcx], eax
mov eax, dword [rbx + r13 - 4]
mov dword [rcx + r13 - 4], eax
jmp 0x1400c57a0
movzx eax, word [rbx + rbp - 2]
mov word [rcx + rbp - 2], ax
jmp 0x1400c5998
movzx eax, word [rbx + r13 - 2]
mov word [rcx + r13 - 2], ax
jmp 0x1400c57a0
xor eax, eax
lea r9, str.g_checksum_update
mov r8d, 0x654
mov qword [rsp + 0x20], rax
lea rdx, str..._glib_gchecksum.c
lea rcx, [0x14038d1fa]
call fcn.1400e7f70
nop
nop dword [rax + rax]