Function at 0x140158920
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
mov eax, 0x1068
call fcn.1401516e0
sub rsp, rax
mov rbx, rdx
mov rsi, rcx
call fcn.140159200
mov rdi, rax
mov rax, qword [rbx]
mov qword [rsp + 0x28], rax
lea r15, [rsp + 0x58]
nop word cs:[rax + rax]
mov eax, dword [0x1402185a8]
mov ecx, dword [0x1402185ac]
mov edx, eax
xor edx, ecx
not edx
or eax, ecx
and eax, edx
mov ecx, eax
or ecx, 0x10df429c
and ecx, 0x10dfe29c
or eax, 0x16dfeade
add eax, ecx
and eax, 0x178e0619
cmp eax, 0xe8820193
ja 0x140158960
xor r12d, r12d
mov r13d, 0xae7ca4a1
mov eax, dword [0x1402185b0]
xor edx, edx
div dword [0x1402185b4]
and eax, 0x462296d0
add eax, 0x63453073
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xe30532c0
and ecx, 0x1c32cd3c
imul ecx, edx
mov edx, eax
and edx, 0xc62c533
or eax, 0x1c72cd3f
imul eax, edx
add eax, ecx
cmp eax, 0xa6f123e3
jb 0x140158c00
nop word [rax + rax]
mov eax, dword [0x1402185b8]
add eax, dword [0x1402185bc]
and eax, 0x14107890
mov ecx, eax
xor ecx, 0x1020059
xor eax, 0xbe3c3fa6
mov edx, eax
and edx, 0x18086486
and ecx, 0x5121859
imul ecx, edx
mov edx, eax
and edx, 0xa6341b30
or eax, 0xa7361b79
imul eax, edx
add eax, ecx
mov rcx, qword [rsi]
mov r14, rcx
and r14, 0xfffffffffffffff8
mov rdx, qword [r14 + 0x810]
cmp eax, 0xc0cb0d14
ja 0x140158c00
mov rbp, rdx
and rbp, 0xfffffffffffffff8
je 0x140159144
mov eax, r12d
and eax, 1
xor r12, 1
lea r12, [r12 + rax*2]
nop dword [rax + rax]
mov rax, qword [rbp + 0x808]
and rax, 0xfffffffffffffffe
mov r8, rdi
sub r8, rax
cmp r8, 4
jl 0x140159144
mov rax, rcx
lock cmpxchg qword [rsi], rdx
sete al
mov r8d, dword [0x1402185c0]
or r8d, dword [0x1402185c4]
mov r9d, r8d
xor r9d, 0x8845824
xor r8d, 0x18877c3c
and r9d, 0xedc5aa4
add r9d, r9d
sub r9d, r8d
mov r8d, r9d
xor r8d, 0xe49d59f
add r8d, r9d
and r9d, 0xf1b62a60
sub r8d, r9d
cmp r8d, 0xdd576ada
je 0x140158a96
test al, al
jne 0x140158c20
mov eax, dword [0x140218608]
mov ecx, dword [0x14021860c]
mov edx, eax
not edx
mov r8d, ecx
not r8d
mov r9d, edx
and r9d, 0x1fe0f499
and eax, 0xe01f0b66
or eax, r9d
or edx, r8d
and r8d, 0x1fe0f499
and ecx, 0xe01f0b66
or ecx, r8d
xor ecx, eax
not edx
or edx, ecx
imul eax, edx, 0xa44ff959
or eax, 0x47f16c4f
mov ecx, eax
and ecx, 0x5c9e3155
add ecx, ecx
neg ecx
add eax, ecx
add eax, 0x5c9e3155
cmp eax, 0x47695280
jb 0x140158b86
mov eax, dword [0x140218610]
add eax, dword [0x140218614]
mov edx, eax
or edx, 0x300580c5
not eax
and eax, 0x8503332
and edx, 0xf08d80cd
or edx, eax
imul rdx, r13
shr rdx, 0x3e
mov rcx, qword [rsi]
cmp edx, 0xaa55b387
jbe 0x140158b90
mov rax, qword [rsi]
jmp 0x140158b50
mov r14, rcx
and r14, 0xfffffffffffffff8
mov rdx, qword [r14 + 0x810]
mov rbp, rdx
and rbp, 0xfffffffffffffff8
nop word cs:[rax + rax]
mov eax, dword [str.WmL]
mov r8d, dword [0x14021861c]
mov r9d, r8d
and r9d, eax
add eax, r8d
sub eax, r9d
mov r8d, eax
xor r8d, 0xd5b59ac4
and r8d, eax
add r8d, 0xe53df22d
xor r8d, 0x7817686e
cmp r8d, 0x7f7c1b01
jb 0x140158bb0
test rbp, rbp
jne 0x140158a70
jmp 0x140159144
mov rax, qword [rsi]
mov rcx, rax
xor rcx, 7
or rax, 0xfffffffffffffff8
and rax, rcx
mov rax, qword [rax + 0x810]
jmp 0x1401589f0
mov rax, qword [rsi + 0x80]
cmp rcx, rax
jne 0x140158d6b
mov eax, dword [0x1402185f0]
or eax, dword [0x1402185f4]
add eax, 0x8a726df9
mov r8d, eax
not r8d
mov r9d, eax
and r9d, 0xdd21ceca
and r8d, 0x22de3135
imul r8d, r9d
mov r9d, eax
and r9d, 0x22de3135
or eax, 0x22de3135
imul eax, r9d
add eax, r8d
mov r8d, eax
xor r8d, 0xaa10f2b0
or eax, 0x55ef0d4f
and eax, r8d
cmp eax, 0x741ef192
jbe 0x140158ca0
mov rax, rcx
lock cmpxchg qword [rsi + 0x80], rdx
nop word [rax + rax]
mov eax, dword [0x1402185f8]
mov r8d, dword [0x1402185fc]
mov r9d, eax
not r9d
and r9d, r8d
mov r10d, r8d
not r10d
and r10d, eax
imul r10d, r9d
mov r9d, eax
and r9d, r8d
or eax, r8d
imul eax, r9d
add eax, r10d
mov r8d, eax
xor r8d, 0xa4bae5da
xor eax, 0x1a001800
and eax, 0x1aa2bdd0
mov r9d, r8d
and r9d, 0xe55d422f
or r9d, eax
xor r9d, 0x3122fdbe
mov rax, rcx
lock cmpxchg qword [rsi + 0x80], rdx
and r8d, 0x2b80406e
or r8d, r9d
add r8d, 0x3dbc21a2
cmp r8d, 0xc29d7be5
ja 0x140158ca0
nop word cs:[rax + rax]
mov eax, dword [0x140218600]
add eax, dword [0x140218604]
mov edx, eax
and edx, 0x2fd773a6
add edx, edx
sub eax, edx
add eax, 0x2fd773a6
mov edx, eax
not edx
or edx, 0x94140420
and edx, 0x9516dda3
and eax, 0x22412218
or eax, edx
cmp eax, 0x485ce785
je 0x140158d30
cmp qword [rsp + 0x28], 0
je 0x140158de0
lea rax, [0x140087820]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rcx
mov eax, dword [0x1402185e0]
mov ecx, dword [0x1402185e4]
mov edx, eax
not edx
and edx, ecx
mov r8d, ecx
not r8d
and r8d, eax
imul r8d, edx
mov edx, eax
and edx, ecx
or eax, ecx
imul eax, edx
add eax, r8d
imul rcx, rax, 0x53b8e853
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
add eax, 0x2f297089
cmp eax, 0xf269b153
jbe 0x140159100
jmp 0x140159133
mov ecx, dword [0x1402185c8]
mov eax, dword [0x1402185cc]
mov edx, ecx
and edx, eax
not edx
not ecx
not eax
or eax, ecx
and eax, edx
not eax
add eax, 0x60fec28f
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x48ca2584
and ecx, 0xb735da7b
imul ecx, edx
mov edx, eax
and edx, 0xb735da7b
or eax, 0xb735da7b
imul eax, edx
add eax, ecx
cmp eax, 0x49771e09
jb 0x140158de0
mov eax, dword [0x1402185d0]
add eax, dword [0x1402185d4]
imul rcx, rax, 0x4d496479
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
cmp eax, 0xa2ea723f
jne 0x140158e70
mov rcx, qword [0x14022cb48]
xor edx, edx
mov r8, r14
call fcn.14014eed0
nop word [rax + rax]
mov eax, dword [0x1402185d8]
and eax, dword [str.Am2]
mov ecx, eax
not ecx
or ecx, 0xec278493
lea ebx, [rax + rcx]
add ebx, 0x1dc8fff3
mov rcx, qword [0x14022cb48]
xor edx, edx
mov r8, r14
call fcn.14014eed0
cmp ebx, 0x90716af7
ja 0x140158e70
mov r9, r15
nop dword [rax + rax]
mov eax, dword [0x140218620]
and eax, dword [0x140218624]
xor eax, 0x40008a01
or eax, 0x9f2e708e
cmp eax, 0xc62c8e19
je 0x140158eb0
mov r14, qword [rbp]
test r14, r14
lea r15, [rsp + 0x38]
je 0x140159144
add rbp, 8
mov r8d, 0x808
lea rbx, [rsp + 0x860]
mov rcx, rbx
mov rdx, rbp
mov rbp, r9
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x50], r14
mov r8d, 0x808
mov rcx, rbp
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
nop word cs:[rax + rax]
mov eax, dword [0x140218628]
mov ecx, dword [0x14021862c]
mov edx, ecx
not edx
mov r8d, eax
and r8d, edx
or edx, eax
not edx
imul edx, r8d
mov r8d, eax
and r8d, ecx
or eax, ecx
imul eax, r8d
add eax, edx
add eax, 0x577d5672
mov ecx, eax
and ecx, 0x7c1932f7
add ecx, ecx
sub eax, ecx
add eax, 0xfc1932f7
cmp eax, 0x65483f45
jb 0x140158f20
mov r14, qword [rsp + 0x850]
cmp r14, 0x40
ja 0x140159158
mov eax, dword [0x140218630]
xor edx, edx
div dword [0x140218634]
mov eax, dword [0x140218638]
mov ecx, dword [0x14021863c]
mov edx, eax
xor edx, ecx
not ecx
and ecx, eax
add ecx, ecx
sub ecx, edx
mov eax, ecx
xor eax, 0x7a451a77
or ecx, 0x85bae588
and ecx, eax
mov eax, ecx
xor eax, 0x3005d030
xor ecx, 0x3b05dc30
and eax, 0x7065d0bd
add eax, eax
sub eax, ecx
cmp eax, 0xdb128d22
ja 0x140158f89
nop dword [rax]
mov eax, dword [0x140218640]
sub eax, dword [0x140218644]
add eax, 0xfad9548c
xor eax, 0x562f9a3b
cmp eax, 0x812c44b0
je 0x140158fd0
test r14, r14
je 0x140159040
shl r14, 5
xor ebp, ebp
nop dword [rax + rax]
movups xmm0, xmmword [rsp + rbp + 0x50]
movups xmm1, xmmword [rsp + rbp + 0x60]
movaps xmmword [rsp + 0x40], xmm1
movaps xmmword [rsp + 0x30], xmm0
movups xmm0, xmmword [0x140206ef8]
movups xmmword [rsp + rbp + 0x50], xmm0
movups xmm0, xmmword [0x140206f08]
movups xmmword [rsp + rbp + 0x60], xmm0
mov rcx, r15
call qword [rsp + 0x30]
add rbp, 0x20
cmp r14, rbp
jne 0x140159000
nop dword [rax]
mov eax, dword [0x140218658]
mov ecx, dword [0x14021865c]
mov edx, ecx
not edx
mov r8d, eax
and r8d, edx
or edx, eax
not edx
imul edx, r8d
mov r8d, eax
and r8d, ecx
or eax, ecx
imul eax, r8d
add eax, edx
add eax, 0x78c36f20
mov ecx, eax
and ecx, 0xc4cac92
xor eax, 0xc4cac92
lea eax, [rax + rcx*2]
add eax, 0x5239e8ba
cmp eax, 0x5d59f7cb
jb 0x140159040
lea r15, [rsp + 0x58]
nop word cs:[rax + rax]
mov eax, dword [0x140218660]
mov ecx, dword [0x140218664]
add eax, ecx
add eax, 0x5d7afcf4
mov ecx, eax
xor ecx, 0x2261e441
and eax, 0x5d9e1bbe
add eax, eax
sub eax, ecx
mov ecx, eax
not ecx
and ecx, 0x2bc99266
mov edx, eax
and edx, 0xd4366d99
imul edx, ecx
mov ecx, eax
and ecx, 0x2bc99266
or eax, 0x2bc99266
imul eax, ecx
add eax, edx
cmp eax, 0x29391e61
jb 0x1401590a0
cmp r12, 8
jne 0x1401589a0
jmp 0x140159144
mov ebx, dword [0x1402185e8]
or ebx, dword [0x1402185ec]
add ebx, 0x6c835266
or ebx, 0xfebdd7ce
mov rcx, qword [rsp + 0x28]
lea rdx, [rsp + 0x50]
call fcn.140087870
cmp ebx, 0xc1a04a43
ja 0x140158ea8
mov rcx, qword [rsp + 0x28]
lea rdx, [rsp + 0x50]
call fcn.140087870
jmp 0x140159100
add rsp, 0x1068
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x140218648]
or eax, dword [0x14021864c]
mov ecx, eax
and ecx, 0xbd90021d
mov edx, ecx
not edx
and edx, 0x99522396
mov r8d, eax
and r8d, 0x24800009
imul r8d, edx
and eax, 0x99100214
or ecx, 0x99522396
imul ecx, eax
lea eax, [rcx + r8]
add eax, 0x30430b9d
cmp eax, 0x35f96821
jae 0x1401591b0
ud2
mov eax, dword [0x140218650]
add eax, dword [0x140218654]
mov ecx, eax
not ecx
mov edx, eax
or edx, 0xff74f3ce
mov r8d, edx
and r8d, 0x38cd4a2
and ecx, 0x30811
imul ecx, r8d
and edx, 0xfc732b5d
or eax, 0xff77fbdf
imul eax, edx
add eax, ecx
ud2