Function at 0x140158170
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x50
add rdx, r8
jb 0x1401585d0
mov rsi, rcx
mov ecx, 8
xor r8d, r8d
nop word cs:[rax + rax]
mov rax, qword [rsi]
lea rdi, [rax + rax]
cmp rdi, rdx
cmovbe rdi, rdx
cmp rdi, 9
cmovb rdi, rcx
test r8b, r8b
jne 0x1401581a0
nop dword [rax + rax]
mov ecx, dword [0x140212850]
mov edx, dword [0x140212854]
mov r8d, ecx
xor r8d, edx
not r8d
and r8d, edx
add r8d, r8d
sub edx, r8d
add edx, ecx
shr edx, 2
imul rcx, rdx, 0x4bb9c8db
shr rcx, 0x38
or ecx, 0xfff1efea
cmp ecx, 0x2dc07166
je 0x1401581c0
mov ecx, dword [0x140212858]
mov edx, dword [0x14021285c]
mov r8d, ecx
not r8d
and r8d, edx
mov r9d, edx
not r9d
and r9d, ecx
imul r9d, r8d
mov r8d, ecx
and r8d, edx
or ecx, edx
imul ecx, r8d
add ecx, r9d
imul ecx, ecx, 0x37363992
add ecx, 0xae9e6232
cmp ecx, 0xcc6e19a5
mov rbx, rdi
not rbx
shr rbx, 0x3f
nop dword [rax]
mov ecx, dword [0x140212860]
and ecx, dword [0x140212864]
and ecx, 0xec930279
add ecx, 0xbc3b73df
mov edx, ecx
not edx
and edx, 0x4ea0862e
mov r8d, ecx
and r8d, 0xb05741d1
imul r8d, edx
mov edx, ecx
and edx, 0x4ca8362e
or ecx, 0x4ea8b62e
imul ecx, edx
add ecx, r8d
cmp ecx, 0xba01e14a
je 0x140158250
test rax, rax
je 0x1401582d8
mov rcx, qword [rsi + 8]
mov edx, dword [0x140212868]
or edx, dword [0x14021286c]
mov r8d, 0x837d63f5
imul r8, rdx
shr r8, 0x3d
add r8d, 0x63838c1a
or r8d, 0x84719d17
cmp r8d, 0xeaf31772
jne 0x1401582e0
jmp 0x14015834a
xor r12d, r12d
jmp 0x1401583d4
mov edx, dword [0x140212870]
add edx, dword [0x140212874]
mov r8d, edx
xor r8d, 0x6d8285cc
add r8d, edx
and edx, 0x127d7a33
sub r8d, edx
not r8d
or r8d, 0x899c704e
mov edx, r8d
not edx
and r8d, 0xbd5fbc38
mov r9d, edx
and r9d, 0x42200381
imul r9d, r8d
mov r8d, edx
and r8d, 0x34438c30
or edx, 0xbd5fbc38
imul edx, r8d
add edx, r9d
mov qword [rsp + 0x20], rcx
cmp edx, 0xc8e0e5d9
jne 0x140158351
mov qword [rsp + 0x20], rcx
jmp 0x1401582e0
mov ecx, dword [0x140212878]
imul ecx, dword [0x14021287c]
or ecx, 0x7d5653f5
imul rcx, rcx, 0x6d3dabff
shr rcx, 0x3d
imul ecx, ecx, 0x34255d8b
cmp ecx, 0xda28ce79
je 0x1401583c7
mov ecx, dword [0x140212880]
mov edx, dword [0x140212884]
mov r8d, edx
not r8d
mov r9d, ecx
and r9d, r8d
or r8d, ecx
not r8d
imul r8d, r9d
mov r9d, ecx
and r9d, edx
or ecx, edx
imul ecx, r9d
add ecx, r8d
add ecx, 0x1a35e765
or ecx, 0xfe7ef6ff
mov qword [rsp + 0x30], rax
cmp ecx, 0x51bef528
jae 0x1401583ce
mov qword [rsp + 0x30], rax
jmp 0x14015837d
mov r12d, 1
mov eax, dword [0x140212888]
mov ecx, dword [0x14021288c]
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 eax, eax, 0x752cceee
or eax, 0x84c72dd1
imul rax, rax, 0x41b448d3
shr rax, 0x3e
cmp eax, 0x77de1a59
jbe 0x140158437
mov qword [rsp + 0x28], r12
lea rcx, [rsp + 0x38]
lea r9, [rsp + 0x20]
mov rdx, rbx
mov r8, rdi
call fcn.140040e10
lea r14, [rsp + 0x38]
lea r15, [rsp + 0x20]
nop word cs:[rax + rax]
mov eax, dword [0x140212890]
xor edx, edx
div dword [0x140212894]
xor eax, 0x76399571
imul ebp, eax, 0xeb536609
mov eax, ebp
not eax
mov ecx, ebp
and ecx, 0x71d3864c
and eax, 0x8e2c79b3
imul eax, ecx
mov ecx, ebp
and ecx, 0x8e2c79b3
or ebp, 0x8e2c79b3
imul ebp, ecx
add ebp, eax
mov qword [rsp + 0x28], r12
mov rcx, r14
mov rdx, rbx
mov r8, rdi
mov r9, r15
call fcn.140040e10
cmp ebp, 0x5b00ce14
jb 0x140158450
cmp qword [rsp + 0x38], 0
jne 0x1401585a0
mov eax, dword [0x1402128b8]
or eax, dword [0x1402128bc]
add eax, 0xe02a1ddc
mov ecx, 0xb4bb1125
imul rcx, rax
shr rcx, 0x3e
or ecx, 0xc05e5ae4
cmp ecx, 0x64b3fa0e
nop word cs:[rax + rax]
mov eax, dword [0x1402128c0]
xor eax, dword [0x1402128c4]
add eax, 0xce1b8542
mov ecx, eax
not ecx
or ecx, 0x100a000
and ecx, 0x9187fc45
and eax, 0xa580010
or eax, ecx
cmp eax, 0x2ba25619
je 0x1401584f0
mov rax, qword [rsp + 0x40]
nop word cs:[rax + rax]
mov ecx, dword [0x1402128cc]
add ecx, dword [0x1402128c8]
mov edx, ecx
and edx, 0xd43e4e3b
xor edx, 0x941c4c22
and ecx, 0x941c4c22
or ecx, edx
or ecx, 0x2bc1b1c4
imul rcx, rcx, 0x33623aed
shr rcx, 0x3c
cmp ecx, 0x88c16c18
je 0x140158530
mov ecx, dword [0x1402128d4]
add ecx, dword [0x1402128d0]
imul rcx, rcx, 0x60366b71
shr rcx, 0x3e
add ecx, 0xb07d1aaf
cmp ecx, 0x28277336
jae 0x140158673
jmp 0x1401586a2
mov eax, dword [0x140212898]
mov ecx, dword [0x14021289c]
mov edx, eax
xor edx, ecx
not edx
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
not ecx
or ecx, 0x92800000
and ecx, 0xd29c8014
cmp ecx, 0x44751c9f
je 0x1401585a0
mov eax, dword [0x1402128a0]
mov ecx, dword [0x1402128a4]
add eax, ecx
add eax, 0xbe0bac53
mov ecx, eax
not ecx
or ecx, 0x894023c0
and ecx, 0xa978abfc
and eax, 0x52830001
or eax, ecx
xor eax, 0x6b3b22fc
cmp eax, 0x9fed1815
ja 0x140158631
mov eax, dword [0x1402128a8]
xor eax, dword [0x1402128ac]
imul eax, eax, 0x44c14f59
imul rax, rax, 0x6565e6d5
shr rax, 0x3e
add eax, 0x4a734c23
ud2
ud2
mov ecx, dword [0x1402128d8]
mov edx, ecx
not edx
or edx, dword [0x1402128dc]
add ecx, edx
inc ecx
or ecx, 0xeff37e7d
add ecx, 0x1b31e9f8
mov qword [rsi + 8], rax
mov qword [rsi], rdi
cmp ecx, 0x9dc612d6
jbe 0x1401586ab
mov qword [rsi + 8], rax
mov qword [rsi], rdi
jmp 0x140158673
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret