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

Disassembly:
push rbp
sub rsp, 0xb0
lea rbp, [rsp + 0x80]
mov qword [rbp - 0x18], rcx
mov eax, 0x30
call fcn.140215890
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x10], rax
sub rsp, 0x20
call fcn.1400ad6bd
add rsp, 0x20
mov qword [rbp - 8], rax
sub rsp, 0x20
call fcn.1400ad6bd
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 8]
add rcx, 0x50
mov qword [rbp], rcx
mov rcx, rax
add rcx, 0x2b61
mov qword [rbp + 8], rcx
cmp byte [rax + 0x2b61], 0
jne 0x1400ad22a
sub rsp, 0x20
call fcn.1400ad6bd
add rsp, 0x20
xor eax, eax
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x20]
mov qword [rbp - 0x28], rax
cmp rax, 0x30
je 0x1400ad1cd
mov rax, qword [rbp - 0x28]
mov rcx, qword [rbp - 0x10]
mov byte [rcx + rax], 0
xor ecx, ecx
sub rcx, rax
movabs rax, 0x29dd30ad581af195
movabs rdx, 0x29dd30ad581af195
xor rax, rdx
movabs rdx, 0xe7a55f9a40425377
movabs r8, 0xe7a55f9a40425376
xor rdx, r8
sub rax, rdx
add rcx, rax
movabs rax, 0xceac7a70050ead3
movabs rdx, 0xceac7a70050ead3
xor rax, rdx
sub rax, rcx
mov qword [rbp - 0x20], rax
jmp 0x1400ad153
mov rdx, qword [rbp - 0x10]
mov ecx, 4
sub rsp, 0x20
call fcn.1400aac3d
mov rax, qword [rbp]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1400ad225
mov rdx, qword [rbp - 0x10]
mov rcx, qword [rbp - 8]
add rcx, 0x2b30
sub rsp, 0x20
call fcn.1400aab4a
mov rax, qword [rbp]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1400ad225
mov rax, qword [rbp + 8]
mov byte [rax], 1
jmp 0x1400ad28f
jmp 0x1400ad6aa
mov rax, qword [rbp]
mov rcx, qword [rbp - 8]
add rcx, 0x2b30
mov qword [rbp - 0x30], rcx
mov al, byte [rax]
mov cl, 0x82
xor cl, 0x82
cmp al, cl
jne 0x1400ad6aa
mov rax, qword [rbp - 8]
cmp qword [rax + 0x2b50], 0x80
jle 0x1400ad28f
mov rcx, qword [rbp - 0x30]
mov edx, 0x40
xor eax, eax
mov r8d, eax
sub rsp, 0x20
call fcn.1400aadd0
mov rax, qword [rbp]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0xe1
xor cl, 0xe1
cmp al, cl
jne 0x1400ad6aa
mov rcx, qword [rbp - 8]
mov rax, qword [rbp - 0x18]
mov rdx, qword [rax]
mov qword [rbp + 0x20], rdx
mov rax, qword [rax + 8]
mov qword [rbp + 0x28], rax
add rcx, 0x2b30
mov qword [rbp - 0x38], rcx
lea rdx, [rbp + 0x20]
sub rsp, 0x20
call fcn.1400ac3a0
mov rax, qword [rbp]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1400ad6aa
sub rsp, 0x20
call fcn.1400ad6bd
mov rcx, qword [rbp - 8]
add rsp, 0x20
mov rcx, qword [rcx + 0x2b50]
mov qword [rbp - 0x48], rcx
mov cl, byte [rax + 0x50]
mov dl, 0x85
xor dl, 0x85
xor eax, eax
cmp cl, dl
mov qword [rbp - 0x40], rax
jne 0x1400ad66d
mov eax, dword [0x14021b618]
xor eax, 0x8b0a152
sub eax, dword [str._I_f]
mov r8d, 0xffffffff
xor r8d, 0xfaacf1ee
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov r8d, 0xc13c4906
xor r8d, 0x3b90b8e8
mov edx, eax
and edx, r8d
or eax, 0xfaacf1ee
imul eax, edx
add eax, ecx
imul eax, eax, 0x715fd76a
mov ecx, eax
and ecx, 0xe1bdaa3d
shl ecx, 1
xor eax, 0xe1bdaa3d
add eax, ecx
cmp eax, 0xe692775d
je 0x1400ad6b4
mov r8, qword [rbp - 0x48]
mov eax, dword [0x14021b620]
sub eax, dword [0x14021b624]
mov ecx, 0x36c1d979
xor ecx, 0xbcba19e2
imul eax, ecx
mov ecx, 0xe19a3631
xor ecx, 0xced68fd5
add eax, ecx
mov ecx, 0xc4938d9c
xor ecx, 0x4381c4ad
imul eax, ecx
movabs rdx, 0xc6b3ef3563e28c2f
movabs rcx, 0x394c10ca9c1d73d0
xor rdx, rcx
mov rcx, r8
add rcx, rdx
mov qword [rbp - 0x58], rcx
mov rdx, rcx
xor rdx, r8
cmp rdx, 0
setl dl
movabs r8, 0xfc548f7c375b5a7a
movabs r9, 0x3ab7083c8a4a585
xor r8, r9
cmp rcx, r8
setg cl
and cl, dl
mov byte [rbp - 0x49], cl
cmp eax, 0x29c442f4
jbe 0x1400ad36e
mov al, byte [rbp - 0x49]
test al, 1
jne 0x1400ad412
jmp 0x1400ad42a
sub rsp, 0x20
call fcn.140008bc6
add rsp, 0x20
xor eax, eax
mov qword [rbp - 0x40], rax
jmp 0x1400ad66d
mov rax, qword [rbp - 0x48]
movabs rcx, 0x8000000000000000
cmp rax, rcx
jne 0x1400ad4c4
mov ecx, 0x40
mov edx, 8
sub rsp, 0x20
call fcn.140015160
add rsp, 0x20
mov rcx, rax
mov rax, qword [str.p___]
mov qword [rcx], rax
lea rax, [0x14022bd01]
mov qword [rcx + 0x10], rax
mov rax, qword [0x14022bd30]
mov qword [rcx + 0x18], rax
mov rax, qword [0x14022bd38]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
lea rdx, [0x14022bd01]
lea r8, [0x14022bd0d]
lea r9, [0x14022bd10]
sub rsp, 0x30
mov qword [rsp + 0x20], 0x54fea41a
call fcn.140014c00
add rsp, 0x30
xor eax, eax
mov qword [rbp - 0x40], rax
jmp 0x1400ad66d
mov rax, qword [rbp - 0x58]
cmp rax, 0
jge 0x1400ad568
mov ecx, 0x40
mov edx, 8
sub rsp, 0x20
call fcn.140015160
add rsp, 0x20
mov rcx, rax
mov rax, qword [str.p___]
mov qword [rcx], rax
lea rax, [0x14022bd01]
mov qword [rcx + 0x10], rax
mov rax, qword [0x14022bd30]
mov qword [rcx + 0x18], rax
mov rax, qword [0x14022bd38]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
movabs rax, 0x95234427caf09f8e
movabs rdx, 0x95234427d94ac779
xor rax, rdx
lea rdx, [0x14022bd01]
lea r8, [0x14022bd0d]
lea r9, [0x14022bd10]
sub rsp, 0x30
mov qword [rsp + 0x20], rax
call fcn.140014c00
add rsp, 0x30
xor eax, eax
mov qword [rbp - 0x40], rax
jmp 0x1400ad66d
mov r8, qword [rbp - 0x58]
mov rax, qword [rbp - 8]
mov rdx, qword [rax + 0x2b40]
movabs rax, 0x2e12c4a39929988d
mov rcx, rdx
sub rcx, rax
add rcx, r8
movabs rax, 0x2e12c4a39929988d
add rcx, rax
mov qword [rbp - 0x60], rcx
mov rax, rcx
xor rax, rdx
mov rdx, rcx
and rdx, r8
shl rdx, 1
add rcx, r8
sub rcx, rdx
and rax, rcx
movabs rcx, 0x9969f974301e2616
movabs rdx, 0x9969f974301e2616
xor rcx, rdx
cmp rax, rcx
jge 0x1400ad5ec
sub rsp, 0x20
call fcn.140008bc6
add rsp, 0x20
xor eax, eax
mov qword [rbp - 0x40], rax
jmp 0x1400ad66d
mov rdx, qword [rbp - 0x38]
mov rcx, qword [rbp - 0x60]
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x2b58]
xor rcx, rax
not rcx
and rcx, rax
mov qword [rbp - 0x70], rcx
setns al
mov rdx, qword [rdx]
mov qword [rbp - 0x68], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x1400ad64f
mov rcx, qword [rbp - 0x70]
mov rdx, qword [rbp - 0x68]
xor eax, eax
sub rax, 0xffffffffffffffff
sub rdx, rax
sub rsp, 0x20
call fcn.1400153d3
add rsp, 0x20
xor eax, eax
mov qword [rbp - 0x40], rax
jmp 0x1400ad66d
mov rcx, qword [rbp - 0x70]
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x2b38]
add rax, 8
shl rcx, 4
add rax, rcx
mov qword [rbp - 0x40], rax
mov rax, qword [rbp]
mov rcx, qword [rbp - 0x40]
mov qword [rbp - 0x78], rcx
cmp byte [rax], 0
jne 0x1400ad6aa
mov rax, qword [rbp - 0x78]
mov rcx, qword [rax]
mov qword [rbp + 0x10], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x18], rax
lea rcx, [rbp + 0x10]
sub rsp, 0x20
call fcn.1400ad6cb
add rsp, 0x20
mov qword [rbp - 0x80], rax
mov rax, qword [rbp - 0x80]
lea rsp, [rbp + 0x30]
pop rbp
ret
fcom qword [rbx]
call fcn.1400788a5
dec dword [rax - 0x75]
mov rax, qword [0x14022dd30]