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

Disassembly:
push rsi
sub rsp, 0xe0
mov qword [rsp + 0xb0], rdx
mov qword [rsp + 0xb8], rcx
mov rax, rcx
add rax, 8
mov qword [rsp + 0xc0], rax
mov rax, qword [rcx + 8]
mov qword [rsp + 0xc8], rax
mov rcx, rdx
add rcx, 8
mov qword [rsp + 0xd0], rcx
mov rcx, qword [rdx + 8]
mov qword [rsp + 0xd8], rcx
cmp rax, rcx
je 0x1400343ae
mov rax, qword [rsp + 0xd8]
cmp rax, 0
je 0x140033cc8
mov rcx, qword [rsp + 0xd8]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
je 0x140033e87
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xc8]
cmp rcx, 0
mov qword [rsp + 0xa8], rax
je 0x140033e59
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rcx]
movabs r8, 0x7f7b8ab357eb144c
movabs rcx, 0x8084754ca814ebb3
xor r8, rcx
mov rcx, rdx
xor rcx, r8
mov r8, 0xffffffffffffffff
movabs r9, 0x4000000000000000
xor r8, r9
or rcx, r8
xor rdx, 0xffffffffffffffff
movabs r8, 0x1afb8ec6a6f1917f
movabs r9, 0x5afb8ec6a6f1917f
xor r8, r9
movabs r9, 0x9952cc0738fd377f
movabs r10, 0x66ad33f8c702c880
xor r9, r10
xor r8, r9
or rdx, r8
and rcx, rdx
xor rcx, 0xffffffffffffffff
movabs rdx, 0x9255f2f5bb1e33ce
movabs r8, 0x9255f2f5bb1e33ce
xor rdx, r8
cmp rcx, rdx
mov qword [rsp + 0xa8], rax
jne 0x140033e59
mov eax, dword [0x140273938]
mov ecx, dword [0x14027393c]
xor ecx, 0x4d8d4b47
imul eax, ecx
imul eax, eax, 0xede46a35
imul eax, eax, 0x1cb66b5f
imul eax, eax, 0x739120cc
mov ecx, 0xe1a937b9
xor ecx, 0x137e1d9
cmp eax, ecx
ja 0x1400344af
mov eax, dword [0x140273940]
xor eax, 0xdd5d2d65
mov edx, dword [0x140273944]
xor ecx, ecx
sub ecx, edx
add eax, ecx
and eax, 0xe61f866
sub eax, 0x99dc4a7d
xor eax, 0x114d28a5
mov dword [rsp + 0x9c], eax
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0xc8]
mov rcx, rax
add rcx, 0x68
call fcn.1400190f0
mov rcx, qword [rsp + 0xd0]
mov eax, dword [rsp + 0x9c]
mov rcx, qword [rcx]
mov qword [rsp + 0xa0], rcx
cmp eax, 0x39b85023
je 0x140033dd2
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xa8], rax
jmp 0x140033e59
mov rax, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0xb8]
mov r8, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xa8]
mov r8, qword [r8]
mov qword [rdx], r8
mov qword [rax], rcx
jmp 0x1400343ae
mov rax, qword [rsp + 0xc8]
cmp rax, 0
je 0x140033f24
mov rax, qword [rsp + 0xc8]
mov rax, qword [rax]
mov qword [rsp + 0x90], rax
movabs rcx, 0x4000000000000000
and rax, rcx
cmp rax, 0
jne 0x140033f24
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x90]
movabs r8, 0xbfffffffffffffff
and rdx, r8
mov rax, qword [rax]
cmp rdx, rax
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], rax
jge 0x140034025
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0xc8]
mov rcx, rax
add rcx, 0x68
call fcn.1400190f0
mov rax, qword [rsp + 0xb0]
mov rdx, qword [rax]
mov qword [rsp + 0x78], rdx
mov rcx, rdx
add rcx, 1
xor rdx, 0xffffffffffffffff
mov rax, rcx
and rax, rdx
movabs r8, 0xea30f5cf34cc4bac
movabs r9, 0x15cf0a30cb33b453
xor r8, r9
xor rax, r8
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
or rcx, rdx
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
or rax, rcx
cmp rax, 0
jge 0x140033f89
call fcn.14000f24b
jmp 0x1400343ae
mov rdx, qword [rsp + 0x78]
mov rax, rdx
add rax, 9
mov qword [rsp + 0x70], rax
mov rcx, 0xfffffffffffffffe
sub rcx, rdx
or rax, rax
xor rax, 0xffffffffffffffff
or rcx, rcx
xor rcx, 0xffffffffffffffff
or rax, rcx
xor rax, 0xffffffffffffffff
cmp rax, 0
jge 0x140033fcd
call fcn.14000f24b
jmp 0x1400343ae
mov rax, qword [rsp + 0x70]
cmp rax, 0
jge 0x140033fec
mov rcx, r8
mov rdx, r8
call fcn.14001a720
jmp 0x1400343ae
mov rcx, qword [rsp + 0x70]
call fcn.140015fba
mov rdx, qword [rsp + 0xc0]
mov rcx, rax
mov rax, qword [rsp + 0xb0]
mov qword [rdx], rcx
mov rdx, qword [rax]
mov qword [rcx], rdx
mov rax, qword [rax]
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xb8]
mov r8, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x58], r8
mov qword [rcx], rdx
mov rdx, qword [rax]
mov qword [rsp + 0x60], rdx
movabs rcx, 0x546e2972f56fa2f6
movabs rax, 0x546e2972f56fa2f7
xor rcx, rax
movabs rax, 0xa4a9163b6ac4251e
movabs r8, 0x5b56e9c4953bdae1
xor rax, r8
xor rcx, rax
xor eax, eax
sub rax, 1
sub rcx, rax
mov rax, rdx
sub rax, rcx
mov qword [rsp + 0x68], rax
xor rdx, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
movabs rcx, 0xc4f6054d09c941d6
movabs r8, 0x3b09fab2f636be29
xor rcx, r8
xor rdx, rcx
movabs rcx, 0xbb155c11d0769044
movabs r8, 0x7af513099130c424
xor rcx, r8
movabs r8, 0xdc87fcf369dd5ae7
movabs r9, 0x2378030c9622a518
xor r8, r9
xor rcx, r8
or rax, rdx
movabs rdx, 0xc1e04f1841465460
or rcx, rdx
xor rax, 0xffffffffffffffff
and rax, rcx
cmp rax, 0
jge 0x1400341d1
mov eax, dword [0x140273948]
xor eax, 0xae3e4eef
mov ecx, dword [0x14027394c]
sub eax, 0x19723f0e
add eax, ecx
mov ecx, 0x5b4f665c
xor ecx, 0x423d5952
add eax, ecx
mov ecx, 0x2c7dcf1c
xor edx, edx
div ecx
mov ecx, 0xbf5927dc
xor edx, edx
div ecx
mov ecx, 0x5c6a3cef
xor ecx, 0x4c515cf9
xor edx, edx
div ecx
cmp eax, 0x460e770f
je 0x1400344b8
mov eax, dword [0x140273950]
mov edx, dword [0x140273954]
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
mov r8d, edx
and r8d, ecx
mov ecx, 0xba2d425d
xor ecx, 0xba2d425f
imul ecx, r8d
sub ecx, edx
sub eax, ecx
add eax, 0xc8c9ebe
add eax, 0x95250717
add eax, 0xe5cf461f
mov ecx, 0x314286c3
xor ecx, 0xa46781d4
sub eax, ecx
mov ecx, 0x19e69377
xor ecx, 0x732591e0
sub eax, ecx
mov dword [rsp + 0x54], eax
call fcn.14000f24b
mov eax, dword [rsp + 0x54]
cmp eax, 0x7cfb88fb
jbe 0x1400344b8
jmp 0x1400343ae
mov rax, qword [rsp + 0x68]
movabs rcx, 0xcd53e6b836fa8aee
movabs rdx, 0xcd53e6b836fa8aee
xor rcx, rdx
cmp rax, rcx
jge 0x140034206
mov rcx, r8
mov rdx, r8
call fcn.14001a720
jmp 0x1400343ae
mov rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0x58]
add rdx, 8
mov qword [rsp + 0x38], rdx
mov rax, qword [rax]
add rax, 8
mov qword [rsp + 0x40], rax
xor eax, eax
cmp rcx, 0
mov qword [rsp + 0x48], rax
je 0x1400343ae
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x30], rax
mov eax, dword [0x140273958]
or eax, dword [0x14027395c]
mov ecx, 0xffffffff
xor ecx, 0x3e196d50
mov edx, 0x67ff5e21
xor edx, 0x67ff5e21
mov r8d, 0x55df986d
xor r8d, 0x55df986c
sub edx, r8d
sub ecx, edx
sub eax, ecx
mov ecx, 0xf497f68b
xor ecx, 0xfb9ce8c8
add eax, ecx
mov edx, 0x871305ed
xor edx, 0xb81ecec8
mov ecx, eax
and ecx, edx
mov edx, 0xad0c7ecb
xor edx, 0xad0c7ec9
imul ecx, edx
xor eax, 0x3f0dcb25
add eax, ecx
cmp eax, 0x7dbfda6a
je 0x1400344c1
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x38]
mov r9, qword [rsp + 0x40]
mov eax, dword [0x140273960]
mov r11d, dword [0x140273964]
mov r10d, eax
xor r10d, r11d
mov esi, 0x3b2d7164
xor esi, 0xc4d28e9b
xor r10d, esi
or eax, r11d
and eax, r10d
add eax, 0xd009cb74
sub eax, 0x5aeeb74c
sub eax, 0xd009cb74
mov r10d, 0xb90b93f2
xor r10d, 0x40ba0c22
add eax, r10d
mov r10d, 0x9a081c1a
xor r10d, 0xd305761c
add eax, r10d
sub eax, 0xf9b19fd0
add eax, 0x162b7e49
mov r9b, byte [r9 + rcx]
mov byte [r8 + rcx], r9b
mov r9, rcx
and r9, 1
movabs r8, 0x93028c5b4280e012
movabs r10, 0x93028c5b4280e010
xor r8, r10
imul r9, r8
movabs r10, 0xff57703f9c183e87
movabs r8, 0xff57703f9c183e86
xor r10, r8
mov r8, rcx
xor r8, r10
add r8, r9
mov qword [rsp + 0x20], r8
cmp rcx, rdx
sete cl
mov byte [rsp + 0x2f], cl
cmp eax, 0x2299bc51
jb 0x1400342ba
mov rax, qword [rsp + 0x20]
mov cl, byte [rsp + 0x2f]
test cl, 1
mov qword [rsp + 0x48], rax
jne 0x1400343ae
jmp 0x14003423e
mov ecx, dword [0x140273968]
mov r8d, dword [0x14027396c]
mov eax, 0x5c788c3
xor eax, 0xfa38773c
mov r9d, r8d
xor r9d, eax
mov edx, ecx
and edx, r9d
mov eax, ecx
or eax, r9d
xor eax, 0xffffffff
imul eax, edx
mov edx, ecx
and edx, r8d
or ecx, r8d
imul ecx, edx
add ecx, eax
and ecx, 0x4bf95296
mov eax, ecx
and eax, 0x9c5f989d
or ecx, 0x9c5f989d
add eax, ecx
mov ecx, 0xc5486464
xor ecx, 0xac882b76
xor eax, ecx
cmp eax, 0x4fa4fb59
jbe 0x1400344ca
mov eax, dword [0x140273970]
xor edx, edx
div dword [0x140273974]
mov r11d, eax
add r11d, 0xe90ee314
sub r11d, 0x43aed144
mov eax, 0xb05eb02d
xor eax, 0x4fa14fd2
mov ecx, r11d
xor ecx, eax
mov r8d, 0xffffffff
xor r8d, 0xfd68fef
mov edx, 0xffffffff
xor edx, 0x5ffeca3d
mov eax, ecx
and eax, 0x5ffeca3d
and r11d, edx
mov r10d, 0x441b6f8b
xor r10d, 0x1be5a5b6
mov r9d, r8d
and r9d, r10d
mov r10d, edx
and r10d, 0xfd68fef
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, r8d
xor ecx, 0xffffffff
or edx, 0x5ffeca3d
and ecx, edx
or eax, ecx
cmp eax, 0xc979cf6
je 0x140034415
add rsp, 0xe0
pop rsi
ret
movsd dword [rdi], dword [rsi]
call 0x15aec491d
stc
invalid
loopne 0x140034502
mov edx, 0xfc9ee935
invalid
sub eax, 0xe97302fe
invalid
std
sub eax, 0x42e9fbe3
invalid
add byte [rcx - 0xe7c3f], cl
and ecx, edx
xor edx, 0xffffffff
and eax, edx
sub eax, ecx
sub eax, 0x44c6008
or eax, eax
mov ecx, 0x79df97db
xor ecx, 0x86206824
xor eax, ecx
mov ecx, 0xa2b055a3
xor ecx, 0x313337d3
mov edx, 0xb7d2e92e
xor edx, 0x482d16d1
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0x93836270
and ecx, edx
or eax, ecx
mov ecx, 0xeadca2d4
xor ecx, 0x15235d2b
xor eax, ecx
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0x4c4fede7
add ecx, eax
mov eax, 0x31ac6954
xor eax, 0x31ac6954
sub eax, ecx
cmp eax, 0xb326eb91
jb 0x1400345ef
mov rcx, qword [rbp - 8]
mov eax, dword [0x140273980]
mov edx, dword [0x140273984]
or eax, edx
imul rax, rax, 0x1905f219
shr rax, 0x3b
or eax, 0x48cd16f8
imul rax, rax, 0x1cc2dddf
shr rax, 0x3a
mov dword [rbp - 0x14], eax
mov eax, 0x10
call fcn.140271bb0
sub rsp, rax
mov rax, qword [rbp - 0x10]
mov rdx, rsp
mov r8, qword [rax]
mov qword [rdx], r8
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.140033c40
mov eax, dword [rbp - 0x14]
add rsp, 0x20
cmp eax, 0xc69adab5
je 0x14003457d
mov rsp, rbp
pop rbp
ret
stosb byte [rdi], al
adc eax, 0xff85e92b
invalid