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

Disassembly:
push rbp
sub rsp, 0x90
lea rbp, [rsp + 0x80]
mov qword [rbp - 8], rdx
mov qword [rbp - 0x10], rcx
mov eax, 0x20
call fcn.140271bb0
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x18], rax
mov ecx, dword [0x1402980b0]
sub rsp, 0x20
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rbp - 0x10]
mov rdx, qword [rbp - 8]
add rsp, 0x20
add rax, 0x60
mov qword [rbp], rax
mov rax, qword [rcx]
mov qword [rbp + 8], rax
cmp rax, rdx
jle 0x14004793a
mov rdx, qword [rbp - 8]
mov rcx, qword [rbp - 0x10]
sub rsp, 0x20
call fcn.1400476dd
add rsp, 0x20
jmp 0x140047ff8
mov rax, qword [rbp + 8]
mov rcx, qword [rbp - 8]
cmp rax, rcx
jge 0x140047ff8
mov rax, qword [rbp - 0x10]
mov rcx, rax
add rcx, 8
mov qword [rbp - 0x28], rcx
mov rax, qword [rax + 8]
mov qword [rbp - 0x20], rax
cmp rax, 0
je 0x14004799a
mov rcx, qword [rbp - 8]
mov rax, qword [rbp - 0x20]
mov rax, qword [rax]
movabs rdx, 0x916a6cdd9de17f50
movabs r8, 0x2e959322621e80af
xor rdx, r8
and rax, rdx
cmp rax, rcx
jge 0x140047bf7
mov eax, dword [0x1402743a8]
xor eax, 0xb4d188a3
imul eax, dword [0x1402743ac]
imul eax, eax, 0x7461de98
mov ecx, 0x7a7eec1f
xor edx, edx
div ecx
mov r11d, eax
mov ecx, r11d
xor ecx, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0x2718f990
mov edx, 0xffffffff
xor edx, 0x5709d667
mov eax, ecx
and eax, 0x5709d667
and r11d, edx
mov r10d, 0xafba4f6a
xor r10d, 0xf8b3990d
mov r9d, r8d
and r9d, r10d
mov r10d, edx
and r10d, 0x2718f990
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, r8d
xor ecx, 0xffffffff
or edx, 0x5709d667
and ecx, edx
or eax, ecx
mov ecx, 0xed12f72a
xor ecx, 0x7408a012
cmp eax, ecx
ja 0x140047ffe
mov r8, qword [rbp + 8]
mov r10, qword [rbp - 8]
mov eax, dword [0x1402743b0]
xor eax, 0xf684862a
add eax, dword [0x1402743b4]
add eax, 0x992aa872
mov ecx, 0x623aaa28
xor ecx, 0xd35fd279
sub eax, ecx
mov ecx, eax
add ecx, 1
mov edx, 0x2a7480dd
xor edx, 0xd58b7f22
xor eax, edx
or eax, 0xbc8a7c38
add eax, ecx
mov rcx, r10
xor rcx, r8
mov r9, r8
xor r9, 0xffffffffffffffff
mov rdx, r10
and rdx, r9
shl rdx, 1
sub rdx, rcx
mov qword [rbp - 0x38], rdx
mov r9, rdx
xor r9, 0xffffffffffffffff
mov rcx, r10
and rcx, r9
xor r10, 0xffffffffffffffff
mov r9, rdx
and r9, r10
or rcx, r9
cmp rcx, 0
setl cl
xor rdx, r8
cmp rdx, 0xffffffffffffffff
setg r8b
xor cl, 0xff
xor r8b, 0xff
mov dl, 1
xor dl, 0
or cl, r8b
or dl, 0
xor cl, 0xff
and cl, dl
mov byte [rbp - 0x29], cl
cmp eax, 0xd968e81c
jae 0x140047a2f
mov al, byte [rbp - 0x29]
test al, 1
jne 0x140047be5
jmp 0x140047af2
mov ecx, dword [0x1402743b8]
mov edx, dword [0x1402743bc]
xor edx, 0xe100f978
mov eax, edx
and eax, ecx
xor eax, 0xffffffff
add ecx, edx
add ecx, 1
add ecx, eax
mov edx, 0x23eee4d8
xor edx, 0xdc111b27
mov eax, ecx
xor eax, edx
and eax, 0xe7300a07
mov edx, 0xffffffff
xor edx, 0xe7300a07
and ecx, edx
or eax, ecx
mov ecx, 0x29aaa0fb
xor edx, edx
div ecx
mov ecx, 0x1d79b2c3
xor edx, edx
div ecx
mov ecx, 0xd74984b6
xor ecx, 0x262898e6
cmp eax, ecx
ja 0x140048007
mov r8, qword [rbp - 0x38]
mov rcx, qword [rbp + 8]
mov edx, dword [0x1402743c0]
mov eax, dword [0x1402743c4]
xor eax, 0xffffffff
add edx, eax
mov eax, 0x3aa7f5ee
xor eax, 0x3aa7f5ef
add edx, eax
mov eax, edx
and eax, 0x449ea427
xor edx, 0x449ea427
or eax, edx
xor eax, 0xdf4316df
mov r9d, 0x740d746e
xor r9d, 0xb8815996
xor edx, edx
div r9d
mov rdx, qword [rbp - 0x20]
mov dword [rbp - 0x3c], eax
mov r9d, 0x20
sub rsp, 0x30
mov qword [rsp + 0x20], 8
call fcn.1400265f0
mov rcx, qword [rbp - 0x28]
add rsp, 0x30
mov rdx, rax
mov eax, dword [rbp - 0x3c]
mov qword [rcx], rdx
cmp eax, 0x9cefcc48
jae 0x140047b5a
jmp 0x140047bf7
sub rsp, 0x20
call fcn.14000f24b
add rsp, 0x20
jmp 0x140047ff8
mov rax, qword [rbp + 8]
mov rcx, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x10]
mov r8, qword [rbp - 8]
mov qword [rdx], r8
add rcx, 0x10
mov qword [rbp - 0x50], rcx
mov qword [rbp - 0x48], rax
mov rax, qword [rbp - 0x48]
mov qword [rbp - 0x58], rax
mov eax, dword [0x1402743c8]
mov ecx, dword [0x1402743cc]
xor ecx, 0xa6764039
sub eax, ecx
mov ecx, 0xebd51566
xor edx, edx
div ecx
mov ecx, eax
or ecx, 0x891e2878
mov eax, ecx
and eax, 0x11021664
xor ecx, 0x11021664
or eax, ecx
cmp eax, 0x3c6e114f
je 0x140048010
mov eax, dword [0x1402743d0]
mov ecx, eax
xor ecx, 0xb02b0c3b
mov edx, dword [0x1402743d4]
xor eax, 0x4fd4f3c4
mov r8d, edx
not r8d
and eax, r8d
or ecx, edx
not eax
and eax, ecx
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xe231302f
and ecx, 0x1dcecfd0
imul ecx, edx
mov edx, eax
and edx, 0x1dcecfd0
or eax, 0x1dcecfd0
imul eax, edx
add eax, ecx
mov ecx, eax
and ecx, 0x84b260f0
mov edx, eax
xor edx, 0x7b4d9f02
add eax, edx
sub eax, ecx
and eax, 0xd020f4e2
mov dword [rbp - 0x60], eax
mov ecx, dword [0x1402980b0]
sub rsp, 0x20
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov r8, qword [rbp - 0x50]
mov rcx, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x18]
add rsp, 0x20
mov rax, qword [rbp - 0x58]
xorps xmm0, xmm0
movaps xmmword [rdx], xmm0
movaps xmmword [r8], xmm0
mov rcx, qword [rcx]
add rcx, 8
shl rax, 5
add rcx, rax
sub rsp, 0x20
call fcn.140086df9
mov rcx, qword [rbp]
mov eax, dword [rbp - 0x60]
add rsp, 0x20
cmp byte [rcx], 0
sete cl
mov byte [rbp - 0x59], cl
cmp eax, 0x8b083c7b
je 0x140047c5d
mov al, byte [rbp - 0x59]
test al, 1
jne 0x140047d3f
jmp 0x140047ed7
mov r11d, dword [0x1402743d8]
or r11d, dword [0x1402743dc]
mov ecx, r11d
xor ecx, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0x1ea16899
mov edx, 0xffffffff
xor edx, 0x944a9e26
mov eax, ecx
and eax, 0x944a9e26
and r11d, edx
mov r9d, r8d
and r9d, 0x944a9e26
mov r10d, 0xe957e793
xor r10d, 0xf7f68f0a
and r10d, edx
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, r8d
xor ecx, 0xffffffff
or edx, 0x944a9e26
and ecx, edx
or eax, ecx
sub eax, 0x88765eb8
sub eax, 0xf168277f
mov ecx, 0xb0690991
xor ecx, 0xb9c4a8
add eax, ecx
add eax, 0xf168277f
cmp eax, 0xb76c2767
je 0x140048019
mov r9, qword [rbp - 0x58]
mov eax, dword [0x1402743e0]
mov ecx, dword [0x1402743e4]
xor ecx, 0x65c901e6
imul eax, ecx
or eax, 0x36e3a9a0
add eax, 0xce4de985
xor eax, 0xffffffff
mov ecx, 0x1253df9a
xor ecx, 0x921bc31c
mov edx, 0xa0ec9dc
xor edx, 0xf5f13623
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0x2404d4f6
or eax, ecx
mov ecx, 0x75f0dde9
xor ecx, 0x51f4091f
or ecx, edx
xor eax, 0xffffffff
and eax, ecx
mov ecx, 0xa783067d
xor ecx, 0xd905bc7b
movabs r8, 0x4b3ce11ceb7e862f
movabs rdx, 0x4b3ce11ceb7e862e
xor r8, rdx
mov rdx, r9
add rdx, r8
mov qword [rbp - 0x70], rdx
xor r9, 0xffffffffffffffff
or rdx, rdx
xor rdx, 0xffffffffffffffff
mov r8, r9
xor r8, 0xffffffffffffffff
movabs r10, 0x3136ed13827e3cc
movabs r11, 0xfcec912ec7d81c33
xor r10, r11
xor r9, r10
and r8, r9
xor rdx, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
and rdx, r8
movabs r8, 0x9ee6eedc1decc272
movabs r9, 0x9ee6eedc1decc272
xor r8, r9
cmp rdx, r8
setl dl
mov byte [rbp - 0x61], dl
cmp eax, ecx
jbe 0x140048019
mov al, byte [rbp - 0x61]
test al, 1
jne 0x140047eca
jmp 0x140047edc
sub rsp, 0x20
call fcn.14000f24b
add rsp, 0x20
jmp 0x140047ff8
mov eax, dword [0x1402743e8]
mov edx, dword [str.Je_]
xor edx, 0x658530cb
mov ecx, eax
xor ecx, 0xffffffff
mov r8d, edx
xor r8d, 0xffffffff
or ecx, r8d
mov r8d, 0x86db462b
xor r8d, 0x7924b9d4
xor eax, r8d
mov r8d, 0x42524d9a
xor r8d, 0xbdadb265
xor edx, r8d
or eax, edx
mov edx, 0x8e2d00f4
xor edx, 0x71d2ff0b
xor ecx, edx
xor eax, 0xffffffff
or ecx, eax
mov edx, 0x6d800a29
xor edx, 0x927ff5d6
mov eax, ecx
xor eax, edx
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0xffffffff
xor ecx, 0xf6e54e5b
mov edx, 0xffffffff
xor edx, 0xf6e54e5b
or ecx, edx
mov edx, 0x8c3cca36
xor edx, 0x73c335c9
xor eax, edx
xor ecx, 0xffffffff
or eax, ecx
and eax, 0xf1b9d9fe
imul eax, eax, 0x7bdffa65
cmp eax, 0xf9562fbe
jae 0x140048022
mov rcx, qword [rbp - 0x70]
mov eax, dword [0x1402743f0]
mov edx, dword [0x1402743f4]
xor edx, 0xb9887fa5
xor eax, edx
mov r8d, 0x869b4f64
xor edx, edx
div r8d
mov rdx, qword [rbp - 8]
add eax, 0xc7b791bc
mov r8d, 0x5b86933b
mov eax, 0x5b86933b
xor r8d, 0xd2eb8e48
sub eax, r8d
sub eax, 0xc7b791bc
add eax, 0x2ba1293f
cmp rcx, rdx
sete cl
mov byte [rbp - 0x71], cl
cmp eax, 0xd12310e2
jae 0x140048022
mov rax, qword [rbp - 0x70]
mov cl, byte [rbp - 0x71]
test cl, 1
mov qword [rbp - 0x48], rax
jne 0x140047ed7
jmp 0x140047c16
lea rsp, [rbp + 0x10]
pop rbp
ret
lahf
jns 0x140047fb2
jmp 0x140047a2f
nop
sub al, 0xed
jmp 0x140047b5a
sub eax, 0xfc44e9b3
invalid
lea r14, [r14 + rdx*8 - 0x17]
lodsd eax, dword [rsi]
std
invalid
out 0x16, eax
xchg edi, eax
lodsd eax, dword [rsi]
jmp 0x140047f85
sub rsp, 0x38
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rcx
xor eax, eax
mov edx, eax
call fcn.1400476dd
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
add rsp, 0x38
jmp 0x1400478c0