Function at 0x140057510
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x18
lea rbp, [rsp + 0x10]
mov rdi, r8
mov qword [rbp - 8], rdx
mov rsi, rcx
mov eax, dword [0x141dcb2a8]
sub eax, dword [0x141dcb2ac]
cmp eax, 0xca286708
jne 0x140057560
mov eax, 0x40
call fcn.1400f1350
sub rsp, rax
mov eax, 0x10
call fcn.1400f1350
sub rsp, rax
nop dword [rax]
mov eax, dword [0x141dcb2b0]
sub eax, dword [0x141dcb2b4]
imul ecx, eax, 0x81091ed1
add ecx, 0xd7dbfa27
mov eax, 0x40
call fcn.1400f1350
sub rsp, rax
mov r15, rsp
mov eax, 0x10
call fcn.1400f1350
sub rsp, rax
mov r12, rsp
cmp ecx, 0xa6ae16d0
ja 0x140057560
mov eax, 0x20
call fcn.1400f1350
sub rsp, rax
mov r13, rsp
mov r14, qword [rsi]
mov cl, 1
cmp byte [rsi + 0x10], 0
jne 0x140057989
mov rax, qword [rsi + 8]
mov qword [rbp], rax
mov eax, dword [rax + 0x34]
xor ecx, ecx
nop dword [rax]
test cl, cl
jne 0x1400575d0
nop word cs:[rax + rax]
mov ecx, dword [0x141dcb2b8]
or ecx, dword [0x141dcb2bc]
imul ecx, ecx, 0xa0a5f670
and ecx, 0x8420800
cmp ecx, 0x7f91d359
je 0x1400575e0
test al, 4
jne 0x14005776f
lea rcx, [0x141db8183]
lea r8, [0x141db8177]
nop word cs:[rax + rax]
mov eax, dword [0x141dcb2c0]
xor edx, edx
div dword [0x141dcb2c4]
xor eax, 0x2500161
and eax, 0x253137d
imul edx, eax, 0x4cb93640
xor r15d, r15d
test r14, r14
mov r12, r8
cmove r12, rcx
setne al
cmp edx, 0xd9518c95
ja 0x140057620
mov r15b, al
inc r15
mov qword [rbp - 0x10], rdi
mov eax, dword [0x141dcb2c8]
sub eax, dword [0x141dcb2cc]
or eax, 0x6164cc60
and eax, 0xf164cc7e
add eax, 0xd6640060
cmp eax, 0xdabe9e60
ja 0x140057660
mov rax, qword [rbp]
mov r13, qword [rax + 0x20]
mov rbx, qword [rax + 0x28]
xor eax, eax
test al, al
je 0x1400576b0
sub rsp, 0x20
mov rcx, r13
mov rdx, r12
mov r8, r15
call qword [rbx + 0x18]
add rsp, 0x20
nop dword [rax + rax]
mov eax, dword [0x141dcb2d0]
or eax, dword [0x141dcb2d4]
add eax, 0xf5ab365a
or eax, 0x34ef9547
imul rdi, rax, 0x4bb51eb7
shr rdi, 0x3e
sub rsp, 0x20
mov rcx, r13
mov rdx, r12
mov r8, r15
call qword [rbx + 0x18]
add rsp, 0x20
cmp edi, 0x908e98de
ja 0x1400576b0
mov cl, 1
test al, al
mov rbx, qword [rbp - 0x10]
jne 0x140057959
mov eax, dword [0x141dcb2d8]
sub eax, dword [0x141dcb2dc]
and eax, 0x7626d336
add eax, 0xa4b37721
mov ecx, 0xb4eba937
imul rcx, rax
shr rcx, 0x3f
cmp ecx, 0x4e4dc88d
mov r15, qword [rbp - 8]
mov r12, qword [rbp]
jbe 0x140057740
sub rsp, 0x20
mov rcx, r15
mov rdx, r12
call rbx
add rsp, 0x20
nop
mov edi, dword [0x141dcb2e0]
sub edi, dword [0x141dcb2e4]
and edi, 0x9d35b85b
sub rsp, 0x20
mov rcx, r15
mov rdx, r12
call rbx
add rsp, 0x20
cmp edi, 0xe640bf8d
je 0x140057740
jmp 0x140057957
xor ecx, ecx
nop word cs:[rax + rax]
test cl, cl
jne 0x140057780
test r14, r14
jne 0x1400577e2
nop dword [rax]
mov eax, dword [0x141dcb2e8]
or eax, dword [0x141dcb2ec]
add eax, 0x531da613
and eax, 0xc45ecca
cmp eax, 0xd6af42fe
je 0x140057790
mov rax, qword [rbp]
mov rcx, qword [rax + 0x20]
mov rax, qword [rax + 0x28]
sub rsp, 0x20
lea rdx, [0x141db8184]
mov r8d, 2
call qword [rax + 0x18]
add rsp, 0x20
mov cl, 1
test al, al
jne 0x140057959
mov rax, qword [rbp]
mov eax, dword [rax + 0x34]
mov byte [r12], 1
mov r8, qword [rbp]
movups xmm0, xmmword [r8 + 0x20]
movaps xmmword [r13], xmm0
mov qword [r13 + 0x10], r12
mov ecx, dword [r8 + 0x30]
movzx edx, byte [r8 + 0x38]
mov dword [r15 + 0x34], eax
mov dword [r15 + 0x30], ecx
mov byte [r15 + 0x38], dl
movups xmm0, xmmword [r8]
movaps xmmword [r15], xmm0
movups xmm0, xmmword [r8 + 0x10]
movaps xmmword [r15 + 0x10], xmm0
mov qword [r15 + 0x20], r13
lea rax, [0x141db8140]
mov qword [r15 + 0x28], rax
sub rsp, 0x20
mov rcx, qword [rbp - 8]
mov rdx, r15
call rdi
add rsp, 0x20
test al, al
je 0x140057890
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x140057850
nop word cs:[rax + rax]
mov eax, dword [0x141dcb308]
sub eax, dword [0x141dcb30c]
imul eax, eax, 0x5bbe3c84
add eax, 0x491a9ee4
xor eax, 0x62bc5bb9
cmp eax, 0x24efd83f
jb 0x140057860
mov cl, 1
jmp 0x140057959
mov eax, dword [0x141dcb2f0]
imul eax, dword [0x141dcb2f4]
imul rax, rax, 0x6e4fcb67
shr rax, 0x3e
or eax, 0x5a0034d8
cmp eax, 0x82c697c
je 0x140057890
mov rdi, qword [r15 + 0x20]
mov eax, dword [0x141dcb2f8]
or eax, dword [0x141dcb2fc]
add eax, 0xb9e9c6c4
mov ecx, 0xe49ba389
imul rcx, rax
shr rcx, 0x3b
cmp ecx, 0x9d6a796d
jne 0x1400578fd
mov rax, qword [r15 + 0x28]
sub rsp, 0x20
lea rdx, [0x141db817e]
mov r8d, 2
mov rcx, rdi
call qword [rax + 0x18]
add rsp, 0x20
lea rbx, [0x141db817e]
nop word cs:[rax + rax]
mov r12d, dword [0x141dcb300]
or r12d, dword [0x141dcb304]
add r12d, 0x4905ddb4
and r12d, 0xb296a408
add r12d, 0xec1b0b1f
mov rax, qword [r15 + 0x28]
sub rsp, 0x20
mov r8d, 2
mov rcx, rdi
mov rdx, rbx
call qword [rax + 0x18]
add rsp, 0x20
cmp r12d, 0x4fcb1d53
jbe 0x140057910
mov ecx, eax
mov r8d, 0x98e05759
nop
mov eax, dword [0x141dcb310]
xor edx, edx
div dword [0x141dcb314]
imul eax, eax, 0x28e186e
imul rax, r8
shr rax, 0x3b
imul eax, eax, 0xa0fe7401
cmp eax, 0x87ee846d
ja 0x140057960
mov eax, dword [0x141dcb318]
xor eax, dword [0x141dcb31c]
mov edx, 0x92d07607
imul rdx, rax
shr rdx, 0x3f
add edx, 0x29760ef7
cmp edx, 0xf85e85ab
jbe 0x1400579ba
mov byte [rsi + 0x10], cl
lea rax, [r14 + 1]
mov qword [rsi], rax
inc r14
nop dword [rax]
mov eax, dword [0x141dcb320]
and eax, dword [0x141dcb324]
and eax, 0x184f0d3a
imul eax, eax, 0xb0d7ad7c
add eax, 0x3513fbb4
mov byte [rsi + 0x10], cl
mov qword [rsi], r14
cmp eax, 0xf213dc0f
ja 0x1400579c0
mov rax, rsi
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret