Function at 0x140289dd0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x40
mov esi, r9d
mov ebp, dword [rsp + 0xa0]
test ecx, ecx
je 0x140289e29
test edx, edx
je 0x140289e69
movzx eax, byte [0x14058700d]
cmp al, 0x1a
je 0x140289ff8
mov cl, 0x52
nop word cs:[rax + rax]
mov al, 0x36
lock cmpxchg byte [0x14058700d], cl
je 0x140289f99
cmp al, 0x1a
jne 0x140289e10
jmp 0x140289ff8
test edx, edx
je 0x140289f54
movzx eax, byte [0x140586cf2]
cmp al, 0xc8
je 0x14028a07b
mov cl, 0xcc
nop word cs:[rax + rax]
mov al, 0x9d
lock cmpxchg byte [0x140586cf2], cl
je 0x14028a004
cmp al, 0xc8
jne 0x140289e50
jmp 0x14028a07b
movzx eax, byte [0x140586de0]
cmp al, 0xc4
je 0x140289f48
movzx ecx, byte [0x140587a9c]
mov edx, ebp
not dl
mov r8d, edx
and r8b, 0xbe
mov eax, ebp
and al, 0x41
or al, r8b
mov r8d, eax
xor r8b, cl
and al, cl
add al, al
mov r9d, r8d
xor r9b, al
and al, r8b
add al, al
add al, r9b
and dl, 0x44
mov r8d, ebp
and r8b, 0xbb
or r8b, dl
add r8b, cl
lock cmpxchg byte [0x140586de0], r8b
jne 0x140289e70
xor r8d, r8d
lea rax, [0x140586dd0]
lea rcx, [0x140496f00]
mov r9d, ebp
not r9d
and r9d, 0x3044cca2
mov edx, ebp
xor edx, 0xcfbb335d
or edx, r9d
not edx
or edx, r9d
nop word cs:[rax + rax]
movsxd r8, r8d
movzx r9d, byte [r8 + rcx]
add byte [r8 + rax], r9b
mov r9d, dword [0x140587a98]
add r9d, edx
mov r10d, r8d
xor r10d, r9d
and r9d, r8d
lea r8d, [r10 + r9*2]
cmp r8d, 0x10
jl 0x140289f00
movzx eax, byte [0x140587a9c]
xor bpl, 0x28
mov ecx, ebp
xor cl, al
and bpl, al
add bpl, bpl
add bpl, cl
xchg byte [0x140586de0], bpl
lea rax, [0x140586dd0]
jmp 0x14028a10b
mov edx, esi
xor edx, 0xf600c6
mov r8d, ebp
xor r8d, 0x9d057b4e
lea rcx, [rsp + 0x32]
call fcn.140289910
cmp byte [rsp + 0x32], 0x53
je 0x14028a104
mov cl, 0x8d
nop dword [rax]
mov al, 0x2f
lock cmpxchg byte [0x140586fa3], cl
je 0x14028a087
cmp al, 0x53
jne 0x140289f80
jmp 0x14028a104
xor edi, edi
lea rbx, [0x140587000]
lea r14, [0x140497100]
xor esi, 0x2f6f468d
mov r15d, ebp
xor r15d, 0xbb3cf908
nop dword [rax]
movzx ecx, byte [rdi + rbx]
movzx edx, byte [rdi + r14]
mov eax, dword [0x140587a98]
add eax, r15d
xor eax, ebp
mov dword [rsp + 0x20], eax
mov r8d, edi
mov r9d, esi
call fcn.140289810
lea eax, [rdi + 1]
cmp eax, 0xc
jg 0x140289ff0
inc rdi
jmp 0x140289fc0
mov al, 0x1a
xchg byte [0x14058700d], al
lea rax, [0x140587000]
jmp 0x14028a10b
xor edi, edi
lea r15, [0x140586cf0]
xor esi, 0x3361c01f
xor ebp, 0x2ad5b382
lea rbx, [rsp + 0x33]
lea r14, [rsp + 0x38]
lea r12, [0x140496e40]
nop word [rax + rax]
lea rcx, [r15 + rdi]
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], esi
mov edx, edi
mov r8, rbx
mov r9, r14
call fcn.14028b080
movzx eax, byte [rsp + 0x33]
mov rcx, qword [rsp + 0x38]
movzx ecx, byte [rcx + r12]
mov edx, eax
xor dl, cl
and al, cl
add al, al
add al, dl
mov byte [rdi + r15], al
lea eax, [rdi + 1]
cmp eax, 1
jg 0x14028a073
inc rdi
jmp 0x14028a030
mov al, 0xc8
xchg byte [0x140586cf2], al
lea rax, [0x140586cf0]
jmp 0x14028a10b
xor ecx, ecx
lea rbx, [0x140586fa0]
lea r14, [0x1404970a0]
mov r15d, esi
xor r15d, 0x4235913a
mov r12d, ebp
xor r12d, 0x18431c3e
lea rdi, [rsp + 0x34]
movsxd r8, ecx
movzx edx, byte [r8 + rbx]
lea rcx, [r14 + r8]
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], r15d
mov r9, rdi
call fcn.140289d90
mov ecx, dword [rsp + 0x34]
test al, 1
je 0x14028a0b0
mov edx, ebp
not edx
mov eax, edx
and eax, 0x490f15d7
mov ecx, ebp
and ecx, 0xb6f0ea28
or ecx, eax
add ecx, dword [0x140587a98]
xor esi, 0xd72e33a
xor edx, ebp
and edx, ecx
xor edx, ebp
mov ecx, esi
call fcn.14028a130
lea rax, [0x140586fa0]
add rsp, 0x40
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret