Function at 0x140025820
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x58
mov qword [rsp + 0x40], rcx
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x48], rax
mov rax, qword [rax + 0x40]
mov qword [rsp + 0x50], rax
cmp rax, 0
je 0x140025866
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
call rax
test al, 1
jne 0x140025866
jmp 0x140025a35
mov rax, qword [0x1402d1088]
mov qword [rsp + 0x38], rax
cmp rax, 0
je 0x140025895
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
call rax
test al, 1
jne 0x140025895
jmp 0x140025a35
mov eax, dword [0x1402a8fa8]
mov ecx, 0xee1d2619
xor ecx, 0xa8f89384
xor eax, ecx
mov ecx, dword [0x1402a8fac]
xor ecx, 0x3699e502
or eax, ecx
imul eax, eax, 0xfaa8bf37
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0x3a3fddae
xor edx, 0xc5c02251
xor eax, edx
or ecx, eax
mov eax, 0xb28564f8
and eax, 0xb28564f8
xor eax, 0xffffffff
and ecx, eax
xor ecx, 0xffffffff
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
and eax, edx
mov edx, 0x3a38cff2
xor edx, 0x597c1ff6
mov r8d, 0xcfcfafb8
xor r8d, 0xac8b7fbc
or edx, r8d
xor edx, 0xffffffff
or eax, edx
xor eax, 0xffffffff
or ecx, 0x6344d004
xor ecx, 0xffffffff
mov edx, 0x6171e67b
xor edx, 0x9e8e1984
xor eax, edx
xor ecx, 0xffffffff
and eax, ecx
cmp eax, 0xe2e5ee09
jae 0x140025a3a
mov r11d, dword [0x1402a8fb0]
xor r11d, 0x91fc8e79
imul r11d, dword [0x1402a8fb4]
mov eax, 0x7e69ae0a
xor eax, 0x64318c09
imul r11d, eax
mov eax, 0x809f580
xor eax, 0xf7f60a7f
mov ecx, r11d
xor ecx, eax
mov r8d, 0xffffffff
xor r8d, 0xbdc97e4
mov edx, 0xffffffff
xor edx, 0x2c4369f4
mov r9d, 0xa24d1a43
xor r9d, 0x8e0e73b7
mov eax, ecx
and eax, r9d
and r11d, edx
mov r10d, 0xa4d5e97a
xor r10d, 0x8896808e
mov r9d, r8d
and r9d, r10d
mov r10d, edx
and r10d, 0xbdc97e4
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, r8d
xor ecx, 0xffffffff
or edx, 0x2c4369f4
and ecx, edx
or eax, ecx
mov ecx, 0x53c82f2d
xor edx, edx
div ecx
mov dword [rsp + 0x34], eax
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0x40]
add rcx, 0x38
mov rdx, rax
add rdx, 0x10
mov qword [rsp + 0x28], rdx
mov rdx, qword [rax + 0x10]
xor eax, eax
mov r8b, al
call fcn.140024f90
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x40]
call fcn.1400255e0
mov rcx, qword [rsp + 0x48]
mov eax, dword [rsp + 0x34]
mov byte [rcx + 0x60], 1
cmp eax, 0x6837bdf8
je 0x140025a3a
jmp 0x140025a35
add rsp, 0x58
ret
and byte [rdi], 0x48
jmp 0x140025937
push rbp
sub rsp, 0x40
lea rbp, [rsp + 0x40]
mov qword [rbp - 0x38], r9
mov qword [rbp - 0x30], r8
mov qword [rbp - 0x28], rdx
mov qword [rbp - 0x20], rcx
mov rax, qword [rbp + 0x30]
mov qword [rbp - 0x18], rax
mov eax, 0x20
call fcn.1402a7dd0
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x10], rax
mov rax, rcx
add rax, 0x10
mov qword [rbp - 8], rax
cmp qword [rcx + 0x10], 0
jne 0x140025a9a
mov rax, qword [rbp - 8]
mov rcx, qword [rbp - 0x28]
mov qword [rax], rcx
mov rdx, qword [rbp - 0x38]
mov rax, qword [rbp - 0x30]
test rax, rax
setne al
sete cl
test rdx, rdx
setne dl
or cl, dl
add al, cl
inc al
test al, 1
jne 0x140025ac4
jmp 0x140025af4
mov rdx, qword [rbp - 0x10]
mov rax, qword [rbp - 0x38]
mov r8, qword [rbp - 0x18]
mov r9, qword [rbp - 0x30]
mov rcx, qword [rbp - 0x20]
add rcx, 0x28
mov qword [rdx], r9
mov qword [rdx + 8], r8
mov qword [rdx + 0x10], rax
sub rsp, 0x20
call fcn.140024be0
add rsp, 0x20
mov rcx, qword [rbp - 0x20]
mov rsp, rbp
pop rbp
jmp 0x140025820