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

Disassembly:
push rbp
sub rsp, 0x160
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0xd0], xmm8
movaps xmmword [rbp + 0xc0], xmm7
movaps xmmword [rbp + 0xb0], xmm6
mov qword [rbp + 0xa0], rdx
mov qword [rbp + 0xa8], rcx
mov ecx, dword [0x140273c08]
mov edx, dword [0x140273c0c]
xor edx, 0xffffffff
mov eax, ecx
xor eax, edx
and eax, ecx
mov ecx, 0xc0f74285
xor ecx, 0xc0f74285
sub ecx, eax
mov eax, 0xf64f368f
xor eax, 0xf64f368f
mov edx, 0x7eb2d81c
xor edx, 0xdc785e5e
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
and eax, 0x75ea7269
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xa1dbaaa
mov ecx, 0xffffffff
xor ecx, 0x8e13629d
or eax, edx
or ecx, 0x8e13629d
xor eax, 0xffffffff
and eax, ecx
cmp eax, 0xea70d19f
je 0x14003a68e
mov edx, dword [0x140273c10]
mov eax, dword [0x140273c14]
mov ecx, eax
mov eax, edx
lea ecx, [rax + rcx - 0x3ecb17fc]
mov eax, ecx
xor eax, 0x563dca2f
and eax, ecx
add eax, 0xc7dcf06f
mov dword [rbp + 0x84], eax
mov eax, 0x30
call fcn.140271bb0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x78], rax
mov ecx, dword [0x1402980b0]
sub rsp, 0x20
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rbp + 0xa8]
mov rdx, qword [rbp + 0xa0]
add rsp, 0x20
mov r8, rax
mov eax, dword [rbp + 0x84]
add r8, 0x60
mov qword [rbp + 0x88], r8
mov rcx, qword [rcx]
mov qword [rbp + 0x90], rcx
cmp rcx, rdx
setg cl
mov byte [rbp + 0x9f], cl
cmp eax, 0x962e2bf1
ja 0x140039af9
mov al, byte [rbp + 0x9f]
test al, 1
jne 0x140039ba2
jmp 0x140039c7c
mov eax, dword [0x140273c18]
xor eax, 0x6270daf
mov ecx, dword [0x140273c1c]
mov edx, 0xa817ef93
xor edx, 0xc6673bac
sub eax, edx
add eax, ecx
mov ecx, 0x692a0573
xor ecx, 0x75ad14c
add eax, ecx
and eax, 0x22d8a13e
mov edx, eax
xor edx, 0xffffffff
and edx, 0x157f3737
mov r8d, 0xffffffff
xor r8d, 0x157f3737
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x157f3737
or eax, 0x157f3737
imul eax, edx
add eax, ecx
mov ecx, 0xf88ac9e1
xor edx, edx
div ecx
cmp eax, 0xd4ef71f3
ja 0x14003a697
mov rdx, qword [rbp + 0xa0]
mov rcx, qword [rbp + 0xa8]
mov eax, dword [0x140273c20]
add eax, dword [0x140273c24]
add eax, 0xacfca32c
mov r8d, 0xac54f58b
xor r8d, 0xc2725b68
xor eax, r8d
mov r8d, 0xa6dd5d34
xor r8d, 0x590d849
or eax, r8d
mov dword [rbp + 0x74], eax
sub rsp, 0x20
call fcn.1400398b4
mov eax, dword [rbp + 0x74]
add rsp, 0x20
cmp eax, 0xe378d81
jbe 0x14003a697
jmp 0x14003a5e7
mov rax, qword [rbp + 0x90]
mov rcx, qword [rbp + 0xa0]
cmp rax, rcx
jge 0x14003a5e7
mov rax, qword [rbp + 0xa8]
mov rcx, rax
add rcx, 8
mov qword [rbp + 0x60], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x68], rax
cmp rax, 0
je 0x140039ce8
mov rcx, qword [rbp + 0xa0]
mov rax, qword [rbp + 0x68]
mov rax, qword [rax]
movabs rdx, 0x27b0c8cb9ea5d311
movabs r8, 0x984f3734615a2cee
xor rdx, r8
and rax, rdx
cmp rax, rcx
jge 0x140039f22
mov eax, dword [0x140273c28]
xor eax, 0xc220bf1e
xor eax, dword [0x140273c2c]
sub eax, 0xa138abfd
add eax, 0x8618d767
add eax, 0xa138abfd
mov ecx, 0xb346b6be
xor ecx, 0x336de40b
imul eax, ecx
mov ecx, 0xb1916aa1
xor edx, edx
div ecx
cmp eax, 0x74542077
je 0x14003a6a0
mov r8, qword [rbp + 0x90]
mov r9, qword [rbp + 0xa0]
mov eax, dword [0x140273c30]
mov r10d, dword [0x140273c34]
mov edx, 0x5664ce65
xor edx, 0xa99b319a
mov ecx, eax
xor ecx, edx
mov edx, r10d
and edx, ecx
mov ecx, 0x49e93564
xor ecx, 0xb616ca9b
mov r11d, r10d
xor r11d, ecx
mov ecx, eax
and ecx, r11d
imul ecx, edx
mov edx, eax
and edx, r10d
or eax, r10d
imul eax, edx
add eax, ecx
add eax, 0xd76b0776
mov ecx, 0xe0f3b922
xor ecx, 0xbfe752d4
add eax, ecx
mov ecx, 0x8efdec7
xor edx, edx
div ecx
mov rdx, r9
sub rdx, r8
mov qword [rbp + 0x50], rdx
mov rcx, rdx
xor rcx, r9
cmp rcx, 0
setl cl
xor rdx, r8
movabs r8, 0x55eea058bad59c4d
movabs r9, 0xaa115fa7452a63b2
xor r8, r9
cmp rdx, r8
setg dl
and cl, dl
mov byte [rbp + 0x5f], cl
cmp eax, 0x42a3d009
je 0x14003a6a0
mov al, byte [rbp + 0x5f]
test al, 1
jne 0x140039f10
jmp 0x140039df1
mov ecx, dword [0x140273c38]
mov edx, dword [0x140273c3c]
mov eax, ecx
and eax, edx
mov r8d, 0x37b4c9a4
xor r8d, 0xc84b365b
xor eax, r8d
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and eax, ecx
mov ecx, 0x1c1db103
xor ecx, 0xe3e24efc
xor eax, ecx
imul eax, eax, 0xf3523968
mov ecx, 0x14402227
xor edx, edx
div ecx
mov ecx, 0x1144b10b
xor edx, edx
div ecx
cmp eax, 0xba4d6aa4
je 0x14003a6a9
mov r8, qword [rbp + 0x50]
mov rcx, qword [rbp + 0x90]
mov eax, dword [0x140273c40]
mov r9d, dword [0x140273c44]
mov edx, 0x93596ff5
xor edx, 0x744bcd93
xor r9d, edx
xor edx, edx
div r9d
mov edx, 0x31a8ab2e
xor edx, 0xce5754d1
mov r9d, eax
xor r9d, edx
and r9d, 0x3f941812
mov r10d, 0xffffffff
xor r10d, 0x3f941812
mov edx, eax
and edx, r10d
imul edx, r9d
mov r9d, eax
and r9d, 0x3f941812
or eax, 0x3f941812
imul eax, r9d
add eax, edx
mov r9d, 0x313bb07f
xor r9d, 0x73404cfe
xor edx, edx
div r9d
mov rdx, qword [rbp + 0x68]
add eax, 0x53fad38d
mov dword [rbp + 0x4c], eax
mov r9d, 0x28
sub rsp, 0x30
mov qword [rsp + 0x20], 8
call fcn.1400265f0
mov rcx, qword [rbp + 0x60]
add rsp, 0x30
mov rdx, rax
mov eax, dword [rbp + 0x4c]
mov qword [rcx], rdx
cmp eax, 0x49e54375
je 0x140039e4b
jmp 0x140039f22
sub rsp, 0x20
call fcn.14000f24b
add rsp, 0x20
jmp 0x14003a5e7
mov rax, qword [rbp + 0x90]
mov rcx, qword [rbp + 0xa8]
mov rdx, qword [rbp + 0xa0]
mov qword [rcx], rdx
mov qword [rbp + 0x40], rax
mov rax, qword [rbp + 0x40]
mov qword [rbp - 0x10], rax
mov ecx, dword [0x1402980b0]
sub rsp, 0x20
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
add rsp, 0x20
movaps xmm0, xmmword [0x140281c40]
movaps xmm1, xmmword [0x140281c50]
movaps xmm2, xmmword [0x140281c60]
movaps xmm3, xmmword [0x140281c70]
xor eax, eax
mov qword [rbp - 8], rax
movaps xmmword [rbp], xmm3
movaps xmmword [rbp + 0x10], xmm2
movaps xmmword [rbp + 0x20], xmm1
movaps xmmword [rbp + 0x30], xmm0
jmp 0x140039f94
mov rax, qword [rbp - 8]
movaps xmm2, xmmword [rbp]
movaps xmm7, xmmword [rbp + 0x10]
movaps xmm8, xmmword [rbp + 0x20]
movaps xmm5, xmmword [rbp + 0x30]
movaps xmmword [rbp - 0x70], xmm5
movaps xmmword [rbp - 0x60], xmm8
movaps xmmword [rbp - 0x50], xmm7
movaps xmmword [rbp - 0x40], xmm2
mov qword [rbp - 0x28], rax
movaps xmm6, xmmword [0x140281c80]
pxor xmm2, xmm6
pshufd xmm1, xmm2, 0xf5
movaps xmm3, xmmword [0x140281c80]
movaps xmm0, xmm3
pcmpeqd xmm0, xmm1
movaps xmm4, xmmword [0x140281c90]
movaps xmm1, xmm4
pcmpgtd xmm1, xmm2
pshufd xmm2, xmm1, 0xa0
pand xmm0, xmm2
pshufd xmm1, xmm1, 0xf5
por xmm0, xmm1
pxor xmm7, xmm6
pshufd xmm1, xmm7, 0xf5
movaps xmm2, xmm3
pcmpeqd xmm2, xmm1
movaps xmm1, xmm4
pcmpgtd xmm1, xmm7
pshufd xmm7, xmm1, 0xa0
pand xmm2, xmm7
pshufd xmm1, xmm1, 0xf5
por xmm2, xmm1
movaps xmm1, xmm0
packssdw xmm1, xmm2
pxor xmm8, xmm6
pshufd xmm7, xmm8, 0xf5
movaps xmm2, xmm3
pcmpeqd xmm2, xmm7
movaps xmm7, xmm4
pcmpgtd xmm7, xmm8
pshufd xmm8, xmm7, 0xa0
pand xmm2, xmm8
pshufd xmm7, xmm7, 0xf5
por xmm2, xmm7
pxor xmm5, xmm6
pshufd xmm6, xmm5, 0xf5
pcmpeqd xmm3, xmm6
pcmpgtd xmm4, xmm5
pshufd xmm5, xmm4, 0xa0
pand xmm3, xmm5
pshufd xmm4, xmm4, 0xf5
por xmm3, xmm4
packssdw xmm2, xmm3
packssdw xmm1, xmm2
movaps xmmword [rbp - 0x20], xmm1
movd eax, xmm0
test al, 1
jne 0x14003a09a
jmp 0x14003a137
mov eax, dword [0x140273c48]
and eax, dword [0x140273c4c]
and eax, 0xef59bc2e
mov ecx, 0x205acf99
xor ecx, 0x4ca9b119
xor edx, edx
div ecx
mov ecx, 0x3954f23d
xor ecx, 0x575a8eab
imul eax, ecx
cmp eax, 0x42cc7ba
je 0x14003a6b2
mov rcx, qword [rbp + 0x78]
mov eax, dword [0x140273c50]
mov r8d, dword [0x140273c54]
mov edx, r8d
and edx, eax
xor edx, 0xffffffff
add eax, r8d
add eax, 1
add eax, edx
imul eax, eax, 0xb2211cc8
mov edx, eax
add edx, 1
xor eax, 0xffffffff
mov r8d, 0x3edc3fc0
xor r8d, 0xcf191813
or eax, r8d
add eax, edx
mov r8d, 0x6753e997
xor edx, edx
div r8d
mov rdx, qword [rbp - 0x28]
mov byte [rcx + rdx], 0
cmp eax, 0xfa40ab22
je 0x14003a6b2
jmp 0x14003a137
movaps xmm0, xmmword [rbp - 0x20]
movd eax, xmm0
shr eax, 0x10
test al, 1
jne 0x14003a14f
jmp 0x14003a179
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp - 0x28]
movabs rdx, 0x17d56a257f25f5c1
movabs r8, 0x17d56a257f25f5c0
xor rdx, r8
or rcx, rdx
mov dl, 0x2c
xor dl, 0x2c
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rbp - 0x20]
pextrw eax, xmm0, 2
test al, 1
jne 0x14003a18f
jmp 0x14003a1a9
mov rax, qword [rbp + 0x78]
mov rdx, qword [rbp - 0x28]
mov rcx, rdx
and rcx, 2
xor rdx, 2
or rcx, rdx
mov byte [rax + rcx], 0
movaps xmm0, xmmword [rbp - 0x20]
pextrw eax, xmm0, 3
test al, 1
jne 0x14003a1bf
jmp 0x14003a213
mov rax, qword [rbp + 0x78]
mov rdx, qword [rbp - 0x28]
movabs r8, 0xca20bdc003af0659
movabs rcx, 0x35df423ffc50f9a6
xor r8, rcx
mov rcx, rdx
xor rcx, r8
xor rdx, 0xffffffffffffffff
or rcx, rdx
mov rdx, 0xffffffffffffffff
xor rdx, 3
mov r8, 0xffffffffffffffff
xor r8, 3
or rdx, r8
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
or rcx, rdx
mov byte [rax + rcx], 0
movaps xmm0, xmmword [rbp - 0x20]
pextrw eax, xmm0, 4
test al, 1
jne 0x14003a229
jmp 0x14003a23d
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp - 0x28]
or rcx, 4
mov dl, 0xba
xor dl, 0xba
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rbp - 0x20]
pextrw eax, xmm0, 5
test al, 1
jne 0x14003a253
jmp 0x14003a271
mov rax, qword [rbp + 0x78]
mov rdx, qword [rbp - 0x28]
mov rcx, rdx
and rcx, 5
xor rdx, 5
or rcx, rdx
mov dl, 0xce
xor dl, 0xce
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rbp - 0x20]
pextrw eax, xmm0, 6
test al, 1
jne 0x14003a287
jmp 0x14003a29b
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp - 0x28]
or rcx, 6
mov dl, 0x93
xor dl, 0x93
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rbp - 0x20]
pextrw eax, xmm0, 7
test al, 1
jne 0x14003a2b1
jmp 0x14003a383
mov ecx, dword [0x140273c58]
mov edx, dword [0x140273c5c]
mov eax, ecx
and eax, edx
mov r8d, 0x935cdfb4
xor r8d, 0x6ca3204b
xor eax, r8d
mov r8d, 0x9f9ccd9c
xor r8d, 0x60633263
xor ecx, r8d
xor edx, 0xffffffff
or ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
xor ecx, ecx
sub ecx, 0x84f8d6a6
sub eax, ecx
xor eax, 0xadba1f08
mov ecx, 0x414fd381
xor ecx, 0x842d659
or eax, ecx
cmp eax, 0x15767f25
jbe 0x14003a6bb
mov rcx, qword [rbp + 0x78]
mov eax, dword [0x140273c60]
mov r8d, dword [0x140273c64]
mov edx, 0x7ee7d308
xor edx, 0x4d3bf73d
xor r8d, edx
mov r9d, eax
xor r9d, r8d
xor r9d, 0xffffffff
mov edx, r8d
and edx, r9d
shl edx, 1
sub edx, r8d
sub eax, edx
add eax, 0xa92ee654
mov r8d, 0xbf288941
xor edx, edx
div r8d
mov r8d, 0xd57b1300
xor edx, edx
div r8d
mov rdx, qword [rbp - 0x28]
or rdx, 7
mov byte [rcx + rdx], 0
cmp eax, 0x5aea794b
jae 0x14003a315
jmp 0x14003a383
movaps xmm0, xmmword [rbp - 0x70]
movaps xmm1, xmmword [rbp - 0x60]
movaps xmm2, xmmword [rbp - 0x50]
movaps xmm3, xmmword [rbp - 0x40]
mov rax, qword [rbp - 0x28]
add rax, 8
movaps xmm4, xmmword [0x140281ca0]
paddq xmm3, xmm4
paddq xmm2, xmm4
paddq xmm1, xmm4
paddq xmm0, xmm4
mov rcx, rax
sub rcx, 0x28
mov qword [rbp - 8], rax
movaps xmmword [rbp], xmm3
movaps xmmword [rbp + 0x10], xmm2
movaps xmmword [rbp + 0x20], xmm1
movaps xmmword [rbp + 0x30], xmm0
jne 0x140039f94
jmp 0x14003a3d8
mov eax, dword [0x140273c68]
imul eax, dword [0x140273c6c]
or eax, 0x487537fb
sub eax, 0x8533504d
mov ecx, 0xe8fc7aee
xor edx, edx
div ecx
cmp eax, 0x2c124057
ja 0x14003a6c4
mov rcx, qword [rbp + 0x60]
mov eax, dword [0x140273c70]
mov edx, dword [0x140273c74]
mov r8d, 0xdf2aa37d
xor r8d, 0x46523d60
xor edx, r8d
or eax, edx
mov edx, eax
xor edx, 0xffffffff
mov r8d, 0x175ba6c4
xor r8d, 0x74f3c31e
and r8d, edx
mov r9d, 0xffffffff
xor r9d, 0x63a865da
mov edx, eax
and edx, r9d
imul edx, r8d
mov r8d, eax
and r8d, 0x63a865da
or eax, 0x63a865da
imul eax, r8d
add eax, edx
mov edx, 0x969bb556
xor edx, 0x2e8aaef2
mov r8d, 0x58f3f5fe
xor r8d, 0xa70c0a01
xor edx, r8d
add eax, edx
add eax, 1
mov r8d, 0x33ac995
xor edx, edx
div r8d
mov rdx, qword [rbp + 0x78]
mov r8d, eax
mov rax, qword [rbp - 0x10]
mov dword [rbp - 0x78], r8d
mov rcx, qword [rcx]
add rcx, 8
imul rax, rax, 0x28
add rcx, rax
sub rsp, 0x20
call fcn.140076bc0
mov rcx, qword [rbp + 0x88]
mov eax, dword [rbp - 0x78]
add rsp, 0x20
mov cl, byte [rcx]
mov dl, 0xea
xor dl, 0xea
cmp cl, dl
sete cl
mov byte [rbp - 0x71], cl
cmp eax, 0x64fc3f14
ja 0x14003a403
mov al, byte [rbp - 0x71]
test al, 1
jne 0x14003a4ee
jmp 0x14003a5c5
mov rcx, qword [rbp - 0x10]
xor eax, eax
mov edx, eax
sub rdx, 1
mov rax, rcx
sub rax, rdx
mov qword [rbp - 0x80], rax
mov rdx, rcx
or rdx, rdx
xor rdx, 0xffffffffffffffff
movabs r8, 0x7da29a9ea6f0527e
movabs r9, 0x825d6561590fad81
xor r8, r9
movabs r9, 0xa86eff3df19de476
movabs r10, 0x579100c20e621b89
xor r9, r10
xor r8, r9
mov r9, 0xffffffffffffffff
xor r9, 0xffffffffffffffff
and r8, r9
or rdx, r8
xor rdx, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
mov r8, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
and rcx, r8
xor rdx, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
and rdx, rcx
movabs r8, 0x22a7d6ced63b48c9
movabs rcx, 0x22a7d6ced63b48c8
xor r8, rcx
mov rcx, rax
add rcx, r8
xor rax, 0xffffffffffffffff
or rax, rdx
add rax, rcx
movabs rcx, 0x6643153d720bae21
movabs rdx, 0x6643153d720bae21
xor rcx, rdx
cmp rax, rcx
jge 0x14003a5ca
sub rsp, 0x20
call fcn.14000f24b
add rsp, 0x20
jmp 0x14003a5e7
mov rax, qword [rbp - 0x80]
mov rcx, qword [rbp + 0xa0]
cmp rax, rcx
mov qword [rbp + 0x40], rax
je 0x14003a5c5
jmp 0x140039f3e
mov eax, dword [0x140273c78]
mov edx, dword [0x140273c7c]
xor edx, 0xd08fd603
mov ecx, eax
and ecx, edx
shl ecx, 1
add eax, edx
sub eax, ecx
sub eax, 0xde34b6f6
or eax, 0xbb2aff24
mov ecx, 0x45828169
xor edx, edx
div ecx
cmp eax, 0x2b2eddf2
je 0x14003a6cd
mov eax, dword [0x140273c80]
xor eax, 0x8d067b60
mov edx, dword [0x140273c84]
xor edx, 0x43d83afe
xor ecx, ecx
sub ecx, edx
sub eax, ecx
mov ecx, 0x62e9cbf4
xor ecx, 0xb33d0b27
imul eax, ecx
xor ecx, ecx
sub ecx, 0x76742e5a
sub eax, ecx
mov ecx, 0xe442213f
xor ecx, 0xb0b5ae2d
xor eax, ecx
cmp eax, 0x1e07e74f
jb 0x14003a622
movaps xmm6, xmmword [rbp + 0xb0]
movaps xmm7, xmmword [rbp + 0xc0]
movaps xmm8, xmmword [rbp + 0xd0]
lea rsp, [rbp + 0xe0]
pop rbp
ret
push rdi
ret
invalid
xor eax, 0xe9e8d49b
jp 0x14003a693
invalid
invalid
jle 0x14003a64a
invalid
jl 0x14003a731
or ah, byte [rdx]
jmp 0x14003a0d3
invalid
in eax, 0x70
mov ebx, 0xfd36e964
invalid
shr byte [rsi + 0x1e], 0xf6
jmp 0x14003a622
sub rsp, 0x38
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rcx
xor eax, eax
mov edx, eax
call fcn.1400398b4
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
add rsp, 0x38
jmp 0x140039a50
add byte [rax], al
add byte [rax], al
add byte [rax + 0x48], al
and eax, dword [rcx]