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

Disassembly:
sub rsp, 0xf8
mov qword [rsp + 0xd0], r8
mov qword [rsp + 0xe8], rdx
mov qword [rsp + 0xc8], rcx
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0xc8]
mov r8, qword [rsp + 0xd0]
add rax, 0x60
mov qword [rsp + 0xd8], rax
mov rax, qword [rcx]
and rax, 0xfffffffffffffffc
mov qword [rcx], rax
mov rax, qword [r8]
mov qword [rsp + 0xe0], rax
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0xe8]
mov rax, qword [rdx + 0x20]
mov qword [rsp + 0xf0], rax
cmp rax, 0
je 0x140019684
mov rax, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xc8]
add rcx, 0x10
call rax
mov rax, qword [rsp + 0xd8]
cmp byte [rax], 0
jne 0x140019bf2
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xd0]
mov rcx, qword [rcx]
mov qword [rsp + 0xc0], rcx
cmp rax, rcx
jge 0x140019bf2
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xd0]
add rcx, 0x10
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0xa0], rcx
movabs rcx, 0xd76ff365c160fb0f
movabs rdx, 0x28900c9a3e9f04f0
xor rcx, rdx
mov rdx, rax
add rdx, rcx
mov qword [rsp + 0xa8], rdx
mov rcx, rdx
or rcx, rcx
xor rcx, 0xffffffffffffffff
mov r8, rax
xor r8, 0xffffffffffffffff
mov r9, rax
xor r9, 0xffffffffffffffff
and r8, r9
or rcx, r8
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
mov r8, rax
xor r8, 0xffffffffffffffff
and rdx, r8
or rcx, rdx
xor rcx, 0xffffffffffffffff
movabs rdx, 0xda2ab4ef1c23fe9c
movabs r8, 0xda2ab4ef1c23fe9c
xor rdx, r8
cmp rcx, rdx
setl cl
movabs rdx, 0xc5dcd53cf9e92897
movabs r8, 0xc5dcd53cf9e92897
xor rdx, r8
cmp rax, rdx
setg al
and al, cl
test al, 1
jne 0x1400197aa
jmp 0x1400197d1
call fcn.14000ee80
mov rcx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], rax
jmp 0x14001980a
mov rdx, qword [rsp + 0xd0]
mov r8, qword [rsp + 0xa8]
mov rax, qword [rsp + 0xb0]
mov rcx, r8
shl rcx, 4
add rcx, qword [rax]
mov rax, qword [rcx]
mov rcx, qword [rcx + 8]
mov qword [rdx], r8
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rax
mov ecx, dword [0x1402a8b18]
mov edx, dword [0x1402a8b1c]
mov eax, ecx
xor eax, 0xffffffff
mov r8d, edx
xor r8d, 0xffffffff
or eax, r8d
xor ecx, 0xffffffff
mov r8d, 0xa7f1ec2e
xor r8d, 0x580e13d1
xor edx, r8d
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
mov ecx, eax
xor ecx, 0x3966b2d8
mov edx, 0xffffffff
xor edx, 0x3966b2d8
and eax, edx
shl eax, 1
sub eax, ecx
sub eax, 0x6d2d0779
mov ecx, 0x9821dc8a
xor ecx, 0xb198da4e
xor edx, edx
div ecx
cmp eax, 0xf8a75f94
jae 0x140019cca
mov eax, dword [0x1402a8b20]
mov ecx, dword [0x1402a8b24]
mov edx, 0x4e96f8bc
xor edx, 0x8774683b
xor ecx, edx
xor edx, edx
div ecx
sub eax, 0x51c7a53d
mov ecx, 0xbf48bdfc
xor edx, edx
div ecx
mov ecx, 0x29e1165e
xor edx, edx
div ecx
mov rdx, qword [rsp + 0x68]
mov ecx, 0x5b0da4c7
xor ecx, 0xf929cd5b
mov rdx, qword [rdx]
mov qword [rsp + 0x40], rdx
mov r8, rdx
add r8, 0xfffffffffffffff0
mov qword [rsp + 0x48], r8
mov r9, qword [rdx - 0x10]
mov qword [rsp + 0x50], r9
movabs r8, 0x55c47465c329c050
movabs rdx, 0x55c47465c329c040
xor r8, rdx
movabs rdx, 0xfa3bd463e538fb2b
movabs r10, 0x5c42b9c1ac704d4
xor rdx, r10
xor r8, rdx
movabs rdx, 0x66457b7354b73f83
movabs r10, 0x66457b7354b73f83
xor rdx, r10
movabs r10, 0xaa7b01417188e853
movabs r11, 0xaa7b01417188e852
xor r10, r11
sub rdx, r10
sub r8, rdx
mov rdx, r9
sub rdx, r8
mov qword [rsp + 0x58], rdx
mov r10, r9
xor r10, 0xffffffffffffffff
xor r10, 0xffffffffffffffff
and r10, 0xffffffffffffffff
movabs r8, 0x3bac291756dff2be
movabs r11, 0x3bac291756dff2bc
xor r8, r11
imul r8, r10
sub r8, 0xffffffffffffffff
sub r9, r8
or rdx, rdx
xor rdx, 0xffffffffffffffff
mov r8, r9
xor r8, 0xffffffffffffffff
movabs r10, 0x79b865aca545a96d
movabs r11, 0x86479a535aba5692
xor r10, r11
xor r9, r10
and r8, r9
or rdx, r8
xor rdx, 0xffffffffffffffff
movabs r8, 0x18cfa24232a5f303
movabs r9, 0x18cfa24232a5f303
xor r8, r9
cmp rdx, r8
setl dl
mov byte [rsp + 0x67], dl
cmp eax, ecx
ja 0x140019cca
mov al, byte [rsp + 0x67]
test al, 1
jne 0x1400199fd
jmp 0x140019a07
call fcn.14000ee80
jmp 0x140019bf2
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x58]
mov qword [rax], rdx
mov rax, rcx
xor rax, 0xffffffffffffffff
movabs rdx, 0xf75157546ba5838
movabs r8, 0xf75157546ba583b
xor rdx, r8
movabs r8, 0xe429fb29f54229a3
movabs r9, 0x1bd604d60abdd65c
xor r8, r9
xor rdx, r8
or rax, rdx
movabs rdx, 0xb0c397a15234f4ff
movabs r8, 0x4f3c685eadcb0b00
xor rdx, r8
xor rcx, rdx
mov rdx, 0xffffffffffffffff
xor rdx, 3
or rcx, rdx
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
or rax, rcx
cmp rax, 0
je 0x140019bb4
mov eax, dword [0x1402a8b28]
xor eax, 0x5481304
mov edx, dword [0x1402a8b2c]
mov ecx, edx
and ecx, eax
xor ecx, 0xffffffff
add eax, edx
add eax, 1
add eax, ecx
mov edx, eax
and edx, 0xbc0cfeb4
mov ecx, 0x326be808
xor ecx, 0x326be80a
imul ecx, edx
add eax, 0xbc0cfeb4
sub eax, ecx
mov ecx, 0x865b53cb
xor ecx, 0x9604dbfd
sub eax, ecx
mov ecx, 0xa878c8d0
xor edx, edx
div ecx
cmp eax, 0xeb380e93
jae 0x140019cd3
mov rcx, qword [rsp + 0x58]
mov eax, dword [0x1402a8b30]
xor edx, edx
div dword [0x1402a8b34]
mov r8d, 0x8567b078
xor edx, edx
div r8d
mov edx, eax
mov rax, qword [rsp + 0x48]
mov r8d, 0x8195ed75
xor r8d, 0x6c0a0080
sub edx, r8d
add edx, 0xcc509dbc
add edx, 0xed9fedf5
mov r8d, 0x64f66248
xor r8d, 0xd68d91ca
xor edx, r8d
mov dword [rsp + 0x2c], edx
and rcx, 0xfffffffffffffffc
mov qword [rax], rcx
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0x70]
mov eax, dword [rsp + 0x2c]
mov rcx, qword [rcx + 0x20]
mov qword [rsp + 0x30], rcx
cmp rcx, 0
sete cl
mov byte [rsp + 0x3f], cl
cmp eax, 0x8d4069dc
ja 0x140019aee
mov al, byte [rsp + 0x3f]
test al, 1
jne 0x140019ba3
jmp 0x140019b8f
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x40]
call rax
mov rax, qword [rsp + 0xd8]
cmp byte [rax], 0
jne 0x140019bf2
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x70]
mov r8, qword [rsp + 0xe0]
mov rdx, qword [rsp + 0xd0]
mov rdx, qword [rdx]
cmp r8, rdx
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x88], rax
jl 0x1400196dd
mov ecx, dword [0x1402a8b38]
and ecx, dword [0x1402a8b3c]
sub ecx, 0x753dc28b
sub ecx, 0x6e9d45f1
add ecx, 0x753dc28b
mov eax, 0x30e0a59e
xor eax, 0x9b487f73
add ecx, eax
mov eax, ecx
and eax, 0xea31188f
xor ecx, 0xea31188f
or eax, ecx
mov ecx, 0xc8173945
xor ecx, 0xb0813628
cmp eax, ecx
jb 0x140019cdc
mov eax, dword [0x1402a8b40]
xor eax, 0x903c2954
mov edx, dword [0x1402a8b44]
xor edx, 0xea707fb6
mov ecx, eax
xor ecx, 0xffffffff
xor eax, 0xffffffff
or ecx, eax
mov r8d, 0xd7e89f28
xor r8d, 0x281760d7
mov eax, edx
xor eax, r8d
mov r8d, 0x85025733
xor r8d, 0x7afda8cc
xor edx, r8d
or eax, edx
and ecx, eax
xor ecx, 0xffffffff
mov eax, 0x4a0a8e1f
xor eax, 0x3aa1feae
imul ecx, eax
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0x536071b3
and ecx, 0x536071b3
xor ecx, 0xffffffff
and eax, ecx
xor eax, 0xffffffff
or eax, 0xfab4fd1f
cmp eax, 0xe2dd9ed3
je 0x140019cdc
add rsp, 0xf8
ret
pop rbp
js 0x140019d1a
push rax
jmp 0x14001988f
in eax, 0xfe
push 0x5e
jmp 0x140019aee
jmp 0x129cf2798
mov byte [rax], al
add byte [rax], al
mov rax, qword [rcx]
mov qword [rsp + 0x90], rax
and rax, 3
cmp rax, 1
jne 0x14001a02f
mov rax, qword [rsp + 0x90]
cmp rax, 0xffffffffffffffff
jle 0x140019d65
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x80]
call fcn.1400195e0
jmp 0x14001a02f
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x90]
movabs r8, 0x60d4a65ca6953dca
movabs rcx, 0x9f2b59a3596ac235
xor r8, rcx
mov rcx, rdx
xor rcx, r8
movabs r8, 0xe754f72f800af465
movabs r9, 0x18ab08d07ff50b99
xor r8, r9
movabs r9, 0xbf999f6ff720e281
movabs r10, 0x4066609008df1d7e
xor r9, r10
xor r8, r9
or rcx, r8
and rdx, 0xfffffffffffffffc
xor rdx, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
or rcx, rdx
mov rdx, rcx
and rdx, 2
xor rdx, 0xffffffffffffffff
add rcx, 2
movabs r8, 0x35684d3f94f5d956
movabs r9, 0x35684d3f94f5d957
xor r8, r9
add rcx, r8
add rcx, rdx
mov qword [rax], rcx
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x68], rax
cmp rax, 0
je 0x140019e7f
mov rax, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x80]
xor r8d, r8d
sub r8, rcx
movabs rcx, 0x432e7343d6e13896
movabs r9, 0x432e7343d6e13896
xor rcx, r9
movabs r9, 0x2abdbbef9b61752f
movabs r10, 0x2abdbbef9b61753f
xor r9, r10
sub rcx, r9
add r8, rcx
xor ecx, ecx
sub rcx, r8
call rax
mov rax, qword [rsp + 0x88]
mov al, byte [rax]
mov cl, 0x17
xor cl, 0x17
cmp al, cl
jne 0x14001a02f
mov rax, qword [rsp + 0x70]
mov rax, qword [rax]
mov qword [rsp + 0x60], rax
cmp rax, 0
jle 0x14001a02f
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x70]
add rcx, 0x10
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], rax
mov rcx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffff
mov r8, rdx
shl r8, 4
add r8, qword [rax]
mov rax, qword [r8]
mov r8, qword [r8 + 8]
mov qword [rsp + 0x30], r8
mov qword [rcx], rdx
mov rax, qword [rax]
mov qword [rsp + 0x38], rax
mov rcx, rax
add rcx, 0xfffffffffffffff0
mov qword [rsp + 0x40], rcx
mov rax, qword [rax - 0x10]
mov qword [rsp + 0x48], rax
movabs rcx, 0xc190f40483d5dc6b
movabs rdx, 0xc190f40483d5dc68
xor rcx, rdx
and rax, rcx
movabs rcx, 0x921e70a0dcc963a5
movabs rdx, 0x921e70a0dcc963a4
xor rcx, rdx
cmp rax, rcx
jne 0x14001a018
mov rax, qword [rsp + 0x48]
cmp rax, 0xffffffffffffffff
jle 0x140019f81
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x40]
call fcn.1400195e0
mov rax, qword [rsp + 0x88]
cmp byte [rax], 0
je 0x14001a018
jmp 0x14001a02f
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
xor rcx, 0xffffffffffffffff
mov r8, 0xffffffffffffffff
xor r8, 0xfffffffffffffffc
mov rdx, 0xffffffffffffffff
movabs r9, 0x1f8c09fdeed30f00
xor rdx, r9
or rcx, r8
movabs r8, 0x1f8c09fdeed30f00
or rdx, r8
xor rcx, 0xffffffffffffffff
and rcx, rdx
or rcx, 2
mov qword [rax], rcx
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x28], rax
cmp rax, 0
je 0x14001a001
mov rax, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x38]
call rax
mov rax, qword [rsp + 0x88]
mov al, byte [rax]
mov cl, 0x39
xor cl, 0x39
cmp al, cl
jne 0x14001a02f
mov rax, qword [rsp + 0x70]
mov rax, qword [rax]
cmp rax, 0
mov qword [rsp + 0x58], rax
jg 0x140019ec5
add rsp, 0x98
ret