Function at 0x1400375b0
Capabilities:
Encode data using xor
Get thread local storage value

Disassembly:
sub rsp, 0x88
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x68], rax
add rax, 0x60
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x80], 0
xor eax, eax
mov ecx, eax
call fcn.140093eeb
mov rcx, qword [rsp + 0x68]
xor eax, eax
cmp byte [rcx + 0x60], 0
mov rcx, rax
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], rax
jne 0x140037684
mov ecx, 0x70
mov edx, 8
call fcn.140025b10
mov qword [rsp + 0x80], rax
mov rcx, qword [0x1402c5e08]
mov qword [rax], rcx
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x80]
call fcn.1400941f0
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x50]
mov dl, byte [rcx]
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x58], rcx
cmp dl, 0
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], rax
jne 0x140037684
mov rcx, qword [rsp + 0x58]
call fcn.140093eeb
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x48], rax
jmp 0x1400377a0
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x40], rax
mov eax, dword [0x1402a9728]
xor edx, edx
div dword [0x1402a972c]
add eax, 0xd91c477c
mov ecx, 0x1c70eb1f
xor edx, edx
div ecx
xor ecx, ecx
sub ecx, eax
mov eax, 0xdf122bdf
xor eax, 0xdf122bdf
mov edx, 0xc8325aa3
xor edx, 0x5022464f
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
cmp eax, 0x245657fe
je 0x1400378ab
mov rcx, qword [rsp + 0x40]
mov eax, dword [0x1402a9730]
xor edx, edx
div dword [0x1402a9734]
imul eax, eax, 0x5d9e5ab
mov r8d, 0x5e1ad742
xor r8d, 0x9a223187
xor edx, edx
div r8d
mov edx, eax
mov rax, qword [rsp + 0x60]
mov r8d, edx
and r8d, 0x3c2ff4bb
mov r9d, 0xb12fcb21
xor r9d, 0x4ed034de
xor r8d, r9d
add edx, 0x3c2ff4bb
add edx, 1
add edx, r8d
mov dword [rsp + 0x30], edx
mov edx, 0xbf978c74
xor edx, 0x85eaf464
mov dword [rsp + 0x2c], edx
mov byte [rax], 0
call fcn.140093eeb
mov rdx, qword [rsp + 0x60]
mov ecx, dword [rsp + 0x2c]
mov eax, dword [rsp + 0x30]
cmp byte [rdx], 0
sete dl
mov byte [rsp + 0x37], dl
cmp eax, ecx
jb 0x1400376e0
mov rax, qword [rsp + 0x38]
mov cl, byte [rsp + 0x37]
test cl, 1
mov qword [rsp + 0x48], rax
jne 0x14003778e
jmp 0x1400377a0
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x60]
mov byte [rcx], 1
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov eax, dword [0x1402a9738]
mov ecx, dword [0x1402a973c]
add eax, 0x3c995ba1
sub eax, ecx
sub eax, 0x3c995ba1
sub eax, 0xc0bdac37
mov ecx, 0x2d8e2eeb
xor ecx, 0x486a0b5
add eax, ecx
add eax, 0xc0bdac37
mov ecx, 0x67e1bf53
xor edx, edx
div ecx
mov edx, 0x14218a10
xor edx, 0xebde75ef
mov ecx, eax
xor ecx, edx
mov edx, 0xef22facb
xor edx, 0xd3135c6
and ecx, edx
mov edx, 0xffffffff
xor edx, 0xe213cf0d
and eax, edx
sub eax, ecx
cmp eax, 0xdc6913a7
je 0x1400378b4
mov eax, dword [0x1402a9740]
xor eax, 0xf35fe2f
mov ecx, dword [0x1402a9744]
mov edx, 0xcf43c882
xor edx, 0x64fe9e2b
xor ecx, edx
imul eax, ecx
imul eax, eax, 0x7c18d355
mov edx, eax
xor edx, 0xffffffff
and edx, 0x231a71c7
mov r8d, 0xffffffff
xor r8d, 0x231a71c7
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov r8d, 0xbf46aa67
xor r8d, 0x9c5cdba0
mov edx, eax
and edx, r8d
mov r8d, 0xeed88f4
xor r8d, 0x2df7f933
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0x1245a1a
xor ecx, 0x8ee6b469
and eax, ecx
cmp eax, 0x469a5104
ja 0x1400378b4
mov rax, qword [rsp + 0x20]
add rsp, 0x88
ret
shr esp, cl
shr cl, cl
sub al, 0xfe
invalid
mov edx, 0xe9cc6678
pop rbx
invalid