Function at 0x140161cd0
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0xb0
mov qword [rsp + 0xa0], rcx
mov rax, qword [rcx + 8]
mov qword [rsp + 0xa8], rax
cmp rax, 0
je 0x140161def
mov rcx, qword [rsp + 0xa8]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
jne 0x140161def
mov eax, dword [0x1401e1560]
xor eax, 0x429f5a5f
imul eax, dword [0x1401e1564]
mov ecx, 0xffffffff
xor ecx, 0x560cb50e
xor edx, edx
sub edx, 1
sub ecx, edx
sub eax, ecx
mov ecx, 0x76b0327a
xor ecx, 0xe7865e3a
xor edx, edx
div ecx
xor ecx, ecx
sub ecx, 0x732c574
sub eax, ecx
cmp eax, 0x7f01ee33
jae 0x140162834
mov rcx, qword [rsp + 0xa8]
mov eax, dword [0x1401e1568]
xor eax, dword [0x1401e156c]
mov r8d, 0xe3c61b3a
xor edx, edx
div r8d
mov r8d, 0x66eb5df4
xor r8d, 0x9bd0a34c
xor edx, edx
div r8d
mov edx, eax
mov eax, edx
xor eax, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0x756c087a
or eax, r8d
mov r8d, 0x5bea8ad4
xor r8d, 0x2e8682ae
and edx, r8d
mov r8d, 0x4d664fe
xor r8d, 0xfb299b01
xor edx, r8d
and eax, edx
xor eax, 0xffffffff
mov dword [rsp + 0x9c], eax
call fcn.14000de03
mov eax, dword [rsp + 0x9c]
cmp eax, 0x56204785
jae 0x140161d5f
jmp 0x140161def
mov rax, qword [rsp + 0xa0]
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x90], rax
cmp rax, 0
je 0x140161e39
mov rcx, qword [rsp + 0x90]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
jne 0x140161e39
mov rcx, qword [rsp + 0x90]
call fcn.14000de03
mov rax, qword [rsp + 0xa0]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0x88], rax
cmp rax, 0
je 0x140161e83
mov rcx, qword [rsp + 0x88]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
jne 0x140161e83
mov rcx, qword [rsp + 0x88]
call fcn.14000de03
mov rax, qword [rsp + 0xa0]
mov rax, qword [rax + 0x38]
mov qword [rsp + 0x80], rax
cmp rax, 0
je 0x140161ede
mov rax, qword [rsp + 0x80]
mov rax, qword [rax]
mov rcx, rax
add rcx, 1
xor rax, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
or rax, rdx
add rax, rcx
cmp rax, 0
jne 0x140161ede
mov rcx, qword [rsp + 0x80]
call fcn.14000de03
mov rax, qword [rsp + 0xa0]
mov rax, qword [rax + 0x48]
mov qword [rsp + 0x78], rax
cmp rax, 0
je 0x140161f4f
mov rax, qword [rsp + 0x78]
mov rcx, qword [rax]
movabs rdx, 0x5cb07d3f374273bc
movabs rax, 0x1cb07d3f374273bc
xor rdx, rax
movabs rax, 0xa1f1b66f979dab1a
movabs r8, 0x5e0e4990686254e5
xor rax, r8
xor rdx, rax
mov rax, rcx
xor rax, rdx
and rax, rcx
cmp rax, 0
jne 0x140161f4f
mov rcx, qword [rsp + 0x78]
call fcn.14000de03
mov rax, qword [rsp + 0xa0]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x70], rax
cmp rax, 0
je 0x14016206f
mov rax, qword [rsp + 0x70]
mov rcx, qword [rax]
movabs rdx, 0x68302928e23ea603
movabs rax, 0x28302928e23ea603
xor rdx, rax
movabs rax, 0x1c422826aa6d32fb
movabs r8, 0xe3bdd7d95592cd04
xor rax, r8
xor rdx, rax
mov rax, rcx
xor rax, rdx
and rax, rcx
cmp rax, 0
jne 0x14016206f
mov eax, dword [0x1401e1570]
or eax, dword [0x1401e1574]
mov edx, eax
xor edx, 0xffffffff
and edx, 0x71de045a
mov r8d, 0xffffffff
xor r8d, 0x71de045a
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x71de045a
or eax, 0x71de045a
imul eax, edx
add eax, ecx
mov ecx, 0xbed68cd0
xor ecx, 0x1cc73ee9
sub eax, ecx
add eax, 0xf679620
add eax, 0xa211b239
mov ecx, 0x6d917cb3
xor ecx, 0x8fe3d444
xor edx, edx
div ecx
cmp eax, 0xf1bacf10
ja 0x14016283d
mov rcx, qword [rsp + 0x70]
mov eax, dword [0x1401e1578]
xor eax, 0x684dd76
mov r8d, dword [0x1401e157c]
xor edx, edx
sub edx, r8d
sub eax, edx
add eax, 0xaeae5826
or eax, 0xd3544c38
or eax, 0x5ff40467
mov dword [rsp + 0x6c], eax
call fcn.14000de03
mov eax, dword [rsp + 0x6c]
cmp eax, 0x33bfa60e
je 0x140162025
jmp 0x14016206f
mov eax, dword [0x1401e1580]
mov ecx, 0xf2afad5
xor ecx, 0xd3bdbb49
xor eax, ecx
mov ecx, dword [0x1401e1584]
xor ecx, 0xe2b22773
mov edx, eax
xor edx, 0xffffffff
mov r11d, ecx
and r11d, edx
mov edx, 0x40c31f2b
xor edx, 0xbf3ce0d4
xor ecx, edx
and eax, ecx
or r11d, eax
mov ecx, r11d
xor ecx, 0xffffffff
mov edx, 0x488a4a7
xor edx, 0x9079d390
mov eax, 0xf196cd89
xor eax, 0xe693276
xor edx, eax
mov r8d, 0xffffffff
xor r8d, 0xe0b02e9f
mov eax, ecx
and eax, 0xe0b02e9f
and r11d, r8d
mov r9d, edx
and r9d, 0xe0b02e9f
mov r10d, r8d
and r10d, 0x94f17737
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, edx
mov edx, 0x89ac11bf
xor edx, 0x7653ee40
xor ecx, edx
mov edx, 0x974edfc8
xor edx, 0x77fef157
or edx, r8d
and ecx, edx
or eax, ecx
mov ecx, 0xfb7e0d76
xor ecx, 0xd8ca89e7
sub eax, ecx
mov ecx, 0x6cc4f1f2
xor ecx, 0x6c3d685
xor eax, ecx
cmp eax, 0xf767bff3
ja 0x140162846
mov rcx, qword [rsp + 0xa0]
mov edx, dword [0x1401e1588]
mov eax, dword [0x1401e158c]
mov r8d, 0x58a71f0b
xor r8d, 0x127a590a
add edx, r8d
add edx, eax
mov eax, 0xd1846b0f
xor eax, 0x9b592d0e
sub edx, eax
mov r9d, 0xffffffff
xor r9d, 0x19600af1
mov r8d, edx
and r8d, r9d
mov eax, edx
or eax, r9d
mov r9d, 0x527772e7
xor r9d, 0xad888d18
xor eax, r9d
imul eax, r8d
mov r8d, edx
and r8d, 0x19600af1
or edx, 0x19600af1
imul edx, r8d
add edx, eax
mov eax, 0xc9f9ef52
xor eax, 0x9642f3ea
mov r8d, 0x70e53c02
xor r8d, 0x8f1ac3fd
xor eax, r8d
mov r8d, 0x7d1aa83b
xor r8d, 0x7d1aa83b
mov r9d, 0xed9fedfb
xor r9d, 0xed9fedfa
sub r8d, r9d
sub eax, r8d
sub edx, eax
mov eax, edx
xor eax, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0x642a4b11
and eax, r8d
xor edx, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0x642a4b11
and edx, r8d
or eax, edx
xor eax, 0xffffffff
mov rcx, qword [rcx + 0x68]
mov qword [rsp + 0x60], rcx
cmp rcx, 0
sete cl
mov byte [rsp + 0x6b], cl
cmp eax, 0x6d3a0bd3
jb 0x140162142
mov al, byte [rsp + 0x6b]
test al, 1
jne 0x140162285
jmp 0x14016224f
mov rax, qword [rsp + 0x60]
mov rax, qword [rax]
movabs rcx, 0xc4e1472a0e5a3d79
movabs rdx, 0x84e1472a0e5a3d79
xor rcx, rdx
and rax, rcx
cmp rax, 0
jne 0x140162285
mov rcx, qword [rsp + 0x60]
call fcn.14000de03
mov rax, qword [rsp + 0xa0]
mov rax, qword [rax + 0x78]
mov qword [rsp + 0x58], rax
cmp rax, 0
je 0x1401622dc
mov rcx, qword [rsp + 0x58]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
movabs rcx, 0xaf5edeaa6b9b8337
movabs rdx, 0xaf5edeaa6b9b8337
xor rcx, rdx
cmp rax, rcx
jne 0x1401622dc
mov rcx, qword [rsp + 0x58]
call fcn.14000de03
mov rax, qword [rsp + 0xa0]
mov rax, qword [rax + 0x88]
mov qword [rsp + 0x50], rax
cmp rax, 0
je 0x14016243e
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax]
mov rdx, 0xffffffffffffffff
movabs rax, 0x4000000000000000
xor rdx, rax
mov rax, rcx
xor rax, rdx
and rax, rcx
cmp rax, 0
jne 0x14016243e
mov eax, dword [0x1401e1590]
mov edx, dword [0x1401e1594]
mov ecx, 0xb30c3261
xor ecx, 0x282d7cdd
xor edx, ecx
mov ecx, eax
add ecx, 1
mov r8d, 0x22309002
xor r8d, 0xddcf6ffd
xor eax, r8d
or eax, edx
add eax, ecx
mov ecx, eax
xor ecx, 0x44c123c8
mov edx, 0x27c9d68
xor edx, 0x46bdbea0
mov r8d, 0x47fab50d
xor r8d, 0xb8054af2
xor edx, r8d
and eax, edx
shl eax, 1
sub eax, ecx
mov ecx, 0xfd390787
xor edx, edx
div ecx
imul eax, eax, 0x4754e378
cmp eax, 0xaffc3f8c
jae 0x14016284f
mov rcx, qword [rsp + 0x50]
mov esi, dword [0x1401e1598]
imul esi, dword [0x1401e159c]
and esi, 0xe5905b69
mov edx, esi
xor edx, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0xc4517e5b
mov r8d, 0xffffffff
xor r8d, 0x1975b723
mov eax, edx
and eax, 0x1975b723
and esi, r8d
mov r10d, r9d
and r10d, 0x1975b723
mov r11d, 0xe380a998
xor r11d, 0x27d1d7c3
and r11d, r8d
or eax, esi
or r10d, r11d
xor eax, r10d
or edx, r9d
xor edx, 0xffffffff
or r8d, 0x1975b723
and edx, r8d
or eax, edx
mov edx, 0x13af1865
xor edx, 0xb07491f3
sub eax, edx
mov dword [rsp + 0x4c], eax
call fcn.14000de03
mov eax, dword [rsp + 0x4c]
cmp eax, 0x66fbf3e3
jae 0x14016239f
jmp 0x14016243e
mov rax, qword [rsp + 0xa0]
mov rax, qword [rax + 0x98]
mov qword [rsp + 0x40], rax
cmp rax, 0
je 0x140162495
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax]
mov rdx, 0xffffffffffffffff
movabs rax, 0x4000000000000000
xor rdx, rax
mov rax, rcx
xor rax, rdx
and rax, rcx
cmp rax, 0
jne 0x140162495
mov rcx, qword [rsp + 0x40]
call fcn.14000de03
mov rax, qword [rsp + 0xa0]
mov rax, qword [rax + 0xa8]
mov qword [rsp + 0x38], rax
cmp rax, 0
je 0x1401624ef
mov rcx, qword [rsp + 0x38]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
movabs rcx, 0x8591cc4771dc3505
movabs rdx, 0x8591cc4771dc3505
xor rcx, rdx
cmp rax, rcx
jne 0x1401624ef
mov rcx, qword [rsp + 0x38]
call fcn.14000de03
mov rax, qword [rsp + 0xa0]
mov rax, qword [rax + 0xb8]
mov qword [rsp + 0x30], rax
cmp rax, 0
je 0x14016282b
mov eax, dword [0x1401e15a0]
mov r8d, dword [0x1401e15a4]
mov ecx, 0x23e7eb74
xor ecx, 0x6f77ca94
xor r8d, ecx
mov r9d, r8d
xor r9d, 0xffffffff
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
mov r9d, 0xc988909b
xor r9d, 0x36776f64
xor ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0x853b7b2f
xor ecx, 0x853b7b2f
sub ecx, eax
xor eax, eax
sub eax, 0xa187b079
add ecx, eax
mov eax, 0x67640c5
xor eax, 0x67640c5
sub eax, ecx
mov r8d, 0x22a0d33c
xor r8d, 0xf31e9292
mov ecx, 0xed67314d
xor ecx, 0x1298ceb2
xor r8d, ecx
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
mov r8d, 0xe7b19293
xor r8d, 0x184e6d6c
xor ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xd1be41ae
or eax, 0xd1be41ae
imul eax, edx
add eax, ecx
mov ecx, 0x3938fc99
xor ecx, 0x9e0e6221
xor edx, edx
div ecx
cmp eax, 0xaee03a6e
je 0x140162858
mov rcx, qword [rsp + 0x30]
mov edx, dword [0x1401e15a8]
mov r8d, dword [0x1401e15ac]
xor r8d, 0x8213276f
mov eax, edx
xor eax, 0xffffffff
xor edx, 0xffffffff
or eax, edx
mov edx, r8d
xor edx, 0xffffffff
xor r8d, 0xffffffff
or edx, r8d
and eax, edx
xor eax, 0xffffffff
mov edx, 0xa48cc041
xor edx, 0xc299412d
sub eax, edx
mov edx, 0x47688345
xor edx, 0xa5cd51c0
and eax, edx
mov edx, eax
xor edx, 0x63d720e1
xor edx, 0xffffffff
and edx, 0x63d720e1
shl edx, 1
mov r8d, 0x1014529d
xor r8d, 0x73c3727c
sub edx, r8d
sub eax, edx
mov rdx, qword [rcx]
movabs r8, 0xca96f6000e976688
movabs rcx, 0x8a96f6000e976688
xor r8, rcx
movabs rcx, 0xb57ce2a7a65d389
movabs r9, 0xf4a831d5859a2c76
xor rcx, r9
xor r8, rcx
mov rcx, rdx
xor rcx, r8
and rcx, rdx
cmp rcx, 0
sete cl
mov byte [rsp + 0x2f], cl
cmp eax, 0x8b262d
je 0x140162858
mov al, byte [rsp + 0x2f]
test al, 1
jne 0x1401626b8
jmp 0x14016282b
mov eax, dword [0x1401e15b0]
mov edx, dword [0x1401e15b4]
mov ecx, 0xb1bcb005
xor ecx, 0xc0c9db42
xor edx, ecx
mov ecx, eax
xor ecx, 0xffffffff
xor eax, 0xffffffff
and ecx, eax
mov r8d, 0x651006fd
xor r8d, 0x9aeff902
mov eax, edx
xor eax, r8d
xor edx, 0xffffffff
and eax, edx
mov edx, 0xc2b74af7
xor edx, 0x3d48b508
xor ecx, edx
xor eax, 0xffffffff
and ecx, eax
mov eax, 0x965adf78
xor eax, 0x965adf78
sub eax, ecx
mov ecx, 0xcb70bdc9
xor ecx, 0xcb70bdc9
mov edx, 0x5494e9f7
xor edx, 0x39ba433
sub ecx, edx
add eax, ecx
xor ecx, ecx
sub ecx, eax
add ecx, 0x96cfe9bb
mov edx, 0xe04f938b
xor edx, 0x1fb06c74
mov eax, ecx
xor eax, edx
mov edx, 0xffffffff
xor edx, 0xa5272711
or eax, edx
and ecx, 0xa5272711
xor ecx, 0xffffffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
cmp eax, 0x2cbfc83
jb 0x140162861
mov rcx, qword [rsp + 0x30]
mov eax, dword [0x1401e15b8]
mov r9d, dword [0x1401e15bc]
xor r9d, 0x349876a0
mov edx, 0x28ab5f2c
xor edx, 0xd754a0d3
mov r10d, r9d
xor r10d, edx
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 edx, 0x265a0848
xor edx, 0x8dd086b
add eax, edx
mov r8d, 0x46787f53
xor r8d, 0x15deffcc
mov edx, eax
and edx, r8d
mov r8d, 0x1318f398
xor r8d, 0x1318f39a
imul edx, r8d
mov r8d, 0x1b9d5b86
xor r8d, 0x483bdb19
xor eax, r8d
add eax, edx
imul eax, eax, 0xad1a53dd
mov dword [rsp + 0x28], eax
mov eax, 0x3163d786
xor eax, 0xe3e22985
mov dword [rsp + 0x24], eax
call fcn.14000de03
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0x28]
cmp eax, ecx
je 0x14016276c
jmp 0x14016282b
add rsp, 0xb0
pop rsi
ret
cli
je 0x140162854
mov ecx, ebp
and dh, ch
invalid
bnd jmp 0x11fffc484
invalid
fnsave dword [rdx + rcx*4 - 0x6f]
jmp 0x14016239f
sti
invalid
shl byte [rcx + 0x38], cl
insb byte [rdi], dx
jmp 0x1401625df
in al, 0x63
pop rsp
jmp 0x14016276c