Function at 0x140318ce0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
mov eax, dword [rcx + 8]
cmp eax, dword [rdx + 8]
jne 0x140318da7
mov eax, dword [rcx + 0xc]
cmp eax, dword [rdx + 0xc]
sete al
setne r8b
movzx r9d, byte [0x14055f2ec]
mov r11d, r9d
xor r11b, 1
mov r10d, eax
and r10b, r9b
and r9b, r8b
and r8b, r11b
or r10b, r8b
and r10b, al
and r11b, al
or r9b, r11b
movsxd r8, dword [0x140443c40]
mov eax, dword [0x140443c50]
test r10b, r9b
jne 0x140318d43
xor r10b, r9b
je 0x140318da7
mov r9d, dword [rcx + 0x10]
cmp r9d, dword [rdx + 0x10]
jne 0x140318da7
mov r9d, dword [rcx + 0x14]
cmp r9d, dword [rdx + 0x14]
jne 0x140318da7
mov r9d, dword [rcx + 0x18]
cmp r9d, dword [rdx + 0x18]
jne 0x140318da7
mov r9d, dword [rcx + 0x1c]
cmp r9d, dword [rdx + 0x1c]
jne 0x140318da7
lea r10, [0x140443c40]
movabs r9, 0xf6d735e396ee8dd5
mov r11, r9
sub r11, r10
movabs r10, 0x74c75c2bf7cbc7ed
add r11, r10
sub r9, r11
add r9, r10
add r9, r8
mov r8d, dword [0x140561c44]
cmp r8d, 0x34
jge 0x140318dd0
jmp 0x140318db6
xor eax, eax
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, dword [0x14053c9c0]
lea r10d, [r8 + 1]
mov dword [0x14053c9c0], r10d
test rcx, rcx
jne 0x140318e0c
nop dword [rax]
mov r8d, dword [0x14053c9c0]
mov r10d, 1
sub r10d, r8d
shl r8d, 2
add r10d, r10d
sub r8d, r10d
add r8d, 0xfffffff9
mov dword [0x14053c9c0], r8d
mov r8d, dword [0x140561c40]
lea r10d, [r8 - 1]
imul r10d, r8d
test r10b, 1
jne 0x140318dd0
jmp 0x140318db6
mov r11d, dword [0x14053e8a4]
mov esi, r11d
xor esi, 0xc8124bff
and r11d, 0x48124bff
lea r11d, [rsi + r11*2]
mov esi, r11d
xor esi, r11d
not esi
and esi, r10d
xor esi, r11d
mov r10d, r8d
not r10d
mov r11d, esi
not r11d
mov edi, r8d
xor edi, r11d
xor r11d, r10d
and r11d, esi
and r10d, esi
or r10d, edi
not r10d
or r10d, r11d
movabs r11, 0xeb8432e8f3d16e59
xor r8d, r10d
not r8d
nop dword [rax]
mov rsi, qword [0x14053e8a8]
mov rdi, r11
xor rdi, rsi
mov rbx, rdi
not rbx
and rbx, rsi
lea rsi, [rdi + rbx*2]
cmp rdx, rsi
je 0x140318e70
test r8d, r10d
je 0x140318e99
xor r11d, r11d
jmp 0x140318ea5
xor esi, esi
mov r11d, 0
test eax, eax
jg 0x140318ee5
mov eax, 0xc8124c01
add eax, dword [0x14053e8a4]
lea r9, [fcn.140318ce0]
add r9d, r9d
add r9d, 0x3cc0
mov esi, r9d
not esi
mov edi, esi
and edi, eax
not eax
and r9d, eax
or r9d, edi
and eax, esi
or eax, r9d
cmp eax, 0xffffffff
jne 0x140319030
jmp 0x140319018
mov edi, 0xc8124c00
lea rbx, [fcn.140318ce0]
xor ebp, ebp
xor r14d, r14d
jmp 0x140318f2f
mov r12d, r14d
not r12b
mov r13d, r12d
and r13b, r15b
not r15b
and r15b, r14b
or r13b, r15b
mov r11d, r13d
not r11b
xor r13b, r12b
and r11b, r14b
or r11b, r13b
not r11b
or r11b, r15b
inc ebp
mov r14d, r11d
cmp ebp, eax
jge 0x140318ea5
movsxd r11, ebp
add r11, r9
test sil, sil
jne 0x140318fd0
nop
mov r15d, dword [0x140561c40]
mov r12d, dword [0x14053e8a4]
lea r13d, [r15 + r12]
inc r13d
imul r13d, r15d
and r13d, 1
add r12d, 0xc8124c00
cmp r13d, r12d
jne 0x140318fd0
nop dword [rax]
mov r15d, dword [0x140561c40]
mov r12d, r15d
not r12d
imul r12d, r15d
test r12b, 1
jne 0x140318fb2
movzx r15d, byte [r11]
mov r12d, dword [0x140561c40]
lea r13d, [r12 - 1]
imul r13d, r12d
and r13d, 1
mov r12d, dword [0x14053e8a4]
add r12d, edi
cmp r13d, r12d
je 0x140318ef8
movzx r15d, byte [r11]
lea r15d, [rbx + rbx]
add r15d, 0x3d20
mov r12d, r15d
not r12d
test r12d, r15d
jne 0x140318f70
jmp 0x140318f87
mov r15d, dword [0x140561c44]
cmp r15d, 0x4d
jge 0x140318fd0
jmp 0x140318f40
mov eax, dword [rcx + 0x28]
cmp eax, dword [rdx + 0x28]
sete r9b
movzx eax, byte [0x14055f828]
mov r8d, eax
and r8b, r9b
xor al, r9b
test r8b, al
jne 0x14031900a
xor r8b, al
je 0x140318da7
mov eax, dword [rcx + 0x2c]
cmp eax, dword [rdx + 0x2c]
sete al
jmp 0x140318da9
mov eax, dword [0x140561c40]
lea r9d, [rax - 1]
imul r9d, eax
test r9b, 1
je 0x14031903d
nop dword [rax]
mov eax, dword [0x140561c44]
cmp eax, 0x47
jge 0x140319030
jmp 0x140319018
mov eax, dword [rcx + 0x20]
cmp eax, dword [rdx + 0x20]
jne 0x140318da7
mov eax, dword [rcx + 0x24]
mov r9d, dword [rdx + 0x24]
test r8d, r10d
setne bl
movzx r8d, byte [0x140443c48]
mov r10b, 1
test r10b, r10b
je 0x140319086
mov r10d, ebx
sub r10b, byte [0x14053e8a0]
mov esi, dword [0x140561c40]
mov edi, 1
sub edi, esi
imul edi, esi
test dil, 1
je 0x1403190a5
mov r10d, 0xc8124c1e
nop dword [rax]
mov esi, dword [0x140561c44]
mov edi, dword [0x14053e8a4]
add edi, r10d
cmp esi, edi
jge 0x140319090
jmp 0x140319066
add r10b, 0x51
sub r11b, r8b
mov r8d, r11d
neg r8b
dec r11b
xor r8b, r10b
not r10b
and r10b, r11b
or r10b, r8b
not r10b
test r10b, r10b
setne r8b
or r8b, byte [0x14055f2ec]
mov r10d, dword [0x140561c44]
cmp r10d, 0x13
jg 0x140319112
mov r10d, r8d
and r10b, 1
mov byte [0x14055f2ec], r10b
mov r10d, dword [0x140561c40]
lea r11d, [r10 - 1]
imul r11d, r10d
and r11d, 1
mov r10d, 0xc8124c00
add r10d, dword [0x14053e8a4]
cmp r11d, r10d
je 0x14031913e
mov r10d, r8d
and r10b, 1
lea r11, [fcn.140318ce0]
add r11d, r11d
add r11d, 0x4000
mov esi, r11d
not esi
nop
mov byte [0x14055f2ec], r10b
test esi, r11d
jne 0x140319130
jmp 0x1403190df
cmp eax, r9d
je 0x140318fe2
jmp 0x140318da7