Function at 0x140164e20
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x50
mov esi, r9d
mov eax, 0x1314ed20
mov r8d, dword [0x14050c640]
add r8d, eax
cmp ecx, r8d
jne 0x140164eb9
test edx, edx
je 0x140164f84
mov ecx, esi
xor ecx, 0x14ff1212
mov edx, 0x453dee41
call fcn.1401668a0
test al, 1
jne 0x140165017
mov dil, 0x72
nop word [rax + rax]
mov al, 0xe2
lock cmpxchg byte [0x14050c28d], dil
mov ebx, eax
sete dl
mov eax, dword [0x14050c640]
mov ecx, eax
xor ecx, 0x12ccf494
and eax, 0x12ccf494
lea r8d, [rcx + rax*2]
xor r8d, esi
mov ecx, ebx
mov r9d, 0xde042c23
call fcn.140153bd0
test al, 1
jne 0x140164fd2
cmp bl, 0xdd
jne 0x140164e70
jmp 0x140165017
add eax, dword [0x14050c640]
cmp edx, eax
jne 0x140164f33
mov edx, esi
xor edx, 0x19de824b
mov r8d, 0x7abd3897
add r8d, dword [0x14050c640]
lea rcx, [rsp + 0x45]
call fcn.1401667c0
cmp byte [rsp + 0x45], 0x1c
je 0x1401650cb
mov edi, esi
xor edi, 0xc0332ddf
lea rbx, [rsp + 0x46]
xor esi, 0x13c5391c
mov rcx, rbx
mov edx, edi
mov r8d, 0xf7d8d14d
call fcn.140166350
test al, 1
jne 0x140165023
movzx ecx, byte [rsp + 0x46]
mov edx, esi
mov r8d, 0x56c8c121
call fcn.1401668c0
test al, 1
je 0x140164f00
jmp 0x1401650cb
mov ecx, esi
xor ecx, 0xd701fe8a
mov edx, 0xa74421c3
call fcn.140166470
test al, 1
jne 0x1401650b7
xor esi, 0x79e4f8d0
lea rdi, [rsp + 0x47]
nop dword [rax + rax]
mov rcx, rdi
mov edx, esi
mov r8d, 0x6ff741c
call fcn.140166530
test al, 1
jne 0x140165058
cmp byte [rsp + 0x47], 0x25
jne 0x140164f60
jmp 0x1401650b7
movzx eax, byte [0x14050c08d]
cmp al, 0x8e
je 0x140165164
mov bpl, 0x32
mov edi, esi
xor edi, 0x1502f17a
nop
mov al, 0xf2
lock cmpxchg byte [0x14050c08d], bpl
mov ebx, eax
sete dl
mov ecx, eax
mov r8d, edi
mov r9d, 0x97170a2a
call fcn.140153bd0
test al, 1
jne 0x1401650d7
cmp bl, 0x8e
jne 0x140164fa0
jmp 0x140165164
xor eax, eax
lea rcx, [0x14050c280]
lea rdx, [0x14042c060]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x140165008
inc rax
jmp 0x140164ff0
movzx eax, byte [0x14050c644]
add al, 0xd5
xchg byte [0x14050c28d], al
lea rax, [0x14050c280]
jmp 0x14016516b
xor eax, eax
lea rcx, [0x14050c1a0]
lea rdx, [0x14042bf80]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xd
jg 0x1401650c3
inc rax
jmp 0x140165040
xor r8d, r8d
mov eax, 0xb169de5d
lea rcx, [0x14050c070]
lea rdx, [0x14042be50]
nop
movsxd r8, r8d
movzx r9d, byte [r8 + rcx]
movzx r10d, byte [r8 + rdx]
mov r11d, r9d
xor r11b, r10b
and r9b, r10b
add r9b, r9b
add r9b, r11b
mov byte [r8 + rcx], r9b
add r8d, eax
mov r9d, r8d
xor r9d, 1
and r8d, 1
lea r8d, [r9 + r8*2]
add r8d, 0x4e9621a3
cmp r8d, 9
jl 0x140165070
mov al, 0x25
xchg byte [0x14050c079], al
lea rax, [0x14050c070]
jmp 0x14016516b
mov al, 0x1c
xchg byte [0x14050c1ae], al
lea rax, [0x14050c1a0]
jmp 0x14016516b
xor eax, eax
lea r14, [0x14050c080]
lea r15, [0x14042be60]
mov ecx, esi
not ecx
and ecx, 0xefe99c69
xor esi, 0x10166396
or esi, ecx
not esi
or esi, ecx
lea r12, [rsp + 0x48]
lea rdi, [rsp + 0x44]
nop word [rax + rax]
movsxd rbx, eax
movzx ecx, byte [rbx + r14]
movzx edx, byte [rbx + r15]
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], r12
mov dword [rsp + 0x30], 0x99ad07a9
mov r8d, ebx
mov r9, rdi
call fcn.1401667d0
movzx eax, byte [rsp + 0x44]
mov rcx, qword [rsp + 0x48]
mov byte [rcx], al
mov eax, ebx
xor eax, 1
and ebx, 1
lea eax, [rax + rbx*2]
cmp eax, 0xd
jl 0x140165110
movzx eax, byte [0x14050c644]
add al, 0x86
xchg byte [0x14050c08d], al
lea rax, [0x14050c080]
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret