Function at 0x42f690
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, 0x58
mov rax, qword [0x005ab240]
mov ebx, dword [rcx + 0x48]
mov rax, qword [rax]
mov rbp, qword [rcx + 0x38]
mov rax, qword [rax + 0xc8]
mov rdi, rcx
lea ecx, [rbx + 1]
mov rsi, qword [rax + 0x10]
shl rcx, 4
call fcn.004996e0
cmp dword [rdi + 0x58], 1
lea r9, [rbp + 0x400]
mov qword [rsp + 0x30], rax
mov qword [rdi + 0x98], rax
jle 0x42f748
mov eax, dword [rdi + 0x48]
lea edx, [rsi + 4]
imul edx, eax
lea r10, [r9 + rdx + 8]
lea r9, [r10 + rax*4]
test ebx, ebx
je 0x42f780
mov rcx, qword [rsp + 0x30]
lea r11d, [rbx - 1]
xor edx, edx
jmp 0x42f729
mov eax, eax
mov qword [rcx], rax
mov dword [rcx + 8], r8d
lea rax, [rdx + 1]
add rcx, 0x10
cmp r11, rdx
je 0x42f780
mov rdx, rax
mov eax, dword [r10 + rdx*4]
mov r8d, edx
bswap eax
test eax, eax
jns 0x42f710
mov rax, qword [r9]
add r9, 8
bswap rax
mov qword [rcx], rax
jmp 0x42f715
test ebx, ebx
je 0x42f780
mov rcx, qword [rsp + 0x30]
lea r10d, [rsi + 4]
xor r8d, r8d
xor edx, edx
nop word [rax + rax]
mov eax, r8d
add rcx, 0x10
add r8d, r10d
mov eax, dword [r9 + rax]
mov dword [rcx - 8], edx
add edx, 1
bswap eax
mov eax, eax
mov qword [rcx - 0x10], rax
cmp ebx, edx
jne 0x42f760
mov rbp, qword [rdi + 0x30]
mov rax, qword [rsp + 0x30]
mov edi, ebx
mov esi, esi
mov qword [rsp + 0x40], rdi
shl rdi, 4
mov ecx, 0x40000
mov rdx, rbp
add rax, rdi
mov qword [rsp + 0x48], rdi
sub rdx, rsi
mov dword [rax + 8], 0xffffffff
mov qword [rax], rdx
call fcn.004996e0
mov rcx, rdi
mov r12, rax
call fcn.004996e0
mov qword [rsp + 0x38], rax
test rbp, rbp
je 0x42f907
lea edi, [rbx - 1]
lea rax, [r12 + 4]
mov r14, qword [rsp + 0x38]
xor r15d, r15d
mov rsi, rdi
add rdi, 1
mov qword [rsp + 0x28], rax
mov r9, r12
lea rax, [r12 + 0x3fffc]
shl rdi, 4
mov r13, qword [rsp + 0x30]
mov r12, rdi
mov rdi, r14
mov r14d, r15d
mov r15, rax
nop dword [rax]
mov rcx, r9
mov r8d, 0x40000
xor edx, edx
call sub.msvcrt.dll_memset
mov r9, rax
test ebx, ebx
je 0x42f930
mov rdx, r13
lea r8, [r12 + r13]
mov ecx, r14d
nop dword [rax]
mov rax, qword [rdx]
add rdx, 0x10
sar rax, cl
movzx eax, ax
add dword [r9 + rax*4], 1
cmp r8, rdx
jne 0x42f838
mov edx, dword [r9]
mov r14d, ecx
mov rax, qword [rsp + 0x28]
nop word [rax + rax]
add edx, dword [rax]
mov dword [rax], edx
cmp rax, r15
jne 0x42f8d0
mov r8d, esi
cmp esi, 0xffffffff
je 0x42f8af
nop dword [rax]
mov edx, r8d
mov ecx, r14d
sub r8d, 1
shl rdx, 4
add rdx, r13
mov rax, qword [rdx]
sar rax, cl
movzx eax, ax
lea rcx, [r9 + rax*4]
mov eax, dword [rcx]
sub eax, 1
mov dword [rcx], eax
movdqu xmm0, xmmword [rdx]
shl rax, 4
movups xmmword [rdi + rax], xmm0
cmp r8d, 0xffffffff
jne 0x42f878
add r14d, 0x10
mov rax, rbp
mov ecx, r14d
sar rax, cl
test rax, rax
je 0x42f8e0
mov rax, r13
mov r13, rdi
mov rdi, rax
jmp 0x42f810
add rax, 4
jmp 0x42f860
cmp qword [rsp + 0x40], 0
mov r12, r9
je 0x42f907
mov rax, qword [rsp + 0x30]
cmp rax, rdi
je 0x42f907
mov r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x38]
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0x38]
call fcn.004c9260
mov rcx, r12
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.004c9260
xor edx, edx
jmp 0x42f855