Function at 0x140362520
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
test rcx, rcx
je 0x1403625f4
mov rsi, rdx
mov rdi, rcx
xor r14d, r14d
nop word cs:[rax + rax]
mov eax, r14d
add rax, qword [0x14055d0d0]
movzx ecx, byte [0x14055c1c0]
xor edx, edx
add cl, byte [rdi + rax]
setne dl
mov eax, r14d
xor eax, edx
and r14d, edx
lea r14d, [rax + r14*2]
cmp byte [rdi + r14], 0
jne 0x140362550
test r14d, r14d
je 0x140362633
add r14d, dword [0x14055d528]
mov r15d, dword [0x14055bec8]
mov dword [rsp + 0x28], 0x43789bcf
mov dword [rsp + 0x20], 0x999ad481
xor ebx, ebx
mov ecx, 1
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call fcn.140369380
test rax, rax
je 0x140362635
mov rcx, qword [rax + 0x10]
xor ebx, ebx
test rcx, rcx
je 0x140362635
mov rdx, qword [rax + 0x18]
test rdx, rdx
je 0x140362635
lea ebp, [r15 + r14]
inc ebp
mov r14d, ebp
dec r14
xor ebx, ebx
mov r15d, 1
mov r8, rcx
xor r12d, r12d
mov qword [rsp + 0x40], rsi
jmp 0x14036268c
mov dword [rsp + 0x38], 0xec70f22a
mov dword [rsp + 0x30], 0x43789bcf
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor ebx, ebx
xor ecx, ecx
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call fcn.140369400
test rax, rax
je 0x140362635
mov rbx, qword [rax + 0x10]
jmp 0x140362635
xor ebx, ebx
mov rax, rbx
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r15d, 1
nop
mov r10, qword [r8]
test r10, r10
cmovne r8, r10
movzx r12d, r9b
cmove r12d, r15d
mov r9d, r12d
not r9b
mov r10d, r9d
and r10b, 1
mov r11d, r12d
and r11b, 0xfe
or r11b, r10b
and r9b, 0xfe
or r9b, r11b
not r9b
add r9b, byte [0x14055c1c1]
jne 0x140362635
cmp rcx, qword [rax + 0x10]
je 0x1403626c8
mov dword [rsp + 0x28], 0x43789bcf
mov dword [rsp + 0x20], 0x999ad481
mov ecx, 1
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call fcn.140369380
test rax, rax
je 0x140362635
mov rcx, qword [rax + 0x10]
mov rdx, qword [rax + 0x18]
mov r8, rcx
mov r9d, r12d
not r9b
mov r10d, r9d
and r10b, 0xfe
mov r11d, r12d
and r11b, 1
or r11b, r10b
xor r11b, r9b
test r11b, r12b
jne 0x140362662
cmp r8, rdx
movzx r10d, r12b
cmove r10d, r15d
add r10b, byte [0x14055f1d2]
movzx r9d, byte [0x14055c1c0]
mov r11d, r9d
xor r11b, 0x4b
and r9b, 0x4b
add r9b, r9b
add r9b, r11b
add r9b, r10b
add r9b, 0xb5
movzx r10d, word [0x14055f1d0]
add r10w, word [r8 + 0x58]
movzx r10d, r10w
cmp ebp, r10d
ja 0x140362650
mov r10, qword [r8 + 0x60]
test r10, r10
je 0x140362650
cmp r10, 0xffff
je 0x140362650
test ebp, ebp
je 0x14036280c
xor r11d, r11d
nop dword [rax]
movzx r13d, byte [0x14055c121]
add r13b, byte [rdi + r11]
lea esi, [r13 - 0x61]
mov r15d, r13d
xor r15b, 0x1f
and r15b, r13b
movzx r12d, r13b
xor r13b, 0xe0
add r15b, r15b
add r15b, r13b
cmp sil, 0x1a
movzx esi, r15b
cmovb r12d, esi
test r12b, r12b
je 0x1403627d9
movzx esi, word [r10 + r11*2]
lea r15d, [rsi + 0x49ff]
mov r13d, r15d
xor r13d, 0xffffff9f
and r15d, 0x7f9f
lea r15d, [r13 + r15*2 - 0x49ff]
lea r13d, [rsi - 0x20]
cmp r15w, 0x1a
cmovae r13d, esi
movsx esi, r12b
movzx r15d, r13w
cmp esi, r15d
jne 0x140362649
cmp r14, r11
setne sil
sete r12b
movzx r15d, byte [0x14055bd29]
xor r12b, r15b
not r15b
and r15b, sil
or r15b, r12b
test r15b, 1
je 0x14036280c
test r12b, 1
jne 0x14036280c
inc r11
jmp 0x140362760
mov rbx, qword [r8 + 0x30]
mov r9b, 1
mov rsi, qword [rsp + 0x40]
test rsi, rsi
mov r15d, 1
je 0x140362650
mov qword [rsi], r8
jmp 0x140362650