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

Disassembly:
push rsi
sub rsp, 0x200
movaps xmmword [rsp + 0x1f0], xmm8
movaps xmmword [rsp + 0x1e0], xmm7
movaps xmmword [rsp + 0x1d0], xmm6
mov qword [rsp + 0x190], rdx
mov qword [rsp + 0x188], rcx
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0x188]
mov rdx, qword [rsp + 0x190]
add rax, 0x60
mov qword [rsp + 0x198], rax
mov rax, qword [rcx]
mov qword [rsp + 0x1a0], rax
cmp rax, rdx
jle 0x14004a357
mov rdx, qword [rsp + 0x190]
mov rcx, qword [rsp + 0x188]
call fcn.14004a0b0
jmp 0x14004af5d
mov rax, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x190]
cmp rax, rcx
jge 0x14004af5d
mov eax, dword [0x1402a9ff8]
mov edx, dword [0x1402a9ffc]
xor edx, 0x14ff65da
mov r8d, eax
xor r8d, edx
xor r8d, 0xffffffff
mov ecx, edx
and ecx, r8d
shl ecx, 1
sub ecx, edx
sub eax, ecx
sub eax, 0xd53d6e45
sub eax, 0x3dadca19
add eax, 0x77fc563b
cmp eax, 0xec5ad543
ja 0x14004af7f
mov rcx, qword [rsp + 0x188]
mov eax, dword [0x1402aa000]
sub eax, dword [0x1402aa004]
add eax, 0x94142b33
mov edx, 0x771d9ea
xor edx, 0x7a427f09
add eax, edx
sub eax, 0x94142b33
mov r8d, 0xe49177de
xor edx, edx
div r8d
mov edx, eax
mov eax, edx
and eax, 0xc4b1f990
or edx, 0xc4b1f990
add eax, edx
mov rdx, rcx
add rdx, 8
mov qword [rsp + 0x170], rdx
mov rcx, qword [rcx + 8]
mov qword [rsp + 0x178], rcx
cmp rcx, 0
sete cl
mov byte [rsp + 0x187], cl
cmp eax, 0x650e7c4
jb 0x14004a3b2
mov al, byte [rsp + 0x187]
test al, 1
jne 0x14004a5d4
jmp 0x14004a441
mov ecx, dword [0x1402aa008]
mov edx, dword [0x1402aa00c]
and ecx, ecx
xor ecx, 0xffffffff
mov eax, edx
xor eax, 0xffffffff
xor edx, 0xffffffff
or eax, edx
mov edx, 0x2dbfd08
xor edx, 0xfd2402f7
xor ecx, edx
xor eax, 0xffffffff
or ecx, eax
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0x246ae74c
or ecx, 0x246ae74c
mov edx, 0xc8f747aa
xor edx, 0x3708b855
xor ecx, edx
or eax, ecx
xor eax, 0xffffffff
mov ecx, 0xff539831
xor edx, edx
div ecx
sub eax, 0xc2290cf1
cmp eax, 0x5571b96d
jae 0x14004af88
mov rcx, qword [rsp + 0x178]
mov eax, dword [0x1402aa010]
xor eax, 0x92acaeb6
xor edx, edx
div dword [0x1402aa014]
mov rdx, qword [rsp + 0x190]
mov r8d, eax
mov eax, r8d
xor eax, 0xffffffff
mov r9d, 0x78b913bf
xor r9d, 0x984a5da1
and r9d, eax
mov r10d, 0xffffffff
xor r10d, 0xe0f34e1e
mov eax, r8d
and eax, r10d
imul eax, r9d
mov r9d, r8d
and r9d, 0xe0f34e1e
or r8d, 0xe0f34e1e
imul r8d, r9d
add r8d, eax
add r8d, 0x8d2341b2
mov r9d, 0x53a94227
xor r9d, 0x1f66a98a
mov eax, r8d
and eax, r9d
xor eax, 0xffffffff
xor r8d, 0xffffffff
mov r9d, 0xdec63f18
xor r9d, 0x9209d4b5
mov r10d, 0xd82418de
xor r10d, 0x27dbe721
xor r9d, r10d
or r8d, r9d
mov r9d, 0x562e3db4
xor r9d, 0xa9d1c24b
xor eax, r9d
xor r8d, 0xffffffff
or eax, r8d
mov r8, qword [rcx]
mov rcx, r8
xor rcx, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
and rcx, r8
movabs r8, 0xbfffffffffffffff
movabs r9, 0xbfffffffffffffff
or r8, r9
xor r8, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
and rcx, r8
cmp rcx, rdx
setl cl
mov byte [rsp + 0x16f], cl
cmp eax, 0xe4692af4
je 0x14004a4ae
mov al, byte [rsp + 0x16f]
test al, 1
jne 0x14004a5d4
jmp 0x14004a725
mov r8, qword [rsp + 0x1a0]
mov r9, qword [rsp + 0x190]
mov rdx, r9
sub rdx, r8
mov qword [rsp + 0x160], rdx
mov rax, rdx
xor rax, 0xffffffffffffffff
movabs rcx, 0x92ee9edc00ae186a
and rax, rcx
movabs r11, 0x1114b8b818c809e2
movabs rcx, 0x83fa266418661188
xor r11, rcx
movabs rcx, 0x2a431aaf87d80413
movabs r10, 0xd5bce5507827fbec
xor rcx, r10
xor r11, rcx
mov r10, rdx
and r10, r11
mov rcx, r9
xor rcx, 0xffffffffffffffff
movabs rsi, 0x92ee9edc00ae186a
and rcx, rsi
and r9, r11
or rax, r10
or rcx, r9
xor rax, rcx
movabs rcx, 0x5060b259c89ea75c
movabs r9, 0x5060b259c89ea75c
xor rcx, r9
cmp rax, rcx
setl al
mov r9, rdx
xor r9, 0xffffffffffffffff
mov rcx, r8
and rcx, r9
movabs r9, 0x45e1b93447aefad
movabs r10, 0xfba1e46cbb851052
xor r9, r10
xor r8, r9
and rdx, r8
or rcx, rdx
cmp rcx, 0xffffffffffffffff
setg cl
and al, cl
test al, 1
jne 0x14004a71b
mov r8, qword [rsp + 0x160]
mov rdx, qword [rsp + 0x178]
mov rcx, qword [rsp + 0x1a0]
movabs r9, 0x54db5f885505112b
movabs rax, 0x54db5f8855051103
xor r9, rax
movabs rax, 0xbf9a6f3ddce3fd3e
movabs r10, 0xbf9a6f3ddce3fd36
xor rax, r10
mov qword [rsp + 0x20], rax
call fcn.140023a90
mov rcx, rax
mov rax, qword [rsp + 0x170]
mov qword [rax], rcx
jmp 0x14004a725
call fcn.14000ee80
jmp 0x14004af5d
mov rax, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x188]
mov rdx, qword [rsp + 0x190]
mov qword [rcx], rdx
mov qword [rsp + 0x158], rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x150], rax
mov eax, dword [0x1402aa018]
add eax, dword [0x1402aa01c]
or eax, 0x8e5cb3a
mov ecx, 0x29de9e1
xor ecx, 0xcd8d2ba2
and eax, ecx
mov ecx, 0x30e93bbe
xor ecx, 0x80f22c31
xor edx, edx
div ecx
mov ecx, 0xcfa8b0b6
xor ecx, 0xdff849fd
cmp eax, ecx
jae 0x14004af91
mov eax, dword [0x1402aa020]
xor eax, 0xcfc61cd9
xor edx, edx
div dword [0x1402aa024]
sub eax, 0x533a0cd2
and eax, eax
mov ecx, 0xa9df7f13
xor ecx, 0x562080ec
xor eax, ecx
mov ecx, 0x3ffc82fb
xor ecx, 0xccb81cb
mov edx, 0x36f48531
xor edx, 0x5c38601
and ecx, edx
xor ecx, 0xffffffff
mov edx, 0x4d7ad653
xor edx, 0xb28529ac
xor eax, edx
xor ecx, 0xffffffff
or eax, ecx
add eax, 0x104af534
mov dword [rsp + 0x14c], eax
mov eax, 0xba8e9830
xor eax, 0x5edc5ea4
mov dword [rsp + 0x148], eax
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [rsp + 0x148]
mov eax, dword [rsp + 0x14c]
cmp eax, ecx
je 0x14004a798
movaps xmm0, xmmword [0x1402bad20]
movaps xmm1, xmmword [0x1402bad30]
movaps xmm2, xmmword [0x1402bad40]
movaps xmm3, xmmword [0x1402bad50]
xor eax, eax
mov qword [rsp + 0xf8], rax
movaps xmmword [rsp + 0x100], xmm3
movaps xmmword [rsp + 0x110], xmm2
movaps xmmword [rsp + 0x120], xmm1
movaps xmmword [rsp + 0x130], xmm0
jmp 0x14004a876
mov rax, qword [rsp + 0xf8]
movaps xmm2, xmmword [rsp + 0x100]
movaps xmm7, xmmword [rsp + 0x110]
movaps xmm8, xmmword [rsp + 0x120]
movaps xmm5, xmmword [rsp + 0x130]
movaps xmmword [rsp + 0x90], xmm5
movaps xmmword [rsp + 0xa0], xmm8
movaps xmmword [rsp + 0xb0], xmm7
movaps xmmword [rsp + 0xc0], xmm2
mov qword [rsp + 0xd8], rax
movaps xmm6, xmmword [0x1402bad60]
pxor xmm2, xmm6
pshufd xmm1, xmm2, 0xf5
movaps xmm3, xmmword [0x1402bad60]
movaps xmm0, xmm3
pcmpeqd xmm0, xmm1
movaps xmm4, xmmword [0x1402bad70]
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 [rsp + 0xe0], xmm1
movd eax, xmm0
test al, 1
jne 0x14004a9a8
jmp 0x14004ab0b
mov ecx, dword [0x1402aa028]
xor ecx, 0x1aa63cd2
mov edx, dword [0x1402aa02c]
xor edx, 0x88ea0200
mov eax, ecx
and eax, edx
xor eax, 0xffffffff
and ecx, edx
xor ecx, 0xffffffff
mov edx, 0xb88348a5
xor edx, 0x477cb75a
xor eax, edx
mov edx, 0x48f293c0
xor edx, 0xb70d6c3f
xor ecx, edx
or eax, ecx
mov ecx, 0xf941e430
xor ecx, 0xf941e430
mov edx, 0x3228ec43
xor edx, 0xe2bc2651
sub ecx, edx
sub eax, ecx
mov edx, 0x3792a2bb
xor edx, 0x528f218f
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
or eax, 0x651d8334
and eax, ecx
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0x9d37b1ab
add ecx, eax
xor eax, eax
sub eax, ecx
mov ecx, 0x3dbd2ee7
xor ecx, 0xff266b66
cmp eax, ecx
jb 0x14004af9a
mov rcx, qword [rsp + 0xd8]
mov eax, dword [0x1402aa030]
xor eax, 0x7bf4d389
mov edx, dword [0x1402aa034]
xor edx, 0x33a3151e
add eax, edx
mov r8d, 0x946a81f3
xor r8d, 0x65fb8a25
mov edx, eax
and edx, r8d
xor eax, 0xf1910bd6
or edx, eax
mov eax, edx
xor eax, 0xffffffff
xor edx, 0xffffffff
and eax, edx
mov edx, 0xffffffff
xor edx, 0x19d93359
mov r8d, 0x6205463
xor r8d, 0x1ff9673a
mov r9d, 0x83905e04
xor r9d, 0x7c6fa1fb
xor r8d, r9d
and edx, r8d
xor eax, 0xffffffff
xor edx, 0xffffffff
and eax, edx
mov r9d, 0xffffffff
xor r9d, 0xb502861d
mov r8d, eax
and r8d, r9d
mov edx, eax
or edx, r9d
xor edx, 0xffffffff
imul edx, r8d
mov r9d, 0xa38a10ed
xor r9d, 0x168896f0
mov r8d, eax
and r8d, r9d
or eax, 0xb502861d
imul eax, r8d
add eax, edx
mov byte [rsp + rcx + 0x1a8], 0
cmp eax, 0xc7a591d
je 0x14004aa3f
jmp 0x14004ab0b
movaps xmm0, xmmword [rsp + 0xe0]
movd eax, xmm0
shr eax, 0x10
test al, 1
jne 0x14004ab27
jmp 0x14004ab55
mov rax, qword [rsp + 0xd8]
movabs rcx, 0xe8c8a51ce712dc1d
movabs rdx, 0xe8c8a51ce712dc1c
xor rcx, rdx
or rax, rcx
mov cl, 0x8b
xor cl, 0x8b
mov byte [rsp + rax + 0x1a8], cl
movaps xmm0, xmmword [rsp + 0xe0]
pextrw eax, xmm0, 2
test al, 1
jne 0x14004ab6f
jmp 0x14004ab99
mov rax, qword [rsp + 0xd8]
mov rcx, rax
and rcx, 2
xor rcx, 0xffffffffffffffff
add rax, 2
add rax, 1
add rax, rcx
mov cl, 0x97
xor cl, 0x97
mov byte [rsp + rax + 0x1a8], cl
movaps xmm0, xmmword [rsp + 0xe0]
pextrw eax, xmm0, 3
test al, 1
jne 0x14004abb3
jmp 0x14004abe7
mov rcx, qword [rsp + 0xd8]
mov rax, rcx
or rax, 3
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
xor rdx, 3
and rcx, rdx
or rax, rcx
xor rax, 0xffffffffffffffff
mov byte [rsp + rax + 0x1a8], 0
movaps xmm0, xmmword [rsp + 0xe0]
pextrw eax, xmm0, 4
test al, 1
jne 0x14004ac01
jmp 0x14004ac34
mov rax, qword [rsp + 0xd8]
and rax, rax
xor rax, 0xffffffffffffffff
mov ecx, 4
and rcx, 4
xor rcx, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
or rax, rcx
mov cl, 0x8e
xor cl, 0x8e
mov byte [rsp + rax + 0x1a8], cl
movaps xmm0, xmmword [rsp + 0xe0]
pextrw eax, xmm0, 5
test al, 1
jne 0x14004ac4e
jmp 0x14004ac78
mov rax, qword [rsp + 0xd8]
movabs rcx, 0x96de2672a5c1cf62
movabs rdx, 0x96de2672a5c1cf67
xor rcx, rdx
or rax, rcx
mov byte [rsp + rax + 0x1a8], 0
movaps xmm0, xmmword [rsp + 0xe0]
pextrw eax, xmm0, 6
test al, 1
jne 0x14004ac92
jmp 0x14004acc0
mov rax, qword [rsp + 0xd8]
mov rdx, 0xffffffffffffffff
xor rdx, 6
mov rcx, rax
and rcx, rdx
mov rdx, rax
xor rdx, 6
add rax, rdx
sub rax, rcx
mov byte [rsp + rax + 0x1a8], 0
movaps xmm0, xmmword [rsp + 0xe0]
pextrw eax, xmm0, 7
test al, 1
jne 0x14004acda
jmp 0x14004ad04
mov rax, qword [rsp + 0xd8]
movabs rcx, 0x3b9bb7693c6cd3f5
movabs rdx, 0x3b9bb7693c6cd3f2
xor rcx, rdx
or rax, rcx
mov byte [rsp + rax + 0x1a8], 0
mov eax, dword [0x1402aa038]
xor eax, 0xe5ac52c0
and eax, dword [0x1402aa03c]
mov ecx, 0x7c63775f
xor ecx, 0xaf5680c
xor eax, ecx
mov edx, 0xffffffff
xor edx, 0xe2899a94
mov ecx, eax
and ecx, edx
mov r8d, 0x671af67
xor r8d, 0xe4f835f3
mov edx, eax
xor edx, r8d
add eax, edx
sub eax, ecx
mov r8d, 0xffffffff
xor r8d, 0xd0b515c8
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xd0b515c8
or eax, 0xd0b515c8
imul eax, edx
add eax, ecx
cmp eax, 0xa04aea05
jbe 0x14004afa3
movaps xmm0, xmmword [rsp + 0x90]
movaps xmm2, xmmword [rsp + 0xa0]
movaps xmm3, xmmword [rsp + 0xb0]
movaps xmm4, xmmword [rsp + 0xc0]
mov rcx, qword [rsp + 0xd8]
mov edx, dword [0x1402aa040]
xor edx, 0xa95f41ea
mov r8d, dword [0x1402aa044]
mov eax, edx
and eax, r8d
add eax, eax
add edx, r8d
sub edx, eax
mov eax, edx
xor eax, 0x477d8570
xor edx, 0x7540100
and edx, 0x3fd61180
add edx, edx
sub eax, edx
add eax, 0x7fd61180
or eax, 0xb5a8588d
add rcx, 8
mov qword [rsp + 0x38], rcx
movaps xmm1, xmmword [0x1402bad80]
paddq xmm4, xmm1
movaps xmmword [rsp + 0x40], xmm4
paddq xmm3, xmm1
movaps xmmword [rsp + 0x50], xmm3
paddq xmm2, xmm1
movaps xmmword [rsp + 0x60], xmm2
paddq xmm0, xmm1
movaps xmmword [rsp + 0x70], xmm0
cmp rcx, 0x28
sete cl
mov byte [rsp + 0x8f], cl
cmp eax, 0xf352d32d
je 0x14004afa3
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x60]
movaps xmm2, xmmword [rsp + 0x50]
movaps xmm3, xmmword [rsp + 0x40]
mov rax, qword [rsp + 0x38]
mov cl, byte [rsp + 0x8f]
test cl, 1
mov qword [rsp + 0xf8], rax
movaps xmmword [rsp + 0x100], xmm3
movaps xmmword [rsp + 0x110], xmm2
movaps xmmword [rsp + 0x120], xmm1
movaps xmmword [rsp + 0x130], xmm0
je 0x14004a876
jmp 0x14004ae8c
mov rax, qword [rsp + 0x150]
mov rcx, qword [rsp + 0x170]
mov rcx, qword [rcx]
add rcx, 8
imul rax, rax, 0x28
add rcx, rax
lea rdx, [rsp + 0x1a8]
call fcn.14027a0c8
mov rax, qword [rsp + 0x198]
mov al, byte [rax]
mov cl, 0xda
xor cl, 0xda
cmp al, cl
jne 0x14004af35
mov rdx, qword [rsp + 0x150]
mov rax, rdx
and rax, 1
shl rax, 1
mov rcx, rdx
xor rcx, 1
add rcx, rax
mov qword [rsp + 0x30], rcx
xor rdx, 0xffffffffffffffff
mov rax, rcx
and rax, rdx
xor rax, 0xffffffffffffffff
and rcx, rdx
xor rcx, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
or rax, rcx
movabs rcx, 0x257d7937e7b17282
movabs rdx, 0x257d7937e7b17282
xor rcx, rdx
cmp rax, rcx
jge 0x14004af3a
call fcn.14000ee80
jmp 0x14004af5d
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x190]
cmp rax, rcx
mov qword [rsp + 0x158], rax
je 0x14004af35
jmp 0x14004a748
movaps xmm6, xmmword [rsp + 0x1d0]
movaps xmm7, xmmword [rsp + 0x1e0]
movaps xmm8, xmmword [rsp + 0x1f0]
add rsp, 0x200
pop rsi
ret
invalid
invalid
pushfq
invalid
jle 0x14004afc7
movabs byte [0x773efffffa9ce943], al
invalid
ja 0x14004afe5
jno 0x14004af91
invalid
sub al, 0x10
mov edx, dword [0x1402aa04c]
xor edx, 0xa802b420
xor ecx, ecx
sub ecx, edx
add eax, ecx
add eax, 0xb307c74d
mov ecx, 0x6aafa47d
xor edx, edx
div ecx
mov ecx, 0x6629da67
xor ecx, 0x775f9a49
xor edx, edx
div ecx
cmp eax, 0x217c30dc
jae 0x14004b0ba
mov rcx, qword [rsp + 0x30]
mov eax, dword [0x1402aa050]
mov r8d, dword [0x1402aa054]
xor r8d, 0x2fb8e6de
xor edx, edx
div r8d
mov r9d, eax
mov edx, 0x32048a72
xor edx, 0x48a5ac09
mov eax, r9d
and eax, edx
shl eax, 1
xor r9d, 0x7aa1267b
add r9d, eax
add r9d, 0x925bf64a
mov edx, r9d
xor edx, 0xffffffff
mov eax, 0x54fb280c
xor eax, 0xe231773d
and eax, edx
mov r8d, 0xffffffff
xor r8d, 0xb6ca5f31
and r9d, r8d
mov edx, 0xffffffff
xor edx, 0xf2d2f7de
and edx, 0xb6ca5f31
and r8d, 0xf2d2f7de
or eax, r9d
or edx, r8d
xor eax, edx
mov dword [rsp + 0x24], eax
xor eax, eax
mov edx, eax
call fcn.14004a0b0
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
call fcn.14004a2d0
mov eax, dword [rsp + 0x24]
cmp eax, 0x6934d74f
je 0x14004b0ba
add rsp, 0x38
ret
int1
stosd dword [rdi], eax
out 0x33, eax
jmp 0x14004b003