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

Disassembly:
push rsi
sub rsp, 0x110
mov qword [rsp + 0xe8], r8
mov qword [rsp + 0xf0], rdx
mov qword [rsp + 0xf8], rcx
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0xf8]
add rax, 0x60
mov qword [rsp + 0x100], rax
mov rax, qword [rcx]
mov qword [rsp + 0x108], rax
movabs rdx, 0x7fb4dd9a49368e3d
movabs rcx, 0x7fb4dd9a49368e3e
xor rdx, rcx
mov rcx, rax
xor rcx, rdx
xor rcx, 0xffffffffffffffff
or rax, 3
and rax, rcx
movabs rcx, 0x7b26c7e0436caed2
movabs rdx, 0x7b26c7e0436caed3
xor rcx, rdx
cmp rax, rcx
je 0x140019598
mov rax, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0xf8]
mov rdx, qword [rsp + 0x108]
movabs r8, 0xb9d13b8584420422
movabs r9, 0x462ec47a7bbdfbde
xor r8, r9
and rdx, r8
or rdx, 1
mov qword [rcx], rdx
mov rcx, rax
add rcx, 0x38
mov qword [rsp + 0xd8], rcx
mov rcx, qword [rax + 0x38]
movabs rdx, 0xad9e0c04a8e0ce6b
movabs rax, 0xad9e0c04a8e0ce6b
xor rdx, rax
movabs rax, 0x43bcf406715ccd46
movabs r8, 0x43bcf406715ccd47
xor rax, r8
sub rdx, rax
mov rax, rcx
sub rax, rdx
mov qword [rsp + 0xe0], rax
mov r8, rcx
xor r8, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
and r8, 0xffffffffffffffff
movabs rdx, 0xc6d810d30fdba636
movabs r9, 0xc6d810d30fdba634
xor rdx, r9
imul rdx, r8
movabs r8, 0xd8353ab6ab3e3d9e
movabs r9, 0x27cac54954c1c261
xor r8, r9
sub rdx, r8
sub rcx, rdx
and rax, rcx
cmp rax, 0
jl 0x140019593
mov rdx, qword [rsp + 0x108]
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xe0]
mov qword [rax], rcx
movabs rcx, 0x7e846fb32571a983
movabs rax, 0x7e846fb32571a987
xor rcx, rax
sar rdx, cl
movabs rax, 0x24ce1b2a3956f859
movabs rcx, 0x24ce1b2a3956f858
xor rax, rcx
movabs rcx, 0xb3617311f7762c86
movabs r8, 0x4c9e8cee0889d379
xor rcx, r8
xor rax, rcx
movabs rcx, 0x73e5f68f6f1fbf13
movabs r8, 0x73e5f68f6f1fbf13
xor rcx, r8
movabs r8, 0x9b4eab2149ca39f7
movabs r9, 0x9b4eab2149ca39f6
xor r8, r9
sub rcx, r8
sub rax, rcx
mov rcx, rdx
sub rcx, rax
mov qword [rsp + 0xd0], rcx
xor rdx, 0xffffffffffffffff
mov rax, rcx
xor rax, 0xffffffffffffffff
mov r8, rdx
xor r8, 0xffffffffffffffff
or rax, r8
xor rcx, 0xffffffffffffffff
movabs r8, 0x117a5eb441dc6ed2
movabs r9, 0xee85a14bbe23912d
xor r8, r9
xor rdx, r8
or rcx, rdx
and rax, rcx
movabs rcx, 0x4d7207ee87bfda6a
movabs rdx, 0xb28df81178402595
xor rcx, rdx
xor rax, rcx
cmp rax, 0
jl 0x140019593
mov r8, qword [rsp + 0xd0]
mov rax, qword [rsp + 0xe8]
mov rcx, rax
add rcx, 0x48
mov qword [rsp + 0xc0], rcx
mov r9, qword [rax + 0x48]
movabs rax, 0xad8ef0152f4d4304
mov rdx, r9
add rdx, rax
add rdx, r8
movabs rax, 0x3b318f0f9a621f5b
movabs rcx, 0x96bf7f1ab52f5c5f
xor rax, rcx
sub rdx, rax
mov qword [rsp + 0xc8], rdx
mov rcx, rdx
xor rcx, 0xffffffffffffffff
mov rax, r9
and rax, rcx
xor r9, 0xffffffffffffffff
mov rcx, rdx
and rcx, r9
or rax, rcx
mov r9, rdx
and r9, r8
movabs rcx, 0xef16299f0a4d2d13
movabs r10, 0xef16299f0a4d2d11
xor rcx, r10
imul rcx, r9
add rdx, r8
sub rdx, rcx
mov rcx, rax
xor rcx, rdx
xor rcx, 0xffffffffffffffff
or rax, rdx
and rax, rcx
cmp rax, 0
jl 0x140019593
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xc8]
mov qword [rax], rcx
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rax, qword [rsp + 0xf0]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0xb8], rax
cmp rax, 0
je 0x140018b6f
mov rax, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0xf8]
movabs r8, 0xf6e77501e0466d24
add rcx, r8
add rcx, 0x10
movabs r8, 0xf6e77501e0466d24
sub rcx, r8
call rax
mov rax, qword [rsp + 0x100]
mov al, byte [rax]
mov cl, 0x47
xor cl, 0x47
cmp al, cl
jne 0x140019598
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax]
mov qword [rsp + 0xb0], rax
cmp rax, 0
jle 0x140019598
mov ecx, dword [0x1402a8ab8]
and ecx, dword [0x1402a8abc]
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x6f7a2092
mov edx, 0xffffffff
xor edx, 0x6f7a2092
and ecx, edx
or eax, ecx
or eax, 0xcda33de5
xor eax, 0xdb356030
cmp eax, 0x9218f726
jae 0x1400195a2
mov rcx, qword [rsp + 0xe8]
mov edx, dword [0x1402a8ac0]
mov r8d, dword [0x1402a8ac4]
xor r8d, 0xffffffff
mov eax, edx
xor eax, r8d
and eax, edx
mov r9d, 0xffffffff
xor r9d, 0x52c9afec
mov r8d, eax
and r8d, r9d
mov edx, eax
or edx, r9d
mov r9d, 0x90abf7a0
xor r9d, 0x6f54085f
xor edx, r9d
imul edx, r8d
mov r9d, 0xe1f4fa35
xor r9d, 0xb33d55d9
mov r8d, eax
and r8d, r9d
or eax, 0x52c9afec
imul eax, r8d
add eax, edx
mov edx, 0xb44d5127
xor edx, 0xd27d5441
and eax, edx
sub eax, 0x41564f5
mov rdx, rcx
add rdx, 0x40
mov qword [rsp + 0xa0], rdx
add rcx, 0x10
mov qword [rsp + 0xa8], rcx
cmp eax, 0xf28f6750
jbe 0x140018bdd
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x98], rax
jmp 0x140018c94
mov rcx, qword [rsp + 0xe8]
mov rax, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x98]
dec rdx
mov r8, qword [rax]
mov r9, rdx
shl r9, 4
mov rax, qword [r8 + r9]
mov r8, qword [r8 + r9 + 8]
mov qword [rsp + 0x70], r8
mov qword [rcx], rdx
mov rcx, qword [rax]
mov qword [rsp + 0x78], rcx
mov rax, rcx
and rax, 0xfffffffffffffff0
or rcx, 0xfffffffffffffff0
mov rdx, rax
add rdx, rcx
mov qword [rsp + 0x80], rdx
mov rdx, qword [rax + rcx]
mov qword [rsp + 0x88], rdx
mov rcx, rdx
add rcx, 0xfffffffffffffff0
mov qword [rsp + 0x90], rcx
mov rax, rcx
and rax, rdx
add rax, rax
lea rdx, [rdx + rdx - 0x10]
sub rdx, rax
test rcx, rcx
setns al
or rcx, rdx
sets cl
add al, cl
inc al
test al, 1
jne 0x140019593
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x90]
mov qword [rcx], rdx
mov rdx, qword [rax]
movabs rcx, 0x3d67b1fdeca35d5f
movabs rax, 0x3d67b1fdeca35d5e
xor rcx, rax
mov rax, rdx
add rax, rcx
mov qword [rsp + 0x68], rax
xor rdx, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
mov rcx, 0xffffffffffffffff
movabs r8, 0x8267f92dbdc78204
xor rcx, r8
or rax, rdx
movabs rdx, 0x8267f92dbdc78204
or rcx, rdx
movabs rdx, 0xb2f756ef88528b6b
movabs r8, 0x4d08a91077ad7494
xor rdx, r8
xor rax, rdx
and rax, rcx
movabs rcx, 0x724ff66dfff5e47e
movabs rdx, 0x724ff66dfff5e47e
xor rcx, rdx
cmp rax, rcx
jl 0x140019593
mov eax, dword [0x1402a8ac8]
mov edx, dword [0x1402a8acc]
mov ecx, eax
xor ecx, edx
mov r8d, 0x18aa5df5
xor r8d, 0xe755a20a
xor ecx, r8d
mov r8d, edx
and r8d, ecx
mov ecx, 0xbe43d713
xor ecx, 0xbe43d711
imul ecx, r8d
sub ecx, edx
sub eax, ecx
mov ecx, 0x93381eac
xor ecx, 0x1492eff8
add eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x377f1cf
mov edx, 0x35477812
xor edx, 0x35477812
mov r8d, 0x73d477bf
xor r8d, 0x73d477be
sub edx, r8d
sub ecx, edx
sub eax, ecx
mov ecx, 0x1d6e69ad
xor edx, edx
div ecx
cmp eax, 0x85a80943
jae 0x1400195ab
mov rcx, qword [rsp + 0x88]
mov r8, qword [rsp + 0x68]
mov r9d, dword [0x1402a8ad0]
mov eax, 0xf5dd8b7a
xor eax, 0xd70af1bf
xor r9d, eax
mov eax, dword [0x1402a8ad4]
mov edx, r9d
xor edx, eax
mov r10d, 0x5c0049f6
xor r10d, 0xa3ffb609
xor eax, r10d
and r9d, eax
mov eax, 0x240ea079
xor eax, 0x240ea07b
imul eax, r9d
sub eax, edx
add eax, 0x80658369
add eax, 0x4c0f92b7
sub eax, 0x80658369
mov r9d, 0x2eff3802
xor r9d, 0x948faafe
xor edx, edx
div r9d
mov r9d, 0x1ebfe12
xor r9d, 0x35ed4840
xor edx, edx
div r9d
mov rdx, qword [rsp + 0xa0]
mov qword [rdx], r8
and rcx, 3
cmp rcx, 1
sete cl
mov byte [rsp + 0x67], cl
cmp eax, 0x70b1a5ec
jae 0x140018e60
mov al, byte [rsp + 0x67]
test al, 1
jne 0x14001955b
jmp 0x140018f18
mov ecx, dword [0x1402a8ad8]
mov eax, dword [0x1402a8adc]
xor eax, 0xf565d568
and ecx, eax
mov edx, 0xcb09948b
xor edx, 0x34f66b74
mov eax, ecx
xor eax, edx
and eax, 0x213d3771
mov edx, 0xffffffff
xor edx, 0x213d3771
and ecx, edx
or eax, ecx
mov ecx, 0xfaa6e93c
xor edx, edx
div ecx
xor eax, 0x62983e17
mov ecx, 0xf820132b
xor ecx, 0x67bc1083
cmp eax, ecx
jae 0x1400195b4
mov rcx, qword [rsp + 0xd8]
mov r8, qword [rsp + 0x90]
mov eax, dword [0x1402a8ae0]
mov r9d, dword [0x1402a8ae4]
mov edx, 0x48aeb0e3
xor edx, 0xd0ddfd23
xor r9d, edx
xor edx, edx
sub edx, r9d
add eax, edx
mov r9d, 0xb52744ff
xor edx, edx
div r9d
mov rdx, qword [rsp + 0x80]
imul eax, eax, 0x26d08e44
mov r9d, 0xecfba7ba
xor r9d, 0x965cb90e
and r9d, eax
xor r9d, 0xffffffff
add eax, 0x7aa71eb4
add eax, 1
add eax, r9d
and r8, 0xfffffffffffffffc
mov r9, r8
and r9, 1
xor r9, 0xffffffffffffffff
add r8, 1
add r8, 1
add r8, r9
mov qword [rdx], r8
mov rdx, qword [rcx]
movabs r8, 0xd2045c276aab820d
movabs rcx, 0x35cf07f843745c67
xor r8, rcx
mov rcx, rdx
sub rcx, r8
add rcx, 1
movabs r8, 0xe7cb5bdf29dfde6a
add rcx, r8
mov qword [rsp + 0x58], rcx
xor rdx, 0xffffffffffffffff
and rcx, rdx
cmp rcx, 0
setl cl
mov byte [rsp + 0x66], cl
cmp eax, 0x545c8de4
jbe 0x140018f6f
mov al, byte [rsp + 0x66]
test al, 1
jne 0x140019593
jmp 0x14001905a
mov eax, dword [0x1402a8ae8]
xor eax, dword [0x1402a8aec]
mov ecx, 0xffffffff
xor ecx, 0xe62f490c
xor edx, edx
sub edx, 1
sub ecx, edx
sub eax, ecx
add eax, 0xbe6e207e
mov ecx, 0x9effdd95
xor edx, edx
div ecx
cmp eax, 0x34c1960e
ja 0x1400195bd
mov r8, qword [rsp + 0x90]
mov rcx, qword [rsp + 0xd8]
mov eax, dword [0x1402a8af0]
xor edx, edx
div dword [0x1402a8af4]
mov rdx, qword [rsp + 0x58]
mov r9d, eax
mov r11d, 0xffffffff
xor r11d, 0xd0a8124b
mov r10d, r9d
and r10d, r11d
mov eax, r9d
or eax, r11d
xor eax, 0xffffffff
imul eax, r10d
mov r10d, r9d
and r10d, 0xd0a8124b
or r9d, 0xd0a8124b
imul r9d, r10d
add r9d, eax
add r9d, 0xa27376e1
mov r10d, 0xe921edb5
xor r10d, 0x16de124a
mov eax, r9d
xor eax, r10d
mov r10d, 0xb051726
xor r10d, 0xf4fae8d9
xor r9d, r10d
or eax, r9d
mov r9d, 0xffffffff
xor r9d, 0x72a9decb
mov r10d, 0xffffffff
xor r10d, 0x72a9decb
or r9d, r10d
mov r10d, 0xbf40be44
xor r10d, 0x40bf41bb
xor eax, r10d
mov r10d, 0x37de23ef
xor r10d, 0xc821dc10
xor r9d, r10d
or eax, r9d
mov qword [rcx], rdx
movabs rcx, 0xe577d93ce21694f2
movabs rdx, 0xe577d93ce21694f6
xor rcx, rdx
sar r8, cl
movabs rcx, 0xd2115fa7fe7690ae
movabs rdx, 0xd2115fa7fe7690ac
xor rcx, rdx
mov rdx, r8
and rdx, rcx
shl rdx, 1
mov rcx, r8
xor rcx, 2
add rcx, rdx
mov qword [rsp + 0x48], rcx
mov rdx, r8
xor rdx, 0xffffffffffffffff
movabs r10, 0xdd3ce9dfdb68b107
movabs r9, 0x22c3162024974ef8
xor r10, r9
mov r9, r8
xor r9, r10
or rdx, r9
movabs r9, 0xe8b065fc292263a6
movabs r10, 0x174f9a03d6dd9c59
xor r9, r10
and rdx, r9
movabs r9, 0xb506ee50b0e4b0e6
movabs r10, 0x4af911af4f1b4f19
xor r9, r10
xor rdx, r9
movabs r9, 0xa20796709aac90be
movabs r10, 0x5df8698f65536f41
xor r9, r10
movabs r10, 0xa1e1f51e85086f0e
movabs r11, 0x5e1e0ae17af790f1
xor r10, r11
xor r9, r10
movabs r10, 0x3570d1a145cd7424
movabs r11, 0xca8f2e5eba328bdb
xor r10, r11
movabs r11, 0x25ea02a1f8ebba6f
movabs rsi, 0xda15fd5e07144590
xor r11, rsi
xor r10, r11
or r9, r10
and r8, r9
xor r8, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
or rdx, r8
and rcx, rdx
movabs rdx, 0x4f72d0d237a8ecce
movabs r8, 0x4f72d0d237a8ecce
xor rdx, r8
cmp rcx, rdx
setl cl
mov byte [rsp + 0x57], cl
cmp eax, 0x423f2737
jbe 0x1400195bd
mov al, byte [rsp + 0x57]
test al, 1
jne 0x140019593
jmp 0x1400192bd
mov r8, qword [rsp + 0x48]
mov rax, qword [rsp + 0xc0]
mov rdx, qword [rax]
mov rcx, rdx
add rcx, r8
mov qword [rsp + 0x40], rcx
mov rax, rcx
xor rax, rdx
mov r9, rcx
xor r9, r8
movabs rdx, 0x38efa39e83d9c3c7
movabs r10, 0xc7105c617c263c38
xor rdx, r10
xor r9, rdx
mov rdx, r8
and rdx, r9
shl rdx, 1
sub rdx, r8
sub rcx, rdx
and rax, rcx
cmp rax, 0
jl 0x140019593
mov eax, dword [0x1402a8af8]
mov ecx, dword [0x1402a8afc]
mov edx, 0x4435e383
xor edx, 0x877d62e8
xor ecx, edx
or eax, ecx
mov ecx, 0x7895eb67
xor ecx, 0x876a1498
mov edx, eax
xor edx, ecx
and edx, 0xe177bf62
mov r8d, 0xffffffff
xor r8d, 0xe177bf62
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xe177bf62
or eax, 0xe177bf62
imul eax, edx
add eax, ecx
sub eax, 0x256d3373
add eax, 0x1b0f35f7
cmp eax, 0xcc7ac47
jb 0x1400195c6
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x40]
mov edx, dword [0x1402a8b00]
mov r8d, dword [0x1402a8b04]
add edx, 0x858edba7
add edx, r8d
sub edx, 0x858edba7
sub edx, 0x4bc718a8
add edx, 0xff071a6d
and edx, 0xda04a86
mov dword [rsp + 0x2c], edx
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, 0x3ac04d2a
ja 0x140019387
mov al, byte [rsp + 0x3f]
test al, 1
jne 0x14001954a
jmp 0x14001940e
mov eax, dword [0x1402a8b08]
mov edx, dword [0x1402a8b0c]
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
mov r8d, edx
and r8d, ecx
mov ecx, 0x387e2eaf
xor ecx, 0x387e2ead
imul ecx, r8d
sub ecx, edx
sub eax, ecx
mov ecx, 0x45f95f99
xor ecx, 0xbe370187
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0x322d2add
xor edx, 0xc35ccefa
mov r8d, 0x59f47b38
xor r8d, 0xa60b84c7
xor edx, r8d
or eax, edx
xor ecx, 0xffffffff
mov edx, 0xfef23ba8
xor edx, 0xf83df8f
mov r8d, 0x440bc14b
xor r8d, 0xbbf43eb4
xor edx, r8d
or ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, eax
and ecx, 0x242d1201
xor ecx, 0xffffffff
mov edx, 0x70c17da2
xor edx, 0x54ec6fa3
add eax, edx
add eax, 1
add eax, ecx
mov ecx, 0xad31c7f3
xor ecx, 0xd1420d8
cmp eax, ecx
jae 0x1400195cf
mov rcx, qword [rsp + 0x78]
mov eax, dword [0x1402a8b10]
mov r9d, dword [0x1402a8b14]
xor r9d, 0x5e145f32
mov r10d, r9d
xor r10d, 0xffffffff
mov r8d, eax
and r8d, r10d
mov edx, eax
or edx, r10d
xor edx, 0xffffffff
imul edx, r8d
mov r8d, eax
and r8d, r9d
or eax, r9d
imul eax, r8d
add eax, edx
mov r8d, 0x3854a83f
xor edx, edx
div r8d
mov rdx, qword [rsp + 0xe8]
mov r8d, eax
mov rax, qword [rsp + 0x30]
imul r8d, r8d, 0xacc7b5c9
and r8d, 0x951a1fb
mov dword [rsp + 0x28], r8d
call rax
mov eax, dword [rsp + 0x28]
cmp eax, 0xdb1a264c
ja 0x1400195cf
jmp 0x14001954a
mov rax, qword [rsp + 0x100]
cmp byte [rax], 0
jne 0x140019598
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax]
movabs rcx, 0xc345c06a95d3b7ee
movabs rdx, 0xc345c06a95d3b7ee
xor rcx, rdx
cmp rax, rcx
mov qword [rsp + 0x98], rax
jg 0x140018c94
jmp 0x140019598
call fcn.14000ee80
nop
add rsp, 0x110
pop rsi
ret
add dl, byte [rbp + 0x32e9e983]
idiv bh
inc dword [rdx]
invalid
add dl, ch
pop rax
xor al, 0xe9
lodsb al, byte [rsi]
clc
invalid
enter 0xffffffffffffe638, 0xffffffffffffff9e
jmp 0x140018f6f
test eax, 0xe9584c32
int 0xfa
invalid
mov edi, 0xe99aa30c
mov eax, 0x6ffffffd
outsd dx, dword [rsi]
fnstsw word [rax + rsi*2]
jmp 0x1400194c5