Function at 0x140015e60
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x140015e80
nop word cs:[rax + rax]
mov eax, dword [0x14020ee0c]
add eax, dword [0x14020ee08]
mov edx, eax
not edx
or edx, 0x1e13012
and edx, 0xb3f1f812
and eax, 0x8040629
or eax, edx
mov edx, eax
xor edx, 0x4802204
xor eax, 0x1878890b
or eax, 0xa4054214
or edx, 0x1b789d6b
and edx, eax
cmp edx, 0x4daca467
je 0x140015e90
mov r9, qword [rcx + 8]
test r9, r9
je 0x1400164f0
nop word cs:[rax + rax]
mov eax, dword [0x14020ee10]
or eax, dword [0x14020ee14]
mov r8d, eax
xor r8d, 0x1fdb0cbf
add r8d, eax
and eax, 0xe024f340
sub r8d, eax
mov eax, r8d
not eax
and eax, 0xf55cdfb
mov edx, r8d
and edx, 0xf0aa3204
imul edx, eax
mov eax, r8d
and eax, 0xf55cdfb
or r8d, 0xf55cdfb
imul r8d, eax
add r8d, edx
or r8d, 0x7ff7d103
cmp r8d, 0x3ea665f9
jb 0x140015ef0
mov qword [rsp + 0x28], r9
nop word cs:[rax + rax]
mov eax, dword [str.s:__b]
xor edx, edx
div dword [0x14020ee1c]
or eax, 0x560aae45
mov edx, eax
xor edx, 0x80f98811
and edx, eax
or edx, 0x260677c6
cmp edx, 0x3450515c
jb 0x140015f60
mov qword [rsp + 0x20], rcx
mov r14, qword [rcx + 0x18]
nop word cs:[rax + rax]
mov eax, dword [0x14020ee20]
sub eax, dword [0x14020ee24]
add eax, 0xed7d8c88
or eax, 0xdfe5883b
add eax, 0xb08e306f
cmp eax, 0xfd7316
jb 0x140015fa0
test r14, r14
je 0x140016364
mov r9, qword [rsp + 0x20]
mov ecx, dword [0x14020ee28]
mov eax, dword [str.w__f]
mov edx, ecx
xor edx, eax
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov ecx, eax
not ecx
mov edx, eax
or edx, 0xcd78ce03
and ecx, 0x320220c0
mov r8d, edx
and r8d, 0xc0add33f
imul r8d, ecx
and edx, 0x3f522cc0
or eax, 0xff7aeec3
imul eax, edx
add eax, r8d
mov ecx, eax
and ecx, 0x5db080
add ecx, ecx
sub eax, ecx
cmp eax, 0x64411474
je 0x140015fd0
mov r13, qword [r9]
movdqa xmm0, xmmword [r13]
pmovmskb r12d, xmm0
not r12d
lea rbp, [r13 + 0x10]
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x140016050
mov rsi, qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
test r12w, r12w
jne 0x140016100
nop word [rax + rax]
mov eax, dword [0x14020ee38]
and eax, dword [0x14020ee3c]
add eax, 0x9d1ab4e
mov ecx, eax
not ecx
and ecx, 0x4f72c382
mov edx, eax
and edx, 0xb08d3c7d
imul edx, ecx
mov ecx, eax
and ecx, 0x4f72c382
or eax, 0x4f72c382
imul eax, ecx
add eax, edx
cmp eax, 0x33441d11
je 0x140016070
add r13, 0xfffffffffffffc80
movdqa xmm0, xmmword [rbp]
add rbp, 0x10
pmovmskb r12d, xmm0
cmp r12w, 0xffff
je 0x140016070
nop dword [rax + rax]
mov eax, dword [0x14020ee30]
add eax, dword [0x14020ee34]
or eax, 0xa7a9161
imul rax, rax, 0x4417abb3
shr rax, 0x3e
or eax, 0xc3cc1dde
xor eax, 0x73a229ce
cmp eax, 0xa7c8e1f9
jbe 0x1400160d0
not r12d
mov qword [rsp + 0x30], r14
mov eax, dword [0x14020ee40]
sub eax, dword [0x14020ee44]
and eax, 0x380b2284
cmp eax, 0xc757c9b8
je 0x140016105
tzcnt eax, r12d
movabs rdx, 0xbf6eab659358634
mov rcx, rdx
sub rcx, rax
sub rcx, rdx
imul rax, rcx, 0x38
lea rdi, [rax + r13]
cmp qword [r13 + rax - 0x38], 0
je 0x14001625c
nop dword [rax]
mov eax, dword [0x14020ee48]
xor eax, dword [0x14020ee4c]
mov ecx, eax
xor ecx, 0x9ab056e3
xor eax, 0x18101200
and eax, 0x181e9b00
add eax, eax
sub ecx, eax
cmp ecx, 0xfff7a579
je 0x140016150
mov eax, dword [0x14020ee50]
add eax, dword [0x14020ee54]
imul eax, eax, 0xac9e304c
add eax, 0x591388a8
and eax, 0xbe3a68b0
cmp eax, 0x2f8d21bf
jae 0x1400161a4
mov rax, qword [0x14022cb48]
xor eax, eax
nop word cs:[rax + rax]
mov rbx, qword [rdi - 0x30]
mov r14, qword [0x14022cb48]
test al, al
jne 0x1400161b0
mov eax, dword [0x14020ee58]
xor eax, dword [0x14020ee5c]
or eax, 0x9e48354a
add eax, 0x87395d35
or eax, 0xe1088c5
cmp eax, 0x172c0e22
jae 0x1400161f0
mov rcx, r14
xor edx, edx
mov r8, rbx
call rsi
nop dword [rax + rax]
mov eax, dword [0x14020ee60]
xor edx, edx
div dword [0x14020ee64]
mov r15d, eax
xor r15d, 0x1d5c5dee
and r15d, eax
mov eax, r15d
not eax
and eax, 0x8752fcdb
mov ecx, r15d
and ecx, 0x78ad0324
imul ecx, eax
mov eax, r15d
and eax, 0x8752fcdb
or r15d, 0x8752fcdb
imul r15d, eax
add r15d, ecx
mov eax, r15d
and eax, 0x18f0b993
or r15d, 0x18f0b993
add r15d, eax
mov rcx, r14
xor edx, edx
mov r8, rbx
call rsi
cmp r15d, 0x3bcf8987
ja 0x1400161f0
mov eax, r12d
neg eax
or eax, r12d
add eax, r12d
mov r12d, eax
mov r14, qword [rsp + 0x30]
mov rax, r14
not rax
lea r14, [rax + r14*2]
mov eax, dword [0x14020ee68]
xor edx, edx
div dword [0x14020ee6c]
mov eax, dword [0x14020ee70]
or eax, dword [0x14020ee74]
add eax, 0x8424c3b5
xor eax, 0x648601fa
add eax, 0x141cd525
cmp eax, 0x78686349
ja 0x140016287
add rdi, 0xffffffffffffffe0
mov eax, dword [0x14020ee78]
mov ecx, dword [0x14020ee7c]
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
or eax, 0x13c5072e
imul eax, eax, 0x69b2722
not eax
or eax, 0x813e9cf3
cmp eax, 0x65f3ac10
jae 0x140016300
mov rcx, rdi
call fcn.140016a30
nop word [rax + rax]
mov eax, dword [0x14020ee80]
add eax, dword [0x14020ee84]
mov ecx, eax
not ecx
and ecx, 0xb4cc97ee
mov edx, eax
and edx, 0x4b336811
imul edx, ecx
mov ecx, eax
and ecx, 0xb4cc97ee
or eax, 0xb4cc97ee
imul eax, ecx
lea ebx, [rax + rdx]
add ebx, 0x30894cc4
mov eax, ebx
xor eax, 0xe65da51f
and ebx, 0x19a25ae0
add ebx, ebx
sub ebx, eax
mov rcx, rdi
call fcn.140016a30
cmp ebx, 0xe93453c6
je 0x140016300
test r14, r14
jne 0x140016060
movabs r8, 0x14458e09daa73545
mov r11, qword [rsp + 0x28]
lea rcx, [r11 + 1]
mov r9d, 0x38
nop dword [rax]
mov eax, dword [0x14020ee88]
add eax, dword [0x14020ee8c]
mov edx, eax
xor edx, 0x3c26e240
or eax, 0xc3d91dbf
and eax, edx
mov edx, eax
and edx, 0x4732440a
add edx, edx
neg edx
lea r10d, [rax + rdx]
add r10d, 0xc732440a
xor r10d, 0x47d4c7f8
mov rax, rcx
mul r9
cmp r10d, 0x601fb50d
jb 0x140016380
mov rdi, rax
add rdi, 0xf
and rdi, 0xfffffffffffffff0
mov rax, rdi
sub rax, r8
add r11, rax
lea rcx, [r8 + r11]
add rcx, 0x11
mov eax, dword [0x14020ee90]
xor edx, edx
div dword [0x14020ee94]
mov r8, qword [rsp + 0x20]
nop word [rax + rax]
mov eax, dword [0x14020ee98]
mov edx, eax
not edx
or edx, dword [0x14020ee9c]
add eax, edx
inc eax
imul rax, rax, 0xa526f3f
shr rax, 0x38
and eax, 0xfffffff9
or eax, 0xa97062f0
cmp eax, 0x86525caa
jb 0x140016400
test rcx, rcx
je 0x1400164f0
mov rsi, qword [r8]
neg rdi
mov eax, dword [0x14020eea0]
mov ecx, dword [0x14020eea4]
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
imul rax, rax, 0x251e0c13
shr rax, 0x3d
or eax, 0x1c7e8a92
cmp eax, 0xc7267114
jbe 0x140016492
lea r8, [rsi + rdi]
mov rcx, qword [0x14022cb48]
xor edx, edx
call fcn.14014eed0
add rsi, rdi
nop word cs:[rax + rax]
mov eax, dword [0x14020eea8]
mov ecx, dword [0x14020eeac]
mov edx, ecx
and edx, eax
add eax, ecx
sub eax, edx
mov ecx, eax
not ecx
or ecx, 0x8f3536fa
or eax, 0x70cac905
and eax, ecx
imul edi, eax, 0xe35e23e0
add edi, 0x626720c0
mov rcx, qword [0x14022cb48]
xor edx, edx
mov r8, rsi
call fcn.14014eed0
cmp edi, 0xd96ebf65
ja 0x1400164a0
nop word [rax + rax]
mov eax, dword [0x14020eeb4]
mov ecx, eax
xor ecx, eax
not ecx
and ecx, dword [0x14020eeb0]
xor ecx, eax
mov eax, ecx
and eax, 0xa442027
xor eax, 0x9068bff8
and ecx, 0xa040007
add ecx, ecx
sub ecx, eax
cmp ecx, 0x26592f9
je 0x1400164f0
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret