Function at 0x140163560
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x28
test ecx, ecx
je 0x1401635a9
test edx, edx
je 0x1401635e9
test r8d, r8d
je 0x140163629
movzx eax, byte [0x14042fece]
cmp al, 0xf9
je 0x140163729
mov cl, 0x41
nop dword [rax + rax]
mov al, 0x3d
lock cmpxchg byte [0x14042fece], cl
je 0x1401636f9
cmp al, 0xf9
jne 0x140163590
jmp 0x140163729
test edx, edx
je 0x140163659
test r8d, r8d
je 0x140163699
movzx eax, byte [0x14042fdf6]
cmp al, 8
je 0x140163799
mov cl, 0x94
nop dword [rax + rax]
mov al, 0x7e
lock cmpxchg byte [0x14042fdf6], cl
je 0x140163769
cmp al, 8
jne 0x1401635d0
jmp 0x140163799
test r8d, r8d
je 0x1401636c9
movzx eax, byte [0x14042fe91]
cmp al, 0x9a
je 0x1401637d9
mov cl, 0xb5
nop word cs:[rax + rax]
mov al, 0x1a
lock cmpxchg byte [0x14042fe91], cl
je 0x1401637a5
cmp al, 0x9a
jne 0x140163610
jmp 0x1401637d9
movzx eax, byte [0x14042fbc0]
cmp al, 0xeb
je 0x140163869
mov esi, r9d
mov cl, 0x11
nop dword [rax]
mov al, 0x9f
lock cmpxchg byte [0x14042fbc0], cl
je 0x1401637e5
cmp al, 0xeb
jne 0x140163640
jmp 0x140163869
test r8d, r8d
je 0x140163735
movzx eax, byte [0x14042fcbf]
cmp al, 0xca
je 0x1401638a9
mov cl, 0x43
nop word cs:[rax + rax]
mov al, 0x91
lock cmpxchg byte [0x14042fcbf], cl
je 0x140163875
cmp al, 0xca
jne 0x140163680
jmp 0x1401638a9
movzx eax, byte [0x14042fde9]
cmp al, 0x31
je 0x1401638e9
mov cl, 0x73
nop word [rax + rax]
mov al, 0x19
lock cmpxchg byte [0x14042fde9], cl
je 0x1401638b5
cmp al, 0x31
jne 0x1401636b0
jmp 0x1401638e9
movzx eax, byte [0x14042fdcd]
cmp al, 0xb7
je 0x140163929
mov cl, 6
nop word [rax + rax]
mov al, 0xa4
lock cmpxchg byte [0x14042fdcd], cl
je 0x1401638f2
cmp al, 0xb7
jne 0x1401636e0
jmp 0x140163929
xor eax, eax
lea rcx, [0x14042fec0]
lea rdx, [0x1403564c0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xe
jl 0x140163710
mov al, 0xf9
xchg byte [0x14042fece], al
lea rax, [0x14042fec0]
jmp 0x140163970
movzx eax, byte [0x14043002f]
cmp al, 0x78
je 0x140163969
mov cl, 6
nop word cs:[rax + rax]
mov al, 0x40
lock cmpxchg byte [0x14043002f], cl
je 0x140163932
cmp al, 0x78
jne 0x140163750
jmp 0x140163969
xor eax, eax
lea rcx, [0x14042fdf0]
lea rdx, [0x140356400]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 6
jl 0x140163780
mov al, 8
xchg byte [0x14042fdf6], al
lea rax, [0x14042fdf0]
jmp 0x140163970
xor eax, eax
lea rcx, [0x14042fe80]
lea rdx, [0x140356480]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x11
jl 0x1401637c0
mov al, 0x9a
xchg byte [0x14042fe91], al
lea rax, [0x14042fe80]
jmp 0x140163970
cmp qword [0x140477b18], 0
jne 0x14016383f
mov edx, esi
xor edx, 0xfb328f0d
mov ecx, 0x21
call fcn.1400ffe90
mov rdi, rax
mov qword [0x140477b18], rax
xor esi, 0x181d739e
lea rcx, [0x140162e40]
mov edx, esi
call fcn.1400f8f30
xor eax, eax
lea rcx, [0x1403561b0]
nop dword [rax + rax]
movzx edx, byte [rax + rcx]
mov byte [rdi + rax], dl
inc rax
cmp eax, 0x1f
jle 0x140163830
mov rax, qword [0x140477b18]
xor ecx, ecx
lea rdx, [0x1403561d0]
nop
movzx r8d, byte [rcx + rdx]
xor byte [rax + rcx], r8b
inc rcx
cmp ecx, 0x20
jl 0x140163850
mov al, 0xeb
xchg byte [0x14042fbc0], al
mov rax, qword [0x140477b18]
jmp 0x140163970
xor eax, eax
lea rcx, [0x14042fc90]
lea rdx, [0x1403562a0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x2f
jl 0x140163890
mov al, 0xca
xchg byte [0x14042fcbf], al
lea rax, [0x14042fc90]
jmp 0x140163970
xor eax, eax
lea rcx, [0x14042fde0]
lea rdx, [0x1403563f0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 9
jl 0x1401638d0
mov al, 0x31
xchg byte [0x14042fde9], al
lea rax, [0x14042fde0]
jmp 0x140163970
xor eax, eax
lea rcx, [0x14042fdc0]
lea rdx, [0x1403563d0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x140163910
mov al, 0xb7
xchg byte [0x14042fdcd], al
lea rax, [0x14042fdc0]
jmp 0x140163970
xor eax, eax
lea rcx, [0x140430020]
lea rdx, [0x140356620]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x140163950
mov al, 0x78
xchg byte [0x14043002f], al
lea rax, [0x140430020]
add rsp, 0x28
pop rdi
pop rsi
ret