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

Disassembly:
sub rsp, 0x108
mov qword [rsp + 0xe8], r9
mov qword [rsp + 0xf0], r8
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0x100], rcx
mov eax, dword [0x140272e08]
mov ecx, dword [0x140272e0c]
xor ecx, 0x5339e787
xor edx, edx
div ecx
xor eax, 0xd6ca7dab
mov ecx, 0x213c6b4a
xor ecx, 0xcdb867a0
xor edx, edx
div ecx
or eax, eax
xor eax, 0xffffffff
mov ecx, 0x5397af1b
xor ecx, 0x28911995
mov edx, 0xf6237fa8
xor edx, 0x8d25c926
or ecx, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
cmp eax, 0x2e1556da
jae 0x14001cf54
mov eax, dword [0x140272e10]
and eax, dword [0x140272e14]
mov ecx, 0x7eeeb1ef
xor edx, edx
div ecx
add eax, 0x89453505
mov r8d, 0xffffffff
xor r8d, 0x6f7b1a34
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x6f7b1a34
mov r8d, 0xc4f80ce2
xor r8d, 0xab8316d6
or eax, r8d
imul eax, edx
add eax, ecx
mov dword [rsp + 0xcc], eax
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0x100]
mov rdx, qword [rsp + 0xf0]
mov r8, rax
mov eax, dword [rsp + 0xcc]
add r8, 0x60
mov qword [rsp + 0xd0], r8
mov rcx, qword [rcx]
mov qword [rsp + 0xd8], rcx
movabs r9, 0xbd48ee9a0396e1c5
movabs r8, 0xbd48ee9a0396e1c4
xor r9, r8
mov r8, rcx
add r8, r9
xor rcx, 0xffffffffffffffff
or rcx, 3
add rcx, r8
cmp rcx, rdx
sete cl
mov byte [rsp + 0xe7], cl
cmp eax, 0x2ebc1297
jbe 0x14001cf54
mov al, byte [rsp + 0xe7]
test al, 1
jne 0x14001c850
jmp 0x14001cf4c
mov rax, qword [rsp + 0x100]
cmp qword [rax + 8], 0
jne 0x14001cf4c
mov rax, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x100]
mov rdx, qword [rsp + 0xd8]
and rdx, 0xfffffffffffffffc
mov qword [rcx], rdx
mov rcx, rax
add rcx, 0x18
mov qword [rsp + 0xb0], rcx
mov rcx, rax
add rcx, 0x20
mov qword [rsp + 0xb8], rcx
mov rcx, qword [rax + 0x20]
mov rax, qword [rax + 0x18]
cmp rcx, rax
mov qword [rsp + 0xc0], rax
jg 0x14001c8d9
mov rcx, qword [rsp + 0xb0]
call fcn.14001a1f0
mov rax, qword [rsp + 0xb0]
mov rax, qword [rax]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0xa8], rax
mov r11d, dword [0x140272e18]
mov r10d, dword [0x140272e1c]
mov ecx, r11d
xor ecx, 0xffffffff
mov eax, 0xd4ea7b74
xor eax, 0x2b15848b
mov r8d, r10d
xor r8d, eax
mov edx, 0xffffffff
xor edx, 0xa3b2ecdb
mov eax, ecx
and eax, 0xa3b2ecdb
and r11d, edx
mov r9d, r8d
and r9d, 0xa3b2ecdb
and r10d, edx
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, r8d
xor ecx, 0xffffffff
or edx, 0xa3b2ecdb
and ecx, edx
or eax, ecx
mov ecx, 0xa4838e80
xor edx, edx
div ecx
sub eax, 0xda25c7c3
and eax, 0xdd0265de
cmp eax, 0x91e24b63
ja 0x14001cf5d
mov r8, qword [rsp + 0xa8]
mov r10, qword [rsp + 0x100]
mov rcx, qword [rsp + 0xe8]
mov eax, dword [0x140272e20]
and eax, dword [0x140272e24]
mov r9d, 0xa9a42c3a
xor edx, edx
div r9d
mov rdx, qword [rsp + 0xf8]
mov r9d, eax
xor r9d, 0x31171583
xor r9d, 0xffffffff
or eax, 0x31171583
and eax, r9d
imul eax, eax, 0x3b3cd3a4
mov r9, rcx
add r9, 0x28
mov qword [rsp + 0x90], r9
mov rcx, qword [rcx + 0x28]
mov r11, r8
shl r11, 4
mov r9, rcx
add r9, r11
mov qword [r9], r10
mov r9, r8
shl r9, 4
add rcx, r9
add rcx, 8
mov qword [rcx], rdx
movabs rcx, 0x39da401ae6b0936b
movabs rdx, 0x39da401ae6b0936a
xor rcx, rdx
mov rdx, r8
add rdx, rcx
mov qword [rsp + 0x98], rdx
xor r8, 0xffffffffffffffff
mov rcx, rdx
and rcx, r8
movabs r9, 0x1ace4d6b65621ea6
movabs r10, 0xe531b2949a9de159
xor r9, r10
xor rcx, r9
xor rdx, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
or rdx, r8
and rcx, rdx
xor rcx, 0xffffffffffffffff
movabs rdx, 0xbe4f2adc928a409b
movabs r8, 0xbe4f2adc928a409b
xor rdx, r8
cmp rcx, rdx
setl cl
mov byte [rsp + 0xa7], cl
cmp eax, 0xa02e55ff
je 0x14001c966
mov al, byte [rsp + 0xa7]
test al, 1
jne 0x14001ca8b
jmp 0x14001ca95
call fcn.14000f24b
jmp 0x14001caa8
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x98]
mov qword [rax], rcx
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rax, qword [rsp + 0xf8]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x88], rax
cmp rax, 0
je 0x14001cb04
mov rax, qword [rsp + 0x88]
mov rdx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x100]
mov r8, 0xffffffffffffffff
xor r8, 0x10
xor r9d, r9d
sub r9, 1
sub r8, r9
sub rcx, r8
call rax
mov rax, qword [rsp + 0xd0]
cmp byte [rax], 0
jne 0x14001cf4c
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax]
mov qword [rsp + 0x80], rax
cmp rax, 0
jle 0x14001cf4c
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0xe8]
add rcx, 0x10
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], rax
mov rcx, qword [rsp + 0xf0]
mov rax, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0x70]
mov r8, qword [rsp + 0x78]
movabs r9, 0xecbf2618566cfa47
movabs r10, 0xecbf2618566cfa47
xor r9, r10
sub r9, r8
xor r8d, r8d
sub r8, 0xffffffffffffffff
add r9, r8
xor r8d, r8d
sub r8, r9
mov r9, r8
shl r9, 4
add r9, qword [rdx]
mov rdx, qword [r9]
mov r9, qword [r9 + 8]
mov qword [rsp + 0x58], r9
mov qword [rax], r8
mov rax, qword [rdx]
mov qword [rsp + 0x60], rax
movabs r8, 0x8269605cf30ed0ec
movabs r9, 0xc9752b8da946976a
xor r8, r9
sub rax, r8
movabs r8, 0x9bbe31ae418cba74
movabs r9, 0x6441ce51be734584
xor r8, r9
add rax, r8
movabs r8, 0x4b1c4bd15a484786
add rax, r8
mov qword [rsp + 0x68], rax
mov qword [rdx], 0
mov rax, qword [rax]
mov rdx, rax
add rdx, 1
xor rax, 0xffffffffffffffff
movabs r8, 0xfeff6298c5d567c3
movabs r9, 0xfeff6298c5d567c0
xor r8, r9
or rax, r8
add rax, rdx
cmp rax, rcx
jne 0x14001cf32
mov rax, qword [rsp + 0x68]
cmp qword [rax + 8], 0
jne 0x14001cf32
mov ecx, dword [0x140272e28]
mov eax, dword [0x140272e2c]
xor eax, 0x5efe2cc2
imul ecx, eax
mov edx, 0xdd097cdd
xor edx, 0xbdfb27b0
mov eax, ecx
and eax, edx
or ecx, 0x60f25b6d
add eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x82532d64
mov r8d, 0xffffffff
xor r8d, 0x82532d64
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x82532d64
or eax, 0x82532d64
imul eax, edx
add eax, ecx
mov r8d, 0xffffffff
xor r8d, 0x1b57df17
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
mov r8d, 0x48c947e3
xor r8d, 0xb736b81c
xor ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x1b57df17
or eax, 0x1b57df17
imul eax, edx
add eax, ecx
cmp eax, 0xadd59db2
je 0x14001cf66
mov rcx, qword [rsp + 0xb8]
mov eax, dword [0x140272e30]
xor eax, 0x81fe0e80
add eax, dword [0x140272e34]
mov edx, eax
and edx, 0xd739ff5e
shl edx, 1
xor eax, 0xd739ff5e
add eax, edx
mov r8d, 0x28181ff9
xor edx, edx
div r8d
mov r8d, 0x73291315
xor edx, edx
div r8d
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [rcx]
mov rdx, qword [rdx]
mov qword [rsp + 0x48], rdx
cmp rcx, rdx
setg cl
mov byte [rsp + 0x57], cl
cmp eax, 0xa967b213
je 0x14001ccea
mov rax, qword [rsp + 0x48]
mov cl, byte [rsp + 0x57]
test cl, 1
mov qword [rsp + 0x40], rax
jne 0x14001cd8c
jmp 0x14001cd6f
mov rcx, qword [rsp + 0xb0]
call fcn.14001a1f0
mov rax, qword [rsp + 0xb0]
mov rax, qword [rax]
mov qword [rsp + 0x40], rax
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x68]
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rax]
mov r10, rcx
shl r10, 4
mov r8, rax
add r8, r10
mov qword [r8], r9
mov r8, rcx
shl r8, 4
add rax, r8
add rax, 8
mov qword [rax], rdx
mov rdx, rcx
add rdx, 1
mov qword [rsp + 0x38], rdx
xor rcx, 0xffffffffffffffff
mov rax, rdx
xor rax, 0xffffffffffffffff
movabs r8, 0x7f90e14332c61f83
movabs r9, 0x806f1ebccd39e07c
xor r8, r9
xor rdx, r8
and rax, rdx
or rcx, rcx
xor rcx, 0xffffffffffffffff
or rax, rcx
movabs rcx, 0x81deaab792035d51
movabs rdx, 0x7e2155486dfca2ae
xor rcx, rdx
xor rax, rcx
cmp rax, 0
jge 0x14001cec4
mov eax, dword [0x140272e38]
mov ecx, dword [0x140272e3c]
add eax, 0xedd45f37
sub eax, ecx
sub eax, 0xedd45f37
xor eax, 0x9a72b1ee
mov ecx, 0x58f2d7c1
xor ecx, 0xc5ca2fb2
xor edx, edx
div ecx
mov ecx, 0x6defd2c
xor edx, edx
div ecx
mov ecx, 0x199e9e5b
xor ecx, 0x1ea3180c
cmp eax, ecx
ja 0x14001cf6f
mov eax, dword [0x140272e40]
xor eax, 0xd484f91a
imul eax, dword [0x140272e44]
mov ecx, 0xf1c133b6
xor edx, edx
div ecx
mov ecx, 0x28aa4b06
xor ecx, 0x13b29606
and eax, ecx
mov ecx, 0xd838a60b
xor ecx, 0xcfae6f2
imul eax, ecx
mov dword [rsp + 0x34], eax
call fcn.14000f24b
mov eax, dword [rsp + 0x34]
cmp eax, 0x1149cd80
jae 0x14001cf6f
jmp 0x14001ced4
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x38]
mov qword [rax], rcx
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax]
and rcx, 0xfffffffffffffffc
mov qword [rax], rcx
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x28], rax
cmp rax, 0
je 0x14001cf1b
mov rax, qword [rsp + 0x28]
mov rdx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x60]
call rax
mov rax, qword [rsp + 0xd0]
mov al, byte [rax]
mov cl, 0x29
xor cl, 0x29
cmp al, cl
jne 0x14001cf4c
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax]
cmp rax, 0
mov qword [rsp + 0x78], rax
jg 0x14001cb50
add rsp, 0x108
ret
or al, 0xb0
jmp 0x14001c764
and bh, ch
movabs eax, dword [0x3cc25dfffffa00e9]
xor cl, ch
jnp 0x14001cf6a
pop rbp
ret 0x303c
jmp 0x14001ccea
invalid
and eax, 0xe9455716
stc
invalid