Function at 0x1401005d0
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
mov rdi, r9
mov rbx, r8
mov rsi, rcx
mov r15d, dword [rcx]
test dl, dl
je 0x14010098b
mov r12d, 0x8f2197bb
lea r10, [rsp + 0x2c]
mov rbp, qword [0x1401082a8]
mov r13d, 0x874c9c15
nop dword [rax]
mov eax, dword [0x141f3b5a0]
xor edx, edx
div dword [0x141f3b5a4]
mov eax, dword [0x141f3b5a8]
xor eax, dword [0x141f3b5ac]
xor eax, 0x7b9d2b74
imul eax, eax, 0xca66101d
cmp eax, 0x510c499
je 0x14010061e
mov ecx, r15d
and ecx, 3
mov edx, r15d
and edx, 4
cmp ecx, 2
jae 0x140100730
mov eax, dword [0x141f3b5f0]
imul eax, dword [0x141f3b5f4]
and eax, 0x756455f1
add eax, 0xb832c61d
cmp eax, 0x27e74978
jae 0x140100680
mov r8d, edx
or r8d, 2
mov eax, r15d
lock cmpxchg dword [rsi], r8d
nop
mov r9d, dword [0x141f3b5f8]
and r9d, dword [0x141f3b5fc]
xor r9d, 0x42080046
and r9d, 0x6e29005e
add r9d, 0x5ff3fc72
mov r8d, edx
or r8d, 2
mov eax, r15d
lock cmpxchg dword [rsi], r8d
sete r8b
cmp r9d, 0x202a7c3
jb 0x140100680
mov edx, dword [0x141f3b600]
mov r9d, dword [0x141f3b604]
add edx, r9d
add edx, 0x30bd31b9
and edx, 0xc898d1
add edx, 0xe6fee4d2
cmp edx, 0xe2dfa460
jb 0x1401006bf
nop dword [rax]
mov edx, dword [0x141f3b608]
and edx, dword [0x141f3b60c]
and edx, 0x570156f3
imul edx, edx, 0xfc94a0db
shr edx, 1
imul rdx, rdx, 0x829cd2d
shr rdx, 0x3a
cmp edx, 0x3557fdaf
ja 0x1401006f0
test r8b, r8b
je 0x140100900
jmp 0x140100960
jne 0x140100b54
nop word cs:[rax + rax]
mov eax, dword [0x141f3b5b0]
add eax, dword [0x141f3b5b4]
or eax, 0xa11bfc5d
add eax, 0x43f414f2
cmp eax, 0x34ba41c6
jb 0x140100740
test edx, edx
jne 0x1401007e3
nop word cs:[rax + rax]
mov eax, dword [0x141f3b5b8]
and eax, dword [0x141f3b5bc]
imul eax, eax, 0x6d32dc8a
or eax, 0x156ca77e
imul rax, r12
shr rax, 0x3f
cmp eax, 0x14a1e61c
ja 0x140100770
add r15d, 4
mov eax, 2
lock cmpxchg dword [rsi], r15d
sete cl
nop word [rax + rax]
mov edx, dword [0x141f3b5c0]
and edx, dword [0x141f3b5c4]
imul rdx, rdx, 0x3ae6e9cd
shr rdx, 0x3d
add edx, 0xe70c8c3b
xor edx, 0xdd5865d3
cmp edx, 0x392a4069
jb 0x1401007b0
test cl, cl
je 0x140100900
mov eax, dword [0x141f3b5c8]
add eax, dword [0x141f3b5cc]
imul eax, eax, 0xf9ba686f
or eax, 0xd9a80f1
add eax, 0x8cd60722
cmp eax, 0xd2589a41
ja 0x140100930
nop word [rax + rax]
mov eax, dword [0x141f3b5d0]
xor eax, dword [0x141f3b5d4]
and eax, 0x58401520
imul r14d, eax, 0x2378c656
mov dword [rsp + 0x2c], r15d
mov r8d, 4
mov rcx, rsi
mov rdx, r10
mov r9d, 0xffffffff
call qword [0x140108338]
lea r10, [rsp + 0x2c]
cmp r14d, 0x5028eb82
jb 0x140100930
cmp eax, 1
je 0x1401008f5
mov eax, dword [0x141f3b5d8]
or eax, dword [0x141f3b5dc]
add eax, 0xe3c0c377
mov ecx, 0xd1288d8d
imul rax, rcx
shr rax, 0x3d
add eax, 0xa549ae09
cmp eax, 0xc9178c16
jbe 0x140100890
call rbp
nop dword [rax]
mov eax, dword [0x141f3b5e0]
xor edx, edx
div dword [0x141f3b5e4]
or eax, 0x65554c5
imul r14d, eax, 0x233085a6
add r14d, 0x7bb1e982
call rbp
cmp r14d, 0xba6ccf0a
jb 0x140100890
lea r10, [rsp + 0x2c]
nop word cs:[rax + rax]
mov eax, dword [0x141f3b5e8]
and eax, dword [0x141f3b5ec]
imul rax, r13
shr rax, 0x3c
add eax, 0x1d13ad7c
and eax, 0x1d12a520
cmp eax, 0xc14cdc75
je 0x1401008d0
mov eax, dword [rsi]
nop word [rax + rax]
mov ecx, dword [0x141f3b610]
mov edx, dword [0x141f3b614]
add ecx, edx
add ecx, 0xce108f68
cmp ecx, 0xe54ab3c8
jae 0x140100900
mov r15d, eax
jmp 0x140100610
mov dword [rsp + 0x2c], r15d
mov r8d, 4
mov rcx, rsi
mov rdx, r10
mov r9d, 0xffffffff
call qword [0x140108338]
lea r10, [rsp + 0x2c]
jmp 0x140100810
mov eax, dword [0x141f3b630]
mov edx, dword [0x141f3b634]
add eax, edx
add eax, 0x4206323b
or eax, 0xebe6ff7b
cmp ecx, 1
sete bpl
cmp eax, 0x8398a03b
je 0x140100960
jmp 0x140100b2c
xor ebp, ebp
lea r12, [0x141f26810]
mov r13, qword [0x140108338]
mov r14, qword [0x1401082a8]
nop word cs:[rax + rax]
test bpl, bpl
jne 0x1401009b0
mov eax, r15d
and eax, 3
mov ecx, r15d
and ecx, 4
mov eax, eax
movsxd rax, dword [r12 + rax*4]
add rax, r12
jmp rax
mov eax, dword [0x141f3b638]
imul eax, dword [0x141f3b63c]
or eax, 0x8522438b
add eax, 0x2e501e6f
xor eax, 0x59ffb1e0
cmp eax, 0x2558bba9
jae 0x140100baf
jmp 0x140100bed
cmp ecx, 3
je 0x140100c6b
mov eax, 0xba4f38f3
mov ecx, dword [0x141f3b618]
sub ecx, dword [0x141f3b61c]
or ecx, 0x442e792a
xor ecx, 0x8617a8cc
imul rcx, rax
shr rcx, 0x3f
cmp ecx, 0xca6ec579
ja 0x140100b62
jmp 0x140100bad
ud2
mov eax, dword [0x141f3b640]
mov ecx, dword [0x141f3b644]
lea r14d, [rax + rcx]
add r14d, 0x76369e62
mov dword [rsp + 0x30], 3
mov byte [rsp + 0x34], bpl
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [rdi + 0x20]
mov eax, dword [rsp + 0x30]
xchg dword [rsi], eax
cmp r14d, 0x46f498f2
jae 0x140100c0d
mov dword [rsp + 0x30], 3
mov byte [rsp + 0x34], bpl
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [rdi + 0x20]
mov eax, dword [rsp + 0x30]
xchg dword [rsi], eax
jmp 0x140100baf
test al, 4
je 0x140100c6b
mov eax, dword [0x141f3b648]
add eax, dword [0x141f3b64c]
or eax, 0xf6b5fc7f
and eax, 0xfefdfcff
cmp eax, 0xd1897c40
jae 0x140100c37
mov rcx, rsi
call qword [0x140108330]
mov rdi, qword [0x140108330]
nop
mov ebx, dword [0x141f3b650]
and ebx, dword [0x141f3b654]
add ebx, 0xa9eb10e2
xor ebx, 0x21030701
and ebx, 0x31bf1f89
mov rcx, rsi
call rdi
cmp ebx, 0xf153e8e4
ja 0x140100c40
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret