Function at 0x14020d170
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov edi, r9d
mov esi, dword [rsp + 0xc0]
test ecx, ecx
je 0x14020d1d9
test edx, edx
je 0x14020d278
xor edi, 0x44d7a59a
mov edx, esi
xor edx, 0xe5c2b9ca
mov ecx, edi
call fcn.14020d100
test al, 1
jne 0x14020d3d0
mov cl, 0x83
nop word cs:[rax + rax]
mov al, 0xbe
lock cmpxchg byte [0x1404dbe72], cl
je 0x14020d377
cmp al, 0xb7
jne 0x14020d1c0
jmp 0x14020d3d0
mov eax, esi
xor eax, 0x66e2fc3
mov r12d, esi
not r12d
mov ecx, r12d
and ecx, esi
xor ecx, eax
add ecx, dword [0x1404dc59c]
cmp edx, ecx
jne 0x14020d2f4
mov ecx, esi
xor ecx, 0xcd8a8e05
add ecx, dword [0x1404dc59c]
xor ecx, edi
mov edx, esi
xor edx, 0xa3227878
call fcn.14020cf10
test al, 1
jne 0x14020d506
mov r13d, edi
not r13d
mov eax, r13d
and eax, 0xea74cce
mov ebx, edi
xor ebx, 0xf158b331
or ebx, eax
not ebx
or ebx, eax
mov ebp, esi
xor ebp, 0x8b33a801
lea r14, [rsp + 0x40]
lea r15, [rsp + 0x3f]
nop
mov rcx, r14
mov rdx, r15
mov r8d, ebx
mov r9d, ebp
call fcn.14020d5b0
cmp byte [rsp + 0x41], 0
jne 0x14020d452
cmp byte [rsp + 0x3f], 0x69
jne 0x14020d250
jmp 0x14020d506
mov eax, esi
not eax
mov ecx, esi
xor ecx, 0x2f63ce77
and ecx, eax
and eax, 0xf5cb56f0
mov r8d, esi
and r8d, 0xa34a90f
or r8d, eax
add r8d, dword [0x1404dc59c]
mov edx, r8d
xor edx, r8d
not edx
and edx, edi
xor edx, r8d
mov r8d, esi
and r8d, 0xd09c3188
or r8d, ecx
lea rcx, [rsp + 0x40]
call fcn.14020d120
cmp byte [rsp + 0x40], 0x74
je 0x14020d446
mov cl, 0x13
mov al, 0x95
lock cmpxchg byte [0x1404dbea2], cl
je 0x14020d3dc
mov edx, esi
xor dl, 0xd0
add dl, byte [0x1404dc598]
cmp al, dl
jne 0x14020d2d0
jmp 0x14020d446
movzx ecx, byte [0x1404dbec0]
mov eax, esi
xor eax, 0xf5e1558e
add eax, dword [0x1404dc59c]
mov edx, eax
not edx
mov r8d, edi
xor r8d, edx
not r8d
and r8d, eax
and edx, edi
or edx, r8d
mov r8d, esi
xor r8d, 0x3620a98e
call fcn.14020cf00
test al, 1
jne 0x14020d592
mov cl, 0xef
nop word cs:[rax + rax]
mov al, 0x80
lock cmpxchg byte [0x1404dbec0], cl
je 0x14020d512
movzx edx, byte [0x1404dc598]
mov r8d, esi
xor r8b, 0x9a
mov r9d, r8d
xor r9b, dl
and r8b, dl
add r8b, r8b
add r8b, r9b
cmp al, r8b
jne 0x14020d340
jmp 0x14020d592
xor eax, eax
lea rcx, [0x1404dbe60]
lea rdx, [0x1403f7240]
xor esi, 0x66e2ff5
nop dword [rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
not r8b
not r9b
mov r10d, r8d
xor r10b, r9b
or r9b, r8b
and r9b, r10b
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
mov r9d, dword [0x1404dc59c]
add r9d, esi
cmp r8d, r9d
jge 0x14020d3c8
inc rax
jmp 0x14020d390
mov al, 0xb7
xchg byte [0x1404dbe72], al
lea rax, [0x1404dbe60]
jmp 0x14020d599
xor eax, eax
lea rcx, [0x1404dbea0]
lea rdx, [0x1403f7270]
xor esi, 0x66e2fc5
nop word cs:[rax + rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
mov r10d, r8d
not r10b
not r9b
mov r11d, r10d
xor r11b, r9b
and r11b, r10b
and r9b, r8b
or r9b, r11b
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
mov r9d, dword [0x1404dc59c]
add r9d, esi
cmp r8d, r9d
jge 0x14020d43e
inc rax
jmp 0x14020d400
mov al, 0x74
xchg byte [0x1404dbea2], al
lea rax, [0x1404dbea0]
jmp 0x14020d599
mov dword [rsp + 0x50], r13d
mov dword [rsp + 0x54], r12d
xor eax, eax
lea r13, [0x1404dbed0]
mov ebx, edi
xor ebx, 0xa678e29a
mov ebp, esi
xor ebp, 0xc07b46b0
lea r14, [rsp + 0x40]
nop word [rax + rax]
movsxd r15, eax
lea rax, [0x1403f7290]
movzx eax, byte [r15 + rax]
mov r12d, eax
xor r12b, al
not r12b
and r12b, byte [r15 + r13]
xor r12b, al
mov ecx, r15d
mov rdx, r14
mov r8d, ebx
mov r9d, ebp
call fcn.14020d130
mov rax, qword [rsp + 0x40]
mov byte [rax + r13], r12b
mov eax, r15d
xor eax, 1
and r15d, 1
lea eax, [rax + r15*2]
cmp eax, 2
jl 0x14020d480
mov eax, dword [rsp + 0x50]
and eax, edi
xor edi, 0x47826c0a
xor edi, eax
mov ecx, dword [rsp + 0x54]
mov eax, ecx
and eax, 0xa2f10cfa
and esi, 0x5d0ef305
or esi, eax
add esi, dword [0x1404dc59c]
mov eax, ecx
and eax, esi
or esi, ecx
not esi
or esi, eax
mov ecx, edi
mov edx, esi
call fcn.14020ced0
lea rax, [0x1404dbed0]
jmp 0x14020d599
xor ecx, ecx
mov ebx, edi
xor ebx, 0x219e7b33
mov ebp, esi
xor ebp, 0xeb27b43f
lea r14, [rsp + 0x40]
lea r13, [0x1403f7280]
xor edi, 0x4e8d23c2
xor esi, 0x813ee30
nop dword [rax]
movsxd r15, ecx
lea rax, [0x1404dbeb0]
movzx r12d, byte [r15 + rax]
mov ecx, r15d
mov rdx, r14
mov r8d, ebx
mov r9d, ebp
call fcn.1400ab4e0
mov rax, qword [rsp + 0x40]
xor r12b, byte [rax + r13]
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], edi
mov rcx, r15
mov edx, r12d
mov r8d, r15d
mov r9, r14
call fcn.14020cee0
mov ecx, dword [rsp + 0x40]
test al, 1
je 0x14020d540
mov al, 0xae
xchg byte [0x1404dbec0], al
lea rax, [0x1404dbeb0]
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret